影响 POST 请求文件上传失败的几个环节的配置(php + nginx)
写在前面
最近写一个 php 接口,接受上传的文件,发现文件只要超过 5m 以上就会无响应失败,最后发现是 shadowsocks 的 timeout 设置问题(我全程开了全局的 VPN),但一开始并不知晓,把 nginx 和 php 的相关配置都改了个遍。
接着这回,我干脆记录一下,以后遇到此类问题可以按照这个逻辑顺序去排查。
零、环境
PHP Version 7.0.10
一、php
通过修改 php.ini
:
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_filesize
和post_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_time
再max_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)的更多相关文章
- vs文件上传失败--超过最大字符限制
一.问题 在文件上传时,会遇到大文件上传失败. >F12查看报错网络请求返回结果 >问题分析 由于vs上传文件默认的字符大小控制. 二.解决方法 >在web.config中修改或添加 ...
- 潭州课堂25班:Ph201805201 django框架 第十课 GET,POST 请求 文件上传,HttpResponse,cookie (课堂笔记)
在项目中新建个APP, 在主目录中的配置文件中进行 APP 注册 在主目录中的 urls 文件中进行路径分配 新建 urrls 文件 进行分路由配置 创建模板文件 html 文件 写个 form 表单 ...
- php大文件上传失败的原因及解决方法
为什么上传大文件总是失败,上传小文件就没有问题.关于PHP大文件上传失败的原因及解决方法如下: 第1种情况:文件上传时存放文件的临时目录必须是开启的并且是 PHP 进程所有者用户可写的目录.如果未指定 ...
- php 分页实现 和 php 大文件上传失败的处理方式
1. php分页: 要想做php的分页,首先要弄清楚要什么样的分页,关系到哪些参数,参数之间怎么关联: 目标分页效果如下: 分析: 1.主要涉及两个参数:一个是当前输出页面的页码,用变量$p 表示,另 ...
- php 文件上传失败
使用OSX系统,在使用MAMP Pro作为虚拟服务器,并使用PHP作为后端语言进行文件上传,从临时文件夹拷贝文件的方法为 move_uploaded_file 代码如下: if($_FILES['fi ...
- php大文件上传失败的解决方法
1.打开php.ini 2.查找post_max_size:(修改上传大小限制) 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的默认为8m,设置为自己需要的值, ...
- SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...
- Laravel 文件上传失败的问题 error 7
一个站点上传文件失败 error为7 UPLOAD_ERR_CANT_WRITE 临时文件上传不上 $_FILE打出来 Array( [file] => Array ( ...
- wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败
继上一篇 asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权 的公司内部项目上线后发现文件上传功能有问题. 上传的文件超过50M以后前端就报错了,没有状态返回,也没有响 ...
随机推荐
- Python爬虫中文小说网点查找小说并且保存到txt(含中文乱码处理方法)
从某些网站看小说的时候经常出现垃圾广告,一气之下写个爬虫,把小说链接抓取下来保存到txt,用requests_html全部搞定,代码简单,容易上手. 中间遇到最大的问题就是编码问题,第一抓取下来的小说 ...
- Android后台监控指定app的输入内容,抢红包,模拟点击原理
Android开启辅助功能之后可以用AccessibilityService 去后台监控指定的app的输入内容,也可以监控到app的动作 以及通知栏的动作, 抢红包其实就根据通知栏出现了红包的通知消息 ...
- node.js中 koa 框架的基本使用方法
一.安装 koa npm install koa --save 二.简单使用 const koa = require('koa'); //注意使用koa需要new,跟express有点不同 let a ...
- PHP开发——数据类型
概述 l 变量就是一个容器,变量本身并没有类型,变量的类型解决值的类型. l PHP和JS都属于弱类型语言,变量在运行过程中,类型是可以变的.但是,Java不可以. l 标量(基本)数据类型:字 ...
- Win 10 安装手机驱动
直接上图,看图操作即可.
- 关于session共享
最近在银行部署项目,一台Nginx做负载均衡,两台Tomcat,两台Oracle互备,一台ftp文件服务器.Tomcat涉及到session共享问题,所以就在这里做一下总结. 首先关于session ...
- python任意进制转换
python任意进制转换 import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转 ...
- ibatis (六) dynamic的用法
view plain copy print? dynamic可以去除第一个prepend="and"中的字符(这里为and),从而可以帮助你实现一些很实用的功能.具体情况如下: 1 ...
- Java集合:HashSet的源码分析
Java集合---HashSet的源码分析 一. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该 ...
- Codeforces 1082C Multi-Subject Competition 前缀和 A
Codeforces 1082C Multi-Subject Competition https://vjudge.net/problem/CodeForces-1082C 题目: A multi-s ...