一、改动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进程可以理解以下信号:
- INT, TERM 立刻终止
- QUIT 平滑终止
- USR1 重新打开日志文件
- USR2 平滑重载所有worker进程并重新载入配置和二进制模块
一个直接的重启方法:
- 先查看php-fpm的master进程id:
ps aux | grep php-fpm
| grep master | grep -v grep - 再重启php-fpm:
kill -USR2master进程id
上面方案一般是没有生成php-fpm.pid
文件时使用,如分别在nginx
和php-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'
发表回复