Ubuntu中的PHP-FPM(FastCGI Process Manager)是一个用于管理PHP FastCGI进程的工具。它可以帮助你更好地控制PHP进程,提高性能和安全性。以下是一些常见的PHP-FPM配置项及其详解:
listen
: 这个配置项用于设置PHP-FPM监听的地址和端口。例如:
listen = 127.0.0.1:9000
这里,PHP-FPM将监听本地回环地址的9000端口。你也可以使用Unix套接字进行通信,例如:
listen = /var/run/php/php7.4-fpm.sock
listen.owner
和 listen.group
: 这两个配置项用于设置监听套接字的属主和属组。例如:
listen.owner = www-data
listen.group = www-data
user
和 group
: 这两个配置项用于设置PHP-FPM进程的运行用户和组。例如:
user = www-data
group = www-data
pm
: 这个配置项用于设置进程管理器类型。可选值有static
、dynamic
和ondemand
。例如:
pm = dynamic
在dynamic
模式下,PHP-FPM会根据负载自动调整进程数量。
pm.max_children
: 这个配置项用于设置最大子进程数量。例如:
pm.max_children = 5
pm.start_servers
: 这个配置项用于设置在启动时创建的子进程数量。仅在pm
设置为dynamic
或ondemand
时生效。例如:
pm.start_servers = 2
pm.min_spare_servers
: 这个配置项用于设置最小空闲子进程数量。仅在pm
设置为dynamic
或ondemand
时生效。例如:
pm.min_spare_servers = 1
pm.max_spare_servers
: 这个配置项用于设置最大空闲子进程数量。仅在pm
设置为dynamic
或ondemand
时生效。例如:
pm.max_spare_servers = 3
pm.max_requests
: 这个配置项用于设置每个子进程在被重启之前可以处理的请求数量。例如:
pm.max_requests = 500
request_terminate_timeout
: 这个配置项用于设置请求超时时间(秒)。例如:
request_terminate_timeout = 30s
slowlog
: 这个配置项用于设置慢查询日志文件路径。例如:
slowlog = /var/log/php-fpm/www-slow.log
catch_workers_output
: 这个配置项用于设置是否捕获子进程的输出。例如:
catch_workers_output = yes
这些配置项通常位于/etc/php/{version}/fpm/pool.d/www.conf
文件中,其中{version}
是你的PHP版本。你可以根据实际需求修改这些配置项以优化PHP-FPM的性能。在修改配置后,请确保重启PHP-FPM服务以使更改生效:
sudo service php{version}-fpm restart