Linux改动php.ini后如何重启php-fpm

作者: xusx 分类: Linux 发布时间: 2019-12-13 16:29

一、改动php.ini

最近使用PhpMyAdmin导入一个1.5M*.sql.zip文件到MySQL过程中遇到上传文件异常:

413 Request Entity Too Large

搜索了一下,原来是nginx默认限制上传文件1M内。

所以,遇到这种上传大型文件返回413的时候,我们修改一下nginx就好了。

配置如下:

# 可以在http、server、location任意一个中加入
# 你的项目需要多大,你就改成几M
client_max_body_size 2M;

最后,不要忘记重启nginx

sudo service nginx reload

当然,如果单个文件大小超过2M,例如5M,那还要改动/etc/php5/fpm/php.ini里的两项设置:

post_max_size = 5M
upload_max_filesize = 5M

二、重启php-fpm

接下来,要重启重启php-fpm:

sudo service php-fpm restart

会提示:php-fpm: unrecognized service或者php-fpm: command not found,那是因为php 5.3.3以后的php-fpm不再支持php-fpm以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制。

master进程可以理解以下信号:

  1. INT, TERM 立刻终止
  2. QUIT 平滑终止
  3. USR1 重新打开日志文件
  4. USR2 平滑重载所有worker进程并重新载入配置和二进制模块

一个直接的重启方法:

  1. 先查看php-fpm的master进程id:
    ps aux | grep php-fpm | grep master | grep -v grep
  2. 再重启php-fpm:
    kill -USR2 master进程id

上面方案一般是没有生成php-fpm.pid文件时使用,如分别在nginxphp-fpm.conf里面配置如下:

fastcgi_pass unix:/var/run/php5-fpm.sock
listen = /var/run/php5-fpm.sock

如果要生成php-fpm.pid,使用下面这种方案:

上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf(可能有的是/etc/php5/fpm/php-fpm.conf)这个配置文件,cat /usr/local/php/etc/php-fpm.conf(或cat /etc/php5/fpm/php-fpm.conf)看到:

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid

pid文件路径应该位于/usr/local/php/var/run/php-fpm.pid,由于注释掉,所以没有生成,我们把注释去除,再kill -USR2 master进程id重启php-fpm,便会生成pid文件,下次就可以使用以下命令重启,关闭php-fpm了:

php-fpm 关闭:
kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'
php-fpm 重启:
kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注