CentOS 7.x 安装配置 SuPHP

SuPHP是apache的一个模块,它允许PHP在不同的Linux用户下运行。

SuPHP是一个很不错的开源工具。它可以让你的PHP代码以一种安全的方式进行运行。你可以为每个虚拟主机或者站点指定一个特定的用户来运行PHP代码。而不是像PHP和Apache默认的那样运行于nobody、www-data、apache或者root(这样是相当危险的)这些账户下。试想,一个不成熟的PHP代码运行于root帐户下,将带来多么大的安全隐患。另外,一般而言,为了外界能正常使用网站,很多目录(比如附件目录、缓存目录等)都要设置为777才能够正常写入。这样其实也是不安全的。

而SuPHP正好可以解决这个问题。首先,SuPHP可以指定PHP代码以哪个帐户运行。这样您就可以把一些不安全的未经测试的PHP代限制在一些并没有实际权限的用户下进行运行。另外,通过SuPHP,要求写入的目录可以只设置为755,文件等设置为644就可以让外界用户正常使用网站的每一个功能了。所以,SuPHP是一个增强型的安全工具。尤其对于那些空间提供商来说。

SuPHP运行的原理是把PHP代码将由SuPHP进行解释,然后SuPHP将通过您设置好的那个帐户运行PHP解释器。

本帖纪录怎么在CentOS 7.X上安装SuPHP,由于目前还没有现成的模块,我们需要从源码编译安装。

我使用的CentOS是最小化安装的;并且本文使用centos.example.com,192.168.1.100作为CentOS的域名和IP地址,注意替换为你实际的域名和IP地址。

#1 安装防火墙(可选)

如果你没有安装防火墙,强烈建议你安装防火墙。

启动防火墙服务:

首先,打开SSH端口确保可以使用ssh连接:

#2 安装Apache和PHP

安装Apache和Aapache开发包:

安装PHP和一些常用模块:

启动Apache服务:

配置防火墙允许80和443端口的连接:

#3 安装 SuPHP

由于我们要从源码编译安装,所以我们还需要安装开发编译工具(gcc、make…):

安装wget和vim编辑器:

下载SuPHP源码并解压:

CentOS 7使用Apache 2.4,在编译之前先打一个补丁:

CentOS 7.x 安装配置 SuPHP

编译安装:

配置Apache使用suPHP模块:

添加一行:

创建suPHP配置文件 /etc/suphp.conf:

内容如下:

重启Apache:

#4 配置Apache虚拟主机配置文件

我使用的域名 centos.example.com,网站文档目录 /var/www/centos.example.com,使用的用户web1。

添加一个用户:

创建网站存放目录:

添加虚拟主机配置文件 centos.example.com.conf:

写入内容:

重启Apache:

#5 测试

创建info.php测试文件:

写入内容:

更改文件权限:

使用浏览器访问 http://centos.example.com/info.php

CentOS 7.x 安装配置 SuPHP

Server API显示CGI/FastCGI代表PHP的运行模式是SuPHP,而不是mod_php。

查看PHP在哪个用户下运行:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注