在Linux系统中,PHP-FPM(FastCGI Process Manager)是一个用于管理PHP进程的高性能、稳定的进程管理器。它通常与Nginx或Apache等Web服务器一起使用,以提高PHP应用程序的性能。PHP-FPM的配置文件通常位于/etc/php/{php_version}/fpm/pool.d/www.conf,其中{php_version}是您安装的PHP版本。
以下是www.conf文件中一些重要配置项的详解:
listen:此指令定义了PHP-FPM监听的地址和端口。它可以是Unix套接字(例如:/run/php/php7.4-fpm.sock)或TCP/IP地址(例如:127.0.0.1:9000)。使用Unix套接字通常比TCP/IP地址更快,因为它们避免了额外的网络开销。
listen.owner 和 listen.group:这两个指令定义了监听套接字的属主和属组。通常,它们分别设置为www-data或apache,这取决于您的Web服务器配置。
user 和 group:这两个指令定义了PHP-FPM进程的属主和属组。它们通常也设置为www-data或apache。
pm:此指令定义了PHP-FPM使用的进程管理器。可选值有static、dynamic和ondemand。static表示固定数量的子进程;dynamic表示根据负载动态调整子进程数量;ondemand表示按需启动子进程。
pm.max_children:当pm设置为static、dynamic或ondemand时,此指令定义了允许的最大子进程数量。
pm.start_servers:当pm设置为dynamic时,此指令定义了启动时的子进程数量。
pm.min_spare_servers 和 pm.max_spare_servers:当pm设置为dynamic时,这两个指令定义了空闲子进程的最小和最大数量。
pm.max_requests:此指令定义了一个子进程在被终止之前可以处理的请求数量。这有助于防止内存泄漏。
request_terminate_timeout:此指令定义了脚本执行的最大时间(以秒为单位)。超过此时间的脚本将被终止。
slowlog:此指令定义了慢查询日志文件的路径。慢查询是指执行时间超过request_terminate_timeout的脚本。
catch_workers_output:当设置为yes时,此指令会将子进程的输出捕获到慢查询日志中。
这些只是www.conf文件中的一部分配置项。您可以根据您的需求和系统资源进行调整。在修改配置文件后,请确保重启PHP-FPM服务以使更改生效。