在 CentOS 上安全运行 PHP-FPM 的关键在于正确配置和调整相关参数。以下是一些建议:
安装 PHP-FPM: 首先,确保已经安装了 PHP 和 PHP-FPM。可以使用以下命令安装:
sudo yum install epel-release
sudo yum install php php-fpm
配置 PHP-FPM:
编辑 PHP-FPM 配置文件 /etc/php-fpm.d/www.conf,根据实际需求进行调整。
user 和 group 更改为非 root 用户和组,例如 apache 或 www-data,以减少潜在的安全风险。user = apache
group = apache
listen.owner 和 listen.group 与 user 和 group 相同。listen.owner = apache
listen.group = apache
listen.allowed_clients 以防止未经授权的访问。listen.allowed_clients = 127.0.0.1
pm.max_children、pm.start_servers、pm.min_spare_servers 和 pm.max_spare_servers 以限制 PHP-FPM 进程的数量,避免消耗过多系统资源。pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
cgi.fix_pathinfo=0 以防止潜在的安全漏洞。cgi.fix_pathinfo=0
配置防火墙: 如果系统启用了防火墙,请确保开放 HTTP(80)和 HTTPS(443)端口。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
调整 SELinux 设置: 如果系统启用了 SELinux,请确保允许 HTTPD 和 PHP-FPM 之间的通信。
sudo setsebool -P httpd_can_network_connect 1
sudo chcon -Rt httpd_sys_content_t /var/www/html
重启 PHP-FPM 服务: 在进行上述更改后,重启 PHP-FPM 服务以使更改生效。
sudo systemctl restart php-fpm
遵循以上建议,可以在 CentOS 上安全地运行 PHP-FPM。请注意,根据实际需求和环境,可能需要进一步调整配置。