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

#1 楼

注意:如果不是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上呢? php-fpm是使用自制软件安装的。哪个php-fpm给出了/ usr / local / sbin / php-fpm。

–hobbes3
13年3月16日在23:06

@ hobbes3尝试brew服务重新启动php56(如果您收到有关可用公式的错误,请尝试使用其他版本,例如php5或php55)。如果未安装Brew服务,则应在首次运行时为您安装它。

– Doktor J
15年12月21日在22:22

以上都不对我有用,但这确实做到了:service php-fcgi-mydomain-com restart而且我必须对启用了站点的每个域重复此操作

–伊里奇
18-3-12在19:01



这对我来说是一个好(centOs):systemctl reload php70-php-fpm

– 4wk_
18年7月25日在12:58

我在Ubuntu 16.04上,这似乎可以正常工作:systemctl restart php5.6-fpm.service

– relipse
18/12/7在19:36



#2 楼

对于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调用它!

评论


如果不起作用,请使用homebrew.mxcl.php * .plist

–丹尼尔·里兹科夫(Daniil Ryzhkov)
15年8月11日在20:21

如果您找不到.plist文件,请访问github.com/Homebrew/homebrew-php#installing-multiple-versions。

–坦率的芳
16-09-5在1:22



brew服务基本上可以完成脚本的工作。

–秋浪
19年1月23日在7:58

#3 楼

通常,在最新的发行版中,service php5-fpm restart可以正常工作。不喜欢重新启动服务器,只是终止进程并重新开始(在此处进行编辑):

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


评论


谢谢,这正是我的问题。 (停止:未知实例:)

– Nilloc
16年8月31日在15:00



#4 楼

这应该起作用:

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


评论


如果您在Mac上通过Homebrew安装了PHP-FPM,则第一个命令的效果要比卸载+加载plist更好

–艾伦·艾维(Alan Ivey)
13年7月19日在21:01

OSX:killall php-fpm

– ptim
14年8月22日在14:28

在OSX上,上面给了我一个错误“未知用户SR2”。反转参数即可解决问题:“ pkill -USR2 -o php-fpm”

–基思
2015年1月9日在11:44



正是我需要在容器中重新启动FPM所需要的,谢谢!

– AdrianGünter
2015年10月27日,0:32

我出于某种原因而不是通过Homebrew使用预先安装的或与xcode捆绑在一起的php版本及其关联的-fpm。只是认为我应该使用已经存在的东西。我正在使用php-fpm --prefix / usr / local的组合,在需要的目录下创建一些目录,正如@Keeth所说,pkill -USR2 -o php-fpm,用pgrep -l fpm检查,以及PID确实改变了!我没有plist文件或服务可以利用其他答案中提到的优势。

–解毒
17年8月10日在3:41



#5 楼

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

评论


是的,也为我工作。 Mac OSX

–迈克·阮(Mike Nguyen)
17年5月24日下午5:15

#6 楼

重新启动php7-fpm时出现问题,因为我不知道该服务的确切命名。此函数给了我答案:

service --status-all

我的Ubuntu中的php7-fpm服务称为php7.0-fpm,所以我这样做了: />

评论


+1服务-状态全部

– J.D.
17年12月13日在23:33

#7 楼

如果向主进程发送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`


评论


我喜欢@ dialt0ne和@Keeth的技巧...以上的答案和评论;更短更简单。

–解毒
17年8月10日在3:43



这是更好的,很好的解释。如果您没有正确匹配进程,则pkill会冒着使其他PHP群集在同一盒子上运行的情况杀死其他PHP群集的风险(是的,这是一种不好的做法)。

– Rich K.
17-10-30在16:47

#8 楼

对我来说,我刚刚通过apt升级,但服务重启无法正常进行。我最终需要使用以下命令杀死现有进程:killall php5-fpm

#9 楼

要允许PHP-FPM重新启动脚本工作,必须在php-fpm.conf文件中使用指定PID文件。 ie

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


php-fpm.conf中pid的默认值为空,这意味着不创建PID文件,这意味着重新启动脚本无法告诉重启过程结束的过程。

#10 楼

在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


#11 楼

在php 5.6 fpm的Ubuntu 16上。

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


#12 楼

在RedHat / CentOS 7上,使用来自softwarecollections.org的PHP 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


#13 楼

查找php-fpm服务名称的最简单方法是对其进行搜索:

systemctl -l --type service --all | grep fpm


评论


您可以简化一下:systemctl list-units * fpm *

–迈克尔·汉普顿
19-3-17在16:40



#14 楼

在Windows上:




在管理控制台中打开服务:

Start -> Run -> "services.msc" -> OK


从列表中选择php-fpm
右键单击并选择重新启动


#15 楼

对于旧版本的debian和ubuntu-php 5.6,它将是

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


#16 楼

在带有nginx的Alpine上,它在这里起作用:

要杀死所有php-fpm7进程:

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

要启动php-fpm7:

php-fpm7

#17 楼

要在CentOS / RHEL 7.x +上列出系统服务,请使用


systemctl


要列出所有服务:


systemctl list-unit-files


在哪里可以找到名为* php-fpm的服务*复制服务名称并运行以下命令


systemctl重新启动ea-php72-php-fpm.service


注意:ea-php72-php-fpm.service用户您的服务名称

#18 楼

MaxOS的另一种方法

打开ActivityMonitor,搜索php-fpm,找到pid。

打开终端,使用kill [pid]停止php-fpm

,然后在终端上启动php-fpm

如果存在127.0的错误信息。 0.1:9000已经在使用中,请忽略它。

刷新Nginx页面,应该看到php.ini更改生效。

评论


什么是MaxOS?仅运行php-fpm很有可能在错误的用户下运行它。忽略错误消息绝不是一个好主意。

–杰拉德·施耐德(Gerald Schneider)
19-09-23在8:44