在 CentOS 环境下,为了防止 PHP-FPM 慢启动,可以采取以下措施:
编辑 /etc/php-fpm.d/www.conf 文件,找到以下参数并进行调整:
request_terminate_timeout:设置脚本执行的最大时间,可以根据实际需求进行调整。pm.process_idle_timeout:设置空闲进程的超时时间,可以根据实际需求进行调整。例如:
request_terminate_timeout = 0
pm.process_idle_timeout = 30s
systemd 设置 PHP-FPM 服务:如果你使用的是 CentOS 7 或更高版本,可以使用 systemd 来管理 PHP-FPM 服务。编辑 /usr/lib/systemd/system/php-fpm.service 文件,找到以下部分:
[Service]
ExecStart=/usr/sbin/php-fpm --nodaemonize --fpm-config /etc/php-fpm.d/www.conf
在 ExecStart 行之前添加以下内容:
ExecStartPre=/bin/sleep 5
这将使 PHP-FPM 服务在启动前等待 5 秒,从而避免慢启动。然后重新加载 systemd 配置并重启 PHP-FPM 服务:
sudo systemctl daemon-reload
sudo systemctl restart php-fpm
supervisord 管理 PHP-FPM 进程:supervisord 是一个进程管理工具,可以用来管理 PHP-FPM 进程,确保其始终运行。首先安装 supervisord:
sudo yum install supervisor
然后创建一个新的配置文件 /etc/supervisord.d/php-fpm.conf,并添加以下内容:
[program:php-fpm]
command=/usr/sbin/php-fpm --nodaemonize --fpm-config /etc/php-fpm.d/www.conf
autostart=true
autorestart=true
stderr_logfile=/var/log/php-fpm.err.log
stdout_logfile=/var/log/php-fpm.out.log
接下来,启动 supervisord 服务并设置开机自启:
sudo systemctl start supervisord
sudo systemctl enable supervisord
通过以上方法,可以有效防止 CentOS 环境下 PHP-FPM 的慢启动。