我在 Web 托管环境中使用 PHP FastCGI SAPI 来运行 PHP 应用程序。为了生成 FCGI 进程,我使用spawn-fcgi帮助程序。我的问题是,每当我对 php.ini 文件进行更改时,我都必须终止并重新启动每个 FastCGI 服务器,以使新配置生效。
有没有办法重新加载 PHP 配置(即 php.ini 指令)而无需重新生成每个 FastCGI 服务器?我尝试kill -HUP PHPCGIPID
向服务器发送挂断信号(即),但这会导致服务器终止。
答案1
据我所知,PHP 的 FastCGI 解释器不会对诸如这样的信号做出反应HUP
,USR1
也不会USR2
重新加载其配置。
或许PHP-FPM可以帮助您实现目标。缺点是,它需要修补 PHP。
答案2
如果服务器是自动生成的,请终止它们。如果它们是手动启动的,请重新启动它们。PHP 没有重新加载其自身配置的能力 — 通常,终止/重新启动不是问题。在这种情况下,有什么原因不能终止它们吗?
答案3
如果你使用 PHP5 尝试这个
sudo /etc/init.d/php5-fpm reload
否则
sudo /etc/init.d/php-fpm reload
此命令将正常重启服务器而不关闭现有连接。