Nginx & PHP-FPM环境下,文件上传部分的设置
1. 问题背景
基于LNMP的项目中需要上传图片和文件,但是如果文件size比较大时,会出现上传失败的现象。这个size通常是1MB/2MB。其实这个限制通常会出现在三个部分:
- nginx的限制
- php的限制
- 代码和防火墙的限制
第三部分的限制不好说,需要根据实际情况进行处理。
2. nginx部分的设置
#需要注意的地方有三个:
sendfile on; 设置为on表示启动高效传输文件的模式
keepalive_timeout 180;保持连接的时间,默认65s
client_max_body_size 20M; 上传文件大小限制,可在server中设置
#注意:更改后nginx需要reload或者restart
3. php部分的设置
编辑php.ini文件,注意php和php-fpm使用的配置文件可能不是同一个。
file_uploads = On ;打开文件上传选项
upload_max_filesize = 20M ;上传文件上限
post_max_size = 20M ;post上限
#还需要根据实际情况调整下面的选项
max_execution_time = 180 ;脚本最大执行时间(秒),过短会导致文件还没上传完脚本就停止了。
max_input_time = 180 ;请求的最大传输时间,过短会导致文件还没上传完传输就停止了。
memory_limit = 128M ;内存上限
#修改完成后重启php-fpm或reload配置。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 irvin.em@live.com。
文章标题:Nginx & PHP-FPM环境下,文件上传部分的设置
文章字数:325
本文作者:dino
发布时间:2019-11-11, 17:41:46
最后更新:2019-11-11, 18:03:41
原始链接:https://blog.walkbc.com/2019/11/11/FileUploadSetupOfNginxAndPhp/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。
QQ交流群:273078549