在 Ubuntu 系统中,使用 PHP-FPM 时,防止僵尸进程的方法如下:
编辑 PHP-FPM 配置文件(通常位于 /etc/php/版本号/fpm/pool.d/www.conf),找到以下参数并进行设置:
request_terminate_timeout = 0
这将设置请求超时时间为无限长。你可以根据需要设置一个合适的值。
在修改配置文件后,重启 PHP-FPM 服务以使更改生效:
sudo systemctl restart php版本号-fpm
将“版本号”替换为你的 PHP 版本号,例如:php7.4-fpm。
Supervisor 是一个进程管理工具,可以帮助你监控和管理 PHP-FPM 进程。首先,安装 Supervisor:
sudo apt-get install supervisor
接下来,创建一个新的 Supervisor 配置文件(例如 /etc/supervisor/conf.d/php-fpm.conf),并添加以下内容:
[program:php-fpm]
process_name=%(program_name)s_%(process_num)02d
command=/usr/sbin/php-fpm --nodaemonize --fpm-config /etc/php/版本号/fpm/pool.d/www.conf
autostart=true
autorestart=true
numprocs=5
startsecs=0
stopwaitsecs=0
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/php-fpm.log
将“版本号”替换为你的 PHP 版本号,例如:php7.4。
这个配置文件将启动 5 个 PHP-FPM 进程,并在它们崩溃时自动重启。
运行以下命令以更新 Supervisor 配置并启动 PHP-FPM 进程:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start php-fpm
现在,PHP-FPM 进程将由 Supervisor 管理,僵尸进程的问题应该得到解决。如果你仍然遇到问题,请检查 PHP-FPM 和 Supervisor 的日志文件以获取更多信息。