在Linux系统中,PHP-FPM(FastCGI Process Manager)是一个用于管理PHP FastCGI进程的工具
listen: 这个指令定义了PHP-FPM监听的地址和端口。它可以是Unix socket(例如:/var/run/php-fpm.sock)或者TCP/IP地址(例如:127.0.0.1:9000)。使用Unix socket可以提高性能,因为它避免了网络开销。
listen.owner, listen.group, listen.mode: 这些指令分别定义了监听套接字的属主、属组和权限。例如,listen.owner = www-data表示监听套接字的属主是www-data用户。
user 和 group: 这两个指令定义了PHP-FPM进程运行的用户和组。通常,为了安全起见,建议将它们设置为非root用户和组。
pm: 这个指令定义了PHP-FPM的进程管理模式。可选值有static、dynamic和ondemand。static模式下,会预先创建指定数量的子进程;dynamic模式下,子进程的数量会根据负载动态调整;ondemand模式下,只有在有请求时才会创建子进程。
pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers: 这些指令用于控制dynamic和ondemand模式下的子进程数量。例如,pm.max_children = 50表示最多可以同时运行50个子进程。
pm.max_requests: 这个指令定义了一个子进程在被重启之前可以处理的请求数量。这有助于防止内存泄漏。
request_terminate_timeout: 这个指令定义了脚本执行的最长时间。超过这个时间的脚本将被终止。
slowlog: 这个指令定义了慢查询日志的路径。慢查询是指执行时间超过指定阈值的查询。
catch_workers_output: 这个指令决定是否捕获子进程的输出。将其设置为yes可以在错误日志中查看子进程的输出,有助于调试。
php_admin_value 和 php_admin_flag: 这些指令允许你设置PHP-FPM的全局配置选项。例如,php_admin_value[error_log] = /var/log/php-fpm/error.log表示将错误日志写入指定的文件。
这些只是PHP-FPM配置文件中的一部分指令。你可以根据自己的需求进行调整。在修改配置文件后,记得重启PHP-FPM服务以使更改生效。