题 你如何重启php-fpm?


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


160
2017-10-12 01:58






答案:


注意:前置 sudo 如果不是root


294
2017-10-12 03:37



这些都没有奏效 - Galen
对于Google员工(比如我自己)来到这里:这个答案是正确的,但在我的系统上它被命名为'php5-fpm',所以 service php5-fpm restart 做了伎俩。 - Matt Winckler
在Mac上怎么样? php-fpm是使用自制软件安装的。 which php-fpm 给 /usr/local/sbin/php-fpm。 - hobbes3
@ hobbes3试试 brew services restart php56 (如果您收到有关没有可用公式的错误,请尝试使用其他版本,例如php5或php55)。如果您没有安装brew服务,它应该在第一次运行时为您安装。 - Doktor J
我需要这个: sudo service php7.0-fpm restart - Ryan


对于Mac OS X,这就是我的工作:

制作一个剧本 /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中

然后从终端fpm-restart和BOOM中调用它!


29
2017-09-23 04:55



使用 homebrew.mxcl.php*.plist 如果它不起作用 - Daniil Ryzhkov
github.com/Homebrew/homebrew-php#installing-multiple-versions    是你无法找到.plist文件的情况。 - Frank Fang


通常情况下, service php5-fpm restart 在最新的发行版上会做得很好。

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

现在,如果您不想重新启动服务器,只需终止进程并重新开始(按此处编辑):

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

21
2017-08-08 11:55



谢谢,这完全解决了我的问题。 (stop: Unknown instance:) - Nilloc


这应该工作:

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

11
2018-02-01 20:08



如果您在Mac上通过自制软件安装PHP-FPM,第一个命令比卸载+加载plist要好得多 - alanthing
OSX: killall php-fpm - ptim
在OSX上面,上面给了我一个错误“Unknown user SR2”。扭转参数修正了它:“pkill -USR2 -o php-fpm” - Keeth
正是我需要在容器中重启FPM,谢谢! - Adrian Günter
我正在使用预安装或捆绑的xcode版本的php及其相关的-fpm由于某种原因,而不是通过Homebrew。我以为我应该使用那里已有的东西。我正在使用的组合 php-fpm --prefix /usr/local,根据需要制作一些目录,正如@Keeth所说, pkill -USR2 -o php-fpm检查 pgrep -l fpm,PID确实改变了!我没有plist文件或服务来利用其他一些答案提到的优势。 - Pysis


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


11
2017-12-30 21:25



是的,也适合我。 Mac osx - Mike Nguyen


我在重启php7-fpm时遇到了问题,因为我不知道该服务是如何命名的。这个功能给了我答案:

service --status-all

调用了我的Ubuntu中的php7-fpm服务 php7.0-fpm, 所以我做了:

service php7.0-fpm restart


8
2018-03-26 08:57



+1为 service --status-all - J.D.


如果您向主进程发送USR2信号,php-fpm将重新启动:

sudo kill -USR2 php-fpm_main_process_id

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

pid = /etc/php-fpm.pid

然后创建该文件 /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`

5
2018-03-12 07:01



我喜欢@ dialt0ne和@Keeth's pkill ... 回答和评论更多;更短更简单。 - Pysis
这是更好的,很好的解释。如果你没有正确匹配进程,那么pkill会冒这个风险,如果你碰巧让它们在同一个盒子上运行,就会杀掉你的其他PHP集群(是的,这是不好的做法)。 - Rich K.