一、改动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'
发表回复