写在前面

最近写一个 php 接口,接受上传的文件,发现文件只要超过 5m 以上就会无响应失败,最后发现是 shadowsocks 的 timeout 设置问题(我全程开了全局的 VPN),但一开始并不知晓,把 nginx 和 php 的相关配置都改了个遍。

接着这回,我干脆记录一下,以后遇到此类问题可以按照这个逻辑顺序去排查。

零、环境

PHP Version 7.0.10

一、php

通过修改 php.ini

更多的配置参考:http://php.net/manual/en/ini.core.php

1、上传相关

options type desc remark
file_uploads boolean 是否允许 HTTP 文件上传 'On' or 'Off'
upload_tmp_dir string 上传时存储文件的临时目录 如果未指定,将使用系统的默认值(/tmp)
upload_max_filesize integer 上传文件的最大大小 是所有文件字段的大小总和
post_max_size integer post_max_size = upload_max_filesize + 所有其他字段的长度(跟文件比微不足道) post_max_size 一般略大于upload_max_filesize,但为了省事可以直接让它们相等
max_file_uploads integer 允许同时上传的最大文件数。(提交时保留空白的上传字段不计入此限制)

注:upload_max_filesizepost_max_size 可以用速记表达:K (for Kilobytes), M (for Megabytes) and G (for Gigabytes; available since PHP 5.1.0) ,不区分大小写。

2、时间相关

options type desc remark
max_input_time integer 脚本解析输入数据允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的
max_execution_time integer 这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源 你的 web 服务器也可以有其他超时设置

max_input_timemax_execution_time

3、内存相关

options type desc remark
memory_limit integer 这将设置允许脚本分配的最大内存量(以字节为单位)。这有助于防止编写糟糕的脚本占用服务器上的所有可用内存 要没有内存限制,请将此指令设置为 -1

二、nginx

通过修改 nginx.conf

options type desc remark
client_max_body_size integer

返回 413(请求实体太大)错误。

三、shadowsocks

通过修改 preferences

options type desc remark
timeout integer 超时时间

返回 net::ERR_CONNECTION_RESET 错误。

影响 POST 请求文件上传失败的几个环节的配置(php + nginx)的更多相关文章

  1. vs文件上传失败--超过最大字符限制

    一.问题 在文件上传时,会遇到大文件上传失败. >F12查看报错网络请求返回结果 >问题分析 由于vs上传文件默认的字符大小控制. 二.解决方法 >在web.config中修改或添加 ...

  2. 潭州课堂25班:Ph201805201 django框架 第十课 GET,POST 请求 文件上传,HttpResponse,cookie (课堂笔记)

    在项目中新建个APP, 在主目录中的配置文件中进行 APP 注册 在主目录中的 urls 文件中进行路径分配 新建 urrls 文件 进行分路由配置 创建模板文件 html 文件 写个 form 表单 ...

  3. php大文件上传失败的原因及解决方法

    为什么上传大文件总是失败,上传小文件就没有问题.关于PHP大文件上传失败的原因及解决方法如下: 第1种情况:文件上传时存放文件的临时目录必须是开启的并且是 PHP 进程所有者用户可写的目录.如果未指定 ...

  4. php 分页实现 和 php 大文件上传失败的处理方式

    1. php分页: 要想做php的分页,首先要弄清楚要什么样的分页,关系到哪些参数,参数之间怎么关联: 目标分页效果如下: 分析: 1.主要涉及两个参数:一个是当前输出页面的页码,用变量$p 表示,另 ...

  5. php 文件上传失败

    使用OSX系统,在使用MAMP Pro作为虚拟服务器,并使用PHP作为后端语言进行文件上传,从临时文件夹拷贝文件的方法为 move_uploaded_file 代码如下: if($_FILES['fi ...

  6. php大文件上传失败的解决方法

    1.打开php.ini 2.查找post_max_size:(修改上传大小限制) 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的默认为8m,设置为自己需要的值, ...

  7. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

  8. Laravel 文件上传失败的问题 error 7

    一个站点上传文件失败 error为7  UPLOAD_ERR_CANT_WRITE 临时文件上传不上  $_FILE打出来 Array(    [file] => Array        (  ...

  9. wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败

    继上一篇 asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权 的公司内部项目上线后发现文件上传功能有问题. 上传的文件超过50M以后前端就报错了,没有状态返回,也没有响 ...

随机推荐

  1. 关于HashMap和HashTable.md

    目录 先来些简单的问题 你用过HashMap吗?" "什么是HashMap?你为什么用到它?" "你知道HashMap的工作原理吗?" "你 ...

  2. Mesh属性[Unity]

    Mesh属性[Unity] Mesh是Unity内的一个组件,称为网格组件.3D网格是Unity中最重要的图形元素.在Unity中存在多种组件用于渲染标准网格或者蒙皮网格.拖尾或者3D线条. 在Uni ...

  3. python,opencv,imread,imwrite,存储,读取图像像素不一致,这种情况是label使用jpg格式

    最近在做图像分割,需要使用一些分割图片的label,但是发现存储的分割label感觉被平滑过了,即使使用 image = cv2.imread(info['path'],cv2.IMREAD_UNCH ...

  4. VueJs学习参考的例子

    his is a vue+mint's demo ,for loler(PAD LOL) https://github.com/yuanman0109/vue2.0-Mint-lolbox   An ...

  5. 针对piix4_smbus ****host smbus controller not enabled的解决方法

    SMBus 目录 SMBus与I2C的差别 SMBus 是 System Management Bus 的缩写,是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯.它主要是希望 ...

  6. MYSQL 时间类型

    常见四种:DATE, TIME, DATETIME, TIMESTAMP DATE: 只表示年月日,YYYY-MM-DD TIME: 只表示时分秒,HH-mm-SS DATETIME: DATE和TI ...

  7. eclipse中tomcat可以start启动,无法debug启动的解决

    设置断点,进行程序调试,但是debug启动tomcat,却无法启动,并且会报超时异常. 原因可能是eclipse和tomcat启动时读取文件发生冲突 去掉所有的断点,然后重新debug启动,再设置断点 ...

  8. 考研部分概念和流程(若不全和错误可提示我补充,另考研帮app推荐)

    上大学必须经过全国统一高考,而就读硕士研究生的途径相对而言要多一些,也更灵活一些.已经工作的人,除了放弃工作报考研究生以外,还可以不脱产申请攻读学位,或申请单独考试.不脱产申请攻读学位,通俗的讲,就是 ...

  9. Linux的top命令

    文章来自于长风破浪博主的内容,下面是该博客网址. https://www.cnblogs.com/dragonsuc/p/5512797.html 为了自己能多学习,多记忆,所以直接搬到了这里,希望小 ...

  10. 通过类名或者jar名查询所在jar包

    一.问题 例如我想查看一下FilterSecurityInterceptor的源码,但是我不知道它在maven依赖中的哪个jar包中 二.解决方案 http://www.findmaven.net/ ...