你如何重新启动php-fpm?

我需要重新加载我的php.ini,帮助对话框中没有关于重新启动它。

注意 :如果不是root, 预先安装sudo

  • 直接使用SysV Init脚本:

     /etc/init.d/php-fpm restart # typical /etc/init.d/php5-fpm restart # debian-style /etc/init.d/php7.0-fpm restart # debian-style PHP 7 
  • 使用服务包装脚本

     service php-fpm restart # typical service php5-fpm restart # debian-style service php7.0-fpm restart # debian-style PHP 7 
  • 使用Upstart(例如Ubuntu):

     restart php7.0-fpm # typical (ubuntu is debian-based) PHP 7 restart php5-fpm # typical (ubuntu is debian-based) restart php-fpm # uncommon 
  • 使用systemd(较新的服务器):

     systemctl restart php-fpm.service # typical systemctl restart php5-fpm.service # uncommon systemctl restart php7.0-fpm.service # uncommon PHP 7 

或者等同于你的系统。

对于Mac OS X,这是我所做的:

创build一个脚本/usr/local/etc/php/fpm-restart

 #!/bin/sh echo "Stopping php-fpm..." launchctl unload -w ~/Library/LaunchAgents/homebrew-php*.plist echo "Starting php-fpm..." launchctl load -w ~/Library/LaunchAgents/homebrew-php*.plist echo "php-fpm restarted" exit 0 

然后:

 chmod ug+x /usr/local/etc/php/fpm-restart cd /usr/local/sbin ln -s /usr/local/etc/php/fpm-restart 

确保/ usr / local / sbin在你的$ PATH中

然后从terminalfpm-restart和BOOM调用它!

通常, service php5-fpm restart会在最新的发行版上正常工作。

但有时,它失败,告诉你restart: Unknown instance:或这样)。

现在,如果你不喜欢重新启动你的服务器,只需要终止这个进程并重新开始(在这里编辑):

 $ sudo pkill php5-fpm; sudo service php5-fpm start 

对于Mac OSX brew services restart php56为我工作。

这应该工作:

 pkill -o -USR2 php-fpm pkill -o -USR2 php5-fpm 

如果你发送一个USR2信号到主进程,php-fpm将会重启:

 sudo kill -USR2 php-fpm_main_process_id 

所以我们只需要指示php-fpm在某处logging它的pid。 在这个例子中,我假设你想把它保存在/etc/private/php-fpm.pid ,并且这个php-fpm以用户_php运行。 首先,将此行添加到configuration文件中:

 pid = /etc/php-fpm.pid 

然后创build文件/etc/php-fpm.pid ,并确保php-fpm有权修改它:

 $ cd /etc $ sudo touch php-fpm.pid $ sudo chown _php php-fpm.pid $ sudo chmod 644 php-fpm.pid 

现在,下一次php-fpm开始时,你将能够得到它的PID,并重新启动,如下所示:

 $ cat /etc/php-fpm.pid 815 $ sudo kill -USR2 815 

或者你可以把它们组合成一个命令:

 $ sudo kill -USR2 `cat /etc/private/php-fpm.pid` 

对我来说,我刚刚通过apt升级,服务重新启动不起作用。 我最终需要在使用之前杀死现有的进程:killall php5-fpm

要允许PHP-FPM重启脚本工作,你必须在你的php-fpm.conf文件中指定一个PID文件。 即

 pid = /var/run/php-fpm/php-fpm.pid 

在php-fpm.conf中,pid的默认值是什么都没有,这意味着不创build一个PID文件,这意味着重启脚本不能告诉重启过程中哪个进程结束。

在Ubuntu 16与PHP 5.6 fpm。

  /etc/init.d/php5.6-fpm restart 

我在重新启动php7-fpm时遇到了一个问题,因为我不知道服务的命名方式。 这个function给了我答案:

service --status-all

在我的Ubuntu的php7-fpm服务被称为php7.0-fpm ,所以我做了:

service php7.0-fpm restart

在Windows上:

  1. 在pipe理控制台中打开服务:

     Start -> Run -> "services.msc" -> OK 
  2. 从列表中selectphp-fpm

  3. 右击并select重新启动

对于旧版本的Debian&Ubuntu的 – PHP 5.6的将是

  /etc/init.d/php-fpm56 restart service php-fpm56 restart 

在CentOS 7上

 sudo systemctl enable php-fpm // Just incase is disabled. Also ensures it starts automatically with the server sudo systemctl start php-fpm // Start the service sudo systemctl stop php-fpm // Stop the service sudo systemctl status php-fpm // View status 

用nginx在Alpine上工作在这里:

要杀死所有的php-fpm7进程:

kill $(ps -o pid,comm | grep php-fpm7 | awk '{print $1}')

开始php-fpm7:

php-fpm7

在使用来自softwarecollections.org的PHP 7的 RedHat / CentOS 7上

 service rh-php70-php-fpm start service rh-php70-php-fpm stop service rh-php70-php-fpm reload service rh-php70-php-fpm restart service rh-php70-php-fpm status 

或者如果你使用systemctl:

 systemctl start rh-php70-php-fpm systemctl stop rh-php70-php-fpm systemctl reload rh-php70-php-fpm systemctl restart rh-php70-php-fpm systemctl status rh-php70-php-fpm