在LNMP(Linux, Nginx, MySQL, PHP-FPM)架构中,PHP-FPM(FastCGI Process Manager)的配置对于提升PHP应用的性能至关重要。以下是一些配置PHP-FPM的最佳实践:
首先,确保你的PHP-FPM配置文件(通常是/etc/php/7.x/fpm/pool.d/www.conf
)已经正确设置。以下是一些关键配置项:
; 监听的socket或端口
listen = /run/php/php7.x-fpm.sock
; 监听的端口(如果使用TCP)
; listen = 127.0.0.1:9000
; 用户和组
user = www-data
group = www-data
; PM模式(推荐使用dynamic)
pm = dynamic
; 最小空闲进程数
pm.min_spare_servers = 5
; 最大空闲进程数
pm.max_spare_servers = 35
; 启动进程数
pm.start_servers = 5
; 最大进程数
pm.max_children = 50
; 每个子进程的空闲时间(秒),超过这个时间子进程将被杀死
pm.max_requests = 500
dynamic
模式,它会根据负载动态调整进程数。确保PHP-FPM进程的内存限制不会超过服务器的内存容量。可以在php.ini
文件中设置:
memory_limit = 128M
确保错误日志文件路径正确,并且有足够的权限写入:
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
opcache:启用OPcache可以显著提高PHP性能。在php.ini
中配置:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
max_execution_time:根据应用的需求调整脚本的最大执行时间:
max_execution_time = 30
supervisor
或systemd
来监控PHP-FPM进程的状态。通过以上配置,你可以确保PHP-FPM在LNMP架构中高效、稳定地运行。根据实际应用的需求和服务器的性能,可能需要进一步调整这些配置。