在Linux环境下,为了确保PHP-FPM的安全运行,可以采取以下措施:
使用专用的PHP-FPM用户和组:
sudo addgroup php-fpm
sudo adduser --system --group --no-create-home --home /var/run/php-fpm php-fpm
配置PHP-FPM监听地址:
/etc/php/7.x/fpm/pool.d/www.conf文件,将listen参数设置为Unix socket或TCP/IP地址,并确保只有受信任的用户可以访问。listen = /run/php/php7.x-fpm.sock
; 或者
listen = 127.0.0.1:9000
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
限制PHP-FPM进程数:
www.conf文件中,设置pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers参数,以控制PHP-FPM进程的数量。pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
配置PHP安全选项:
php.ini文件中,启用安全选项,如display_errors、log_errors、error_reporting等。display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
限制文件上传大小和类型:
php.ini文件中,设置upload_max_filesize和post_max_size参数,以限制文件上传的大小。upload_max_filesize = 2M
post_max_size = 8M
file_uploads = On
upload_tmp_dir = /tmp
配置数据库连接安全:
定期更新PHP和依赖库:
使用防火墙和安全组:
监控和日志记录:
通过以上措施,可以显著提高在Linux环境下PHP-FPM的安全性。