在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。