我需要重新加载我的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上:
在pipe理控制台中打开服务:
Start -> Run -> "services.msc" -> OK
从列表中selectphp-fpm
对于旧版本的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