最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ubuntu下php-fpm安全设置包括哪些
时间:2026-06-14 08:34:02 编辑:袖梨 来源:一聚教程网
1. 更新系统与PHP-FPM至最新版本定期执行sudo apt update && sudo apt upgrade -y,确保Ubuntu系统、PHP核心及PHP-FPM组件为最新版本,及时修复已知安全漏洞。

2. 配置PHP-FPM以非特权用户/组运行编辑PHP-FPM进程池配置文件(路径通常为/etc/php/{version}/fpm/pool.d/www.conf),将user和group设置为非root用户(如www-data),降低权限滥用风险。
3. 限制PHP-FPM进程数量在www.conf中调整进程管理参数,避免过多进程消耗系统资源:
pm = dynamic(动态进程管理模式);pm.max_children(最大子进程数,根据服务器内存调整,如50);pm.start_servers(启动时的子进程数,如5);pm.min_spare_servers(最小空闲进程数,如5);pm.max_spare_servers(最大空闲进程数,如35);pm.max_requests(每个进程处理的最大请求数,如500,防止内存泄漏积累)。
4. 配置监听地址与权限修改www.conf中的listen指令,优先使用Unix socket(如/run/php/php{version}-fpm.sock)替代TCP端口(如127.0.0.1:9000),减少网络暴露风险;若使用socket,需设置正确权限:
sudo chown www-data:www-data /run/php/php{version}-fpm.socksudo chmod 755 /run/php/php{version}-fpm.sock```。**5. 禁用危险函数与限制文件访问**- 在`php.ini`中禁用高危函数(如`exec`、`system`、`passthru`、`shell_exec`),防止恶意代码执行:```inidisable_functions = exec,passthru,shell_exec,system- 使用
open_basedir限制PHP脚本可访问的目录(如/var/www/html/:/tmp/),避免访问敏感系统文件。
6. 关闭错误显示与配置日志
- 在
php.ini中关闭错误显示(防止敏感信息泄露):display_errors = Off - 开启错误日志记录(便于排查问题):
log_errors = Onerror_log = /var/log/php-fpm/error.log - 在
www.conf中开启慢日志(监控性能瓶颈与潜在攻击):request_slowlog_timeout = 10sslowlog = /var/log/php-fpm/www-slow.log```。
7. 配置防火墙限制访问使用ufw(Uncomplicated Firewall)限制对PHP-FPM端口的访问:
- 若使用TCP端口(如9000),执行:
sudo ufw allow 9000/tcp - 若使用Unix socket,无需额外防火墙规则(仅本地访问);最后启用防火墙:
sudo ufw enable```。
8. 使用SELinux或AppArmor增强权限控制
- AppArmor(Ubuntu默认启用):编辑PHP-FPM的AppArmor配置文件(
/etc/apparmor.d/usr.sbin.php-fpm),添加或修改规则限制其访问路径(如/var/www/html/),然后强制执行:sudo aa-enforce /etc/apparmor.d/usr.sbin.php-fpm - SELinux:若启用SELinux,设置适当的布尔值(如
httpd_can_network_connect_db)限制网络访问,或创建自定义策略。
9. 定期监控与日志审计定期检查PHP-FPM日志文件(/var/log/php-fpm/error.log、/var/log/php-fpm/www-slow.log),使用工具(如fail2ban)监控异常进程(如频繁崩溃的进程),及时发现并处理潜在攻击。
10. 启用HTTPS加密传输使用Let’s Encrypt免费获取SSL证书,配置Nginx/Apache启用HTTPS,加密客户端与服务器之间的数据传输,防止中间人攻击:
sudo apt install certbot python3-certbot-nginxsudo certbot --nginx -d yourdomain.com```。
相关文章
- 阶跃星辰开发者报错怎么解决?3步定位与修复方法 06-14
- 阶跃星辰开发者提示词模板怎么优化?3种场景式模板对比 06-14
- 浮空秘境秘纹组合搭配方案详情一览 06-14
- Minimax开发者进阶技巧:如何避免5个常见配置错误? 06-14
- Minimax开发者编程使用方法:5步完成API接入与调试 06-14
- 归家异途2攻略(深入解析技能加点策略,助你在归家异途2中取得优势) 06-14