在Linux环境下,PHP-FPM(FastCGI Process Manager)的调优可以通过以下几个方面来进行:
PHP-FPM提供了多种进程管理方式,包括dynamic
、ondemand
和static
。默认情况下,大多数系统使用dynamic
模式。
pm = dynamic
pm.max_children
:最大子进程数。pm.start_servers
:启动时的服务器进程数。pm.min_spare_servers
:最小空闲服务器进程数。pm.max_spare_servers
:最大空闲服务器进程数。pm = ondemand
pm.process_idle_timeout
:进程空闲超时时间,超过这个时间进程会被杀死。pm = static
pm.max_children
:固定数量的子进程。max_execution_time
:脚本最大执行时间。memory_limit
:脚本最大内存使用量。ulimit -n
:增加文件描述符的限制,确保PHP-FPM有足够的文件描述符可用。catch_workers_output
:是否捕获工作进程的输出。access.log
和error.log
:日志文件的位置和级别。request_terminate_timeout
:请求终止超时时间。fastcgi_param
:设置FastCGI参数,如SCRIPT_FILENAME
。以下是一个示例的PHP-FPM配置文件(通常位于/etc/php/7.x/fpm/pool.d/www.conf
):
[www]
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
request_terminate_timeout = 0
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i
php_value[display_errors] = 0
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
php_admin_value[max_execution_time] = 300
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
通过以上步骤,可以有效地对PHP-FPM进行调优,提高其在Linux环境下的性能。