413 请求实体太大 - 文件上传问题
Posted
技术标签:
【中文标题】413 请求实体太大 - 文件上传问题【英文标题】:413 Request Entity Too Large - File Upload Issue 【发布时间】:2014-08-09 23:25:16 【问题描述】:我正在尝试在我的服务器上上传 30MB 的文件,但它无法正常工作。
当我上传 30MB 的文件时,页面加载“Page Not Found”
当我上传 3MB 文件时,我收到“413 Request Entity Too Large” nginx/0.6.32
我正在尝试查找 nginx,以便增加“client_max_body_size”,但我无法在我的服务器上找到安装的 nginx。我什至尝试过跑步:
vi /etc/nginx/nginx.conf
或
vi /usr/local/nginx/conf/nginx.conf
检查配置文件是否存在,但我在我的服务器上找不到它。
有没有办法解决这个问题?或者我必须在我的服务器上安装 nginx。
编辑:
我已对我的 php.ini 文件进行了所有必要的更改,
post_max_size 128M
upload_max_filesize 100M
memory_limit 256M
谢谢, 拉朱
【问题讨论】:
请看这个链接可能对你有帮助cyberciti.biz/faq/…rtcamp.com/tutorials/php/increase-file-upload-size-limit 嗨 Mohammad,我已经在寻找 nginx,但在我的服务器上找不到它。我确定,我的服务器上没有安装 nginx,所以我很困惑为什么我会收到属于 Nginx 的错误消息 首先你必须确保你的服务器上没有安装 ngix,但如果你完全确定,它可能是出于安全原因,一些服务器管理器为迷惑黑客使用了这个技巧 你试过ps aux | grep nginx
看看它是否在运行吗?
你试过which nginx
吗?这将为您提供可执行文件的位置,而不是配置文件,但它至少应该确认是否安装了 nginx。
【参考方案1】:
来源: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/
编辑nginx的conf文件:
nano /etc/nginx/nginx.conf
在http部分添加一行:
http
client_max_body_size 100M;
不要用MB不行,只有M!
另外别忘了重启nginx
systemctl restart nginx
【讨论】:
当我这样做时,我的 413 变成了 404。我在 EC2 上使用 Amazon Linux。 nginx 文档也显示一个小写的“m”。 nginx.org/en/docs/http/… 它要求输入密码来更改文件。但我不记得设置了一个。我错过了什么吗? nano 的路径应该是 nano /etc/nginx/nginx.conf 。 为我工作,但注意:如果您的配置已经有http
部分,请将其余部分添加到其中!添加新的http
部分将失败并在Nginx 日志中给出"http" directive is duplicate
错误。【参考方案2】:
-在 php.ini 中(在 /etc/php.ini 内)
max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M
-in nginx.conf(在/opt/nginx/conf里面)
client_max_body_size 24000M
它适用于我的情况
【讨论】:
嗨 Arun,我们服务器的问题是,我找不到安装的 nginx,但它仍然给出 nginx 错误 在 /opt 或 /etc 中找到 nginx。在 nginx 中找到 conf 文件夹,然后找到 nginx.conf。 如果上面的想法不起作用,那么通过任何搜索工具在整个 Linux 中搜索 nginx.conf。 ` max_input_time = 24000`, 24000 是以毫秒为单位的吗? @RishabhAgrahari 秒!这以秒为单位设置最长时间。默认设置为 -1,这意味着使用 max_execution_time 代替。设置为 0 以允许无限时间【参考方案3】:首先编辑Nginx配置文件(nginx.conf
)
位置:sudo nano /etc/nginx/nginx.conf
添加以下代码:
http
client_max_body_size 100M;
然后在PHP配置文件中添加以下几行(php.ini
)
位置:sudo gedit /etc/php5/fpm/php.ini
添加以下代码:
memory_limit = 128M
post_max_size = 20M
upload_max_filesize = 10M
【讨论】:
我按照指示打开了我的nginx.conf
文件,但它是空的!我没想到会这样,但是当我添加您的代码时,它仍然可以正常工作……正如我猜想的那样,但由于某种原因我没有这样做,而且当它这样做时我很高兴!【参考方案4】:
sudo nano /etc/nginx/nginx.conf
然后在http部分添加一行
http
client_max_body_size 100M;
不要只使用 MB 的 M。
systemctl restart nginx
然后为php定位
sudo gedit /etc/php5/fpm/php.ini
目前最大使用 php 7.0 或更高版本
sudo nano /etc/php/7.2/fpm/php.ini //7.3,7.2 or 7.1 which php you use
检查那些按你的愿望增加的。
memory_limit = 128M
post_max_size = 20M
upload_max_filesize = 10M
重启php-fpm
service php-fpm restart
【讨论】:
【参考方案5】:我将更改直接添加到我的虚拟主机而不是 nginx 的全局配置中,如下所示:
server
client_max_body_size 100M;
...
然后我更改 php.ini 中的参数,就像上面的 cmets:
max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M
而你不能忘记的是重启nginx和php-fpm,在centos 7中是这样的:
systemctl restart nginx
systemctl restart php-fpm
【讨论】:
【参考方案6】:请输入域 nginx 文件:
nano /etc/nginx/sites-available/domain.set
将此代码添加到文件中
client_max_body_size 24000M;
如果出现错误,请使用此命令
nginx -t
【讨论】:
【参考方案7】:我遇到了同样的错误,并通过以下步骤修复了它。
首先,编辑 nginx.conf 文件。
vi /etc/nginx/nginx.conf
在 HTTP 部分,添加以下行。
http
client_max_body_size 100M;
-
终于用下面的命令重启了 Nginx。
systemctl restart nginx
【讨论】:
【参考方案8】:假设您在 php.ini 文件中进行了必要的更改:
您可以通过在以下路径中找到的 nginx.conf 文件中添加以下行来解决此问题:
/etc/nginx/nginx.conf
然后使用 vim 文本编辑器编辑文件如下:
vi /etc/nginx/nginx.conf
并添加足够大的值的client_max_body_size,例如:
client_max_body_size 20MB;
然后确保使用:xi
或:wq
保存
然后重启你的 nginx。
就是这样。
为我工作,希望这会有所帮助。
【讨论】:
【参考方案9】:我通过上述更改进行了上传。但是当我进行更改时,我开始在文件上传中收到 404 响应,这导致我进行进一步调试并通过检查 nginx error.log 找出它的权限问题
解决方案:
检查 /var/lib/nginx 上的当前用户和组所有权。
$ ls -ld /var/lib/nginx
drwx------。 3 nginx nginx 10 月 5 日 17 日 19:31 /var/lib/nginx
这表明可能不存在的名为 nginx 的用户和组拥有该文件夹。这会阻止文件上传。
在我的例子中,“/etc/nginx/nginx.conf”中提到的用户名是
user vagrant;
在本例中将文件夹所有权更改为 nginx.conf 中定义的用户 vagrant。
$ sudo chown -Rf vagrant:vagrant /var/lib/nginx
验证它是否真的改变了。
$ ls -ld /var/lib/nginx
drwx------. 3 vagrant vagrant 17 Oct 5 19:31 /var/lib/nginx
重新加载 nginx 和 php-fpm 以获得更安全的 sade。
$ sudo service nginx reload
$ sudo service php-fpm reload
权限被拒绝错误现在应该消失了。检查 error.log(基于 nginx.conf error_log 位置)。
$ sudo nano /path/to/nginx/error.log
【讨论】:
【参考方案10】:打开文件/etc/nginx/nginx.conf
添加或更改client_max_body_size 0;
【讨论】:
【参考方案11】:用途:
php -i
命令或添加:
phpinfo();
获取配置文件的位置。
根据您的需要和服务器更新这些变量
max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M
在 Linux 上,您需要重新启动 nginx / apache 和 phpfpm 服务,以便加载新的 ini 设置。在 xampp、ammps 上,您可以从此类应用程序附带的控制面板重新启动它们。
【讨论】:
以上是关于413 请求实体太大 - 文件上传问题的主要内容,如果未能解决你的问题,请参考以下文章
(413) 请求实体太大 - 在 Azure 上上传 Wcf 时
413 Request Entity Too Large(请求实体太大)
413 请求实体太大 AWS Elastic Beanstalk