CentOS 6 Suphp配置指南

什么是Suphp?
Suphp(Suphp stands for "SuPHP")是一种用于将PHP脚本作为非root用户运行的工具,它通过修改FastCGI进程的环境变量来实现,从而允许普通用户使用PHP脚本,而不需要root权限。
为什么需要Suphp?
在Linux系统中,PHP默认以root用户身份运行,这意味着任何由PHP执行的脚本都有root权限,这可能导致安全风险,因为攻击者可以通过注入恶意代码来获取对服务器的完全控制,Suphp可以解决这个问题,因为它允许PHP脚本以非root用户身份运行,从而提高安全性。
安装Suphp
在CentOS 6上,首先需要安装php-suphp包:
sudo yum install php-suphp
安装完成后,需要重新启动Apache服务器:
sudo service httpd restart
配置Suphp

- 编辑Apache配置文件,通常为
/etc/httpd/conf/httpd.conf:
sudo nano /etc/httpd/conf/httpd.conf
找到以下行:
<IfModule mod_suphp.c>
# Suphp configuration
</IfModule> 在该行下添加以下配置:
<IfModule mod_suphp.c>
# 设置非root用户
suPHP_UserGroup yourusername yourgroup
# 设置脚本运行的目录
suPHP_ConfigPath /var/www/html
# 允许执行PHP文件的扩展名
AddType application/x-httpd-php .php .php3 .php4 .php5 .php6
</IfModule> 保存并退出编辑器。
配置用户权限
创建一个非root用户和组,用于运行PHP脚本:
sudo groupadd yourgroup sudo useradd -g yourgroup yourusername
- 修改
/var/www/html目录的权限,使其属于创建的用户和组:
sudo chown -R yourusername:yourgroup /var/www/html
- 修改
/var/www/html目录下的.htaccess文件(如果存在):
sudo nano /var/www/html/.htaccess
添加以下行:
<IfModule mod_suphp.c>
# 设置非root用户
suPHP_UserGroup yourusername yourgroup
# 设置脚本运行的目录
suPHP_ConfigPath /var/www/html
</IfModule> 保存并退出编辑器。
测试Suphp

- 创建一个简单的PHP脚本,例如
/var/www/html/test.php:
<?php phpinfo(); ?>
- 访问该脚本,
http://yourdomain.com/test.php。
FAQs
Q:Suphp会降低服务器性能吗?
A:Suphp不会显著降低服务器性能,它只是通过将PHP脚本作为非root用户运行来提高安全性。
Q:如何为多个用户配置Suphp?
A:可以为每个用户创建不同的配置文件,或者使用一个通用的配置文件,并使用不同的用户和组来运行不同的PHP脚本。

