Nginx & PHP-FPM环境下,文件上传部分的设置

1. 问题背景

基于LNMP的项目中需要上传图片和文件,但是如果文件size比较大时,会出现上传失败的现象。这个size通常是1MB/2MB。其实这个限制通常会出现在三个部分:

  1. nginx的限制
  2. php的限制
  3. 代码和防火墙的限制

第三部分的限制不好说,需要根据实际情况进行处理。

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

目录