确保Ubuntu上的PHP-FPM安全运行是一个多层面的过程,涉及系统更新、配置优化、安全设置和定期维护。以下是一些关键步骤和建议,帮助你提高PHP-FPM的安全性:
sudo apt update
sudo apt upgrade
sudo apt install php php-fpm php-mysql php-curl php-gd php-imagick php-mbstring php-zip
memory_limit
设置内存使用上限,防止单个脚本消耗过多内存。upload_max_filesize
和 post_max_size
限制上传文件的大小。eval()
、exec()
等危险函数。display_errors
设置为 Off
,并通过 error_reporting
设置错误报告级别。memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 128M
display_errors = Off
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_WARNING
user
和 group
配置项指定非root用户和用户组运行PHP-FPM。pm.max_children
、pm.start_servers
、pm.min_spare_servers
、pm.max_spare_servers
和 pm.max_requests
等参数设置进程池的行为,例如限制最大子进程数和每个进程的最大请求数。user = www-data
group = www-data
listen = 127.0.0.1:9000
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
sudo systemctl restart php{version}-fpm
sudo systemctl restart nginx
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -Rv /var/www/html
sudo apt update
sudo apt upgrade
通过上述步骤,可以显著提高Ubuntu PHP-FPM的安全性。务必定期审查和更新安全配置,以应对不断变化的安全威胁。