CentOS 7上为PHP5安装suPHP的方法(彭哥)

在CentOS 7上安装并配置PHP的一种常用方式是通过suPHP。suPHP是一款用于Apache或Lighttpd作为Web服务器上的模块化软件,它允许以指定用户身份执行PHP脚本,避免了一些Web应用程序中执行恶意代码的风险。下面让我们一起来看看如何在CentOS 7上为PHP5安装suPHP。

1. 安装Apache

安装Apache是必要的前提条件。如果您尚未安装Apache,则可以在终端窗口中运行以下命令来安装Apache:

yum install httpd

安装完毕后,您可以启动Apache:

systemctl start httpd.service

2. 安装PHP5

您需要安装PHP的最新版本。可以通过以下命令来更新您的系统:

yum update

然后可以通过以下命令来安装PHP:

yum install php

安装完毕后,您可以通过以下命令来验证PHP版本:

php -v

3. 安装suPHP

下一步是安装suPHP。suPHP并没有像PHP一样直接可以通过yum安装,您需要从源代码编译安装。以下是安装的详细步骤:

(1) 下载suPHP的最新版本压缩包。您可以在suPHP官方网站(http://www.suphp.org/)上找到压缩包。

(2) 解压压缩包并切换到解压后的目录。

(3) 准备编译安装的环境:

yum install automake autoconf libtool gcc libxml2-devel apr-devel apr-util-devel

(4) 配置suPHP的安装路径:

./configure --prefix=/usr/local/suphp --sysconfdir=/etc/httpd/conf.d

--prefix参数将安装suPHP到指定的路径(/usr/local/suphp)。--sysconfdir参数是Apache的配置目录(/etc/httpd/conf.d)。

(5) 编译并安装suPHP:

make && make install

安装完毕后,您应该能够在/usr/local/suphp目录下找到suPHP的二进制文件和库文件。

4. 启用suPHP

下一步是在Apache中启用suPHP。打开Apache的配置文件/etc/httpd/conf/httpd.conf,找到以下配置项:

#LoadModule suexec_module modules/mod_suexec.so

去掉前面的注释,使其变为:

LoadModule suexec_module modules/mod_suexec.so

然后添加以下内容:

AddHandler x-httpd-php .php

suPHP_AddHandler x-httpd-php

suPHP_Engine on

suPHP_UserGroup myusername mygroupname

suPHP_ConfigPath /etc/httpd/conf.d

x-httpd-php是用于处理PHP文件的Apache处理器。使用suPHP_AddHandler配置项使用suPHP来处理这种类型的文件。suPHP_Engine开启suPHP,suPHP_UserGroup指定系统上的有效用户和组。suPHP_ConfigPath指向suPHP的配置目录。

4.1. 配置suPHP文件访问权限

要使suPHP能够正常运行,您需要配置suPHP的安装目录和配置文件的访问权限。您可以使用以下命令来设置suPHP目录的所有者和组:

chown -R root:apache /usr/local/suphp

然后,使用以下命令来更改文件访问权限:

chmod 755 /usr/local/suphp

chmod 644 /usr/local/suphp/etc/suphp.conf

4.2. 重启Apache服务器

为了使所有更改生效,您需要重启Apache服务器:

systemctl restart httpd.service

5. 测试suPHP是否正常

在完成所有安装及配置步骤后,您可以使用以下命令来测试suPHP是否正常运行:

sudo -u myusername php -v

在该命令中,myusername是您要测试的用户帐户。如果suPHP正常运行,则会输出PHP版本信息。

结论

在CentOS 7上为PHP5安装suPHP需要一些额外的工作,但最终结果是,您获得了一种更加安全和可靠的Web服务器环境。通过按照本文中的步骤完成安装和配置,您应该能够成功安装并测试suPHP。

操作系统标签