如果Nginx在上传大文件时中止连接,你将在Nginx的错误日志中看到如下内容:
[error] 25556#0 : *52 client intended to send too large body :
这意味着,你需要增加PHP文件上传大小限制,以下步骤将帮助你解决这个问题!
php.ini中的更改
将最大文件上载大小更改为100MB
编辑。vim /etc/php5/fpm/php.ini
设置。upload_max_filesize = 100M
post_max_size = 100M
注释:从技术上讲,post_max_size应始终大于upload_max_filesize,但是,对于100M这样的大数字,你可以放心地将它们设为相等。 还有另一个变量max_input_time,它可以限制上传大小,但是我从未见过它产生问题。如果你的应用程序支持以GB为单位的上传文件大小,你可能需要相应地调整它,我一直以来就在Nginx后面使用PHP-FPM,我认为在这种设置中,客户端会将文件上传到Nginx,然后Nginx将它复制到PHP。由于Nginx到PHP复制将是本地操作max_input_time可能永远不会创建问题,我还认为Nginx根本不去复制文件,而只是将文件或描述符记录的位置交给PHP!
Nginx配置中的更改
在Nginx config中将以下行添加到http {..}块:http {
#...
client_max_body_size 100m;
#...
}
注:对于非常大的文件,可能需要更改client_body_timeout参数的值,默认为60s。
重新加载PHP-FPM & Nginxservice php5-fpm reload
service nginx reload