413请求实体太大 - 文件上载问题

时间:2014-06-19 12:12:32

标签: php nginx apache2

我正在尝试在我的服务器上上传30MB文件,但它无法正常工作。

  1. 当我上传30MB文件时,页面加载" 找不到页面"

  2. 当我上传3MB文件时,我会收到" 413请求实体太大"与nginx / 0.6.32

  3. 我正在尝试找到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
    

    谢谢, 拉朱

11 个答案:

答案 0 :(得分:69)

来源: 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;
}

Doen不使用MB它不起作用,只有M!

另外不要忘记重启nginx

systemctl restart nginx

答案 1 :(得分:33)

-in 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

它为我的案件工作

答案 2 :(得分:10)

首先编辑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

答案 3 :(得分:6)

sudo nano /etc/nginx/nginx.conf

然后在http部分添加一行

http {
    client_max_body_size 100M;
}

不要只使用MB。

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 

答案 4 :(得分:5)

请输入域名nginx文件:

nano /etc/nginx/sites-available/domain.set

添加到文件中此代码

client_max_body_size 24000M;

如果您收到错误,请使用此命令

nginx -t

答案 5 :(得分:3)

假设您在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。

就是这样。

为我工作,希望这会有所帮助。

答案 6 :(得分:2)

我上传了上述更改。但是当我进行更改时,我开始在文件上传中获得404响应,这导致我进行进一步调试并通过检查nginx error.log

找出其权限问题

<强>解决方案:

检查/ var / lib / nginx上的当前用户和组所有权。

$ ls -ld /var/lib/nginx

drwx ------。 3 nginx nginx 17 Oct 5 19:31 / var / lib / nginx

这表明可能不存在的用户和名为nginx的组拥有此文件夹。这阻止了文件上传。

就我而言,&#34; /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

答案 7 :(得分:0)

打开文件/etc/nginx/nginx.conf 添加或更改client_max_body_size 0;

答案 8 :(得分:0)

使用:

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上,您可以从此类应用程序随附的控制面板重新启动这些功能。

答案 9 :(得分:0)

我将更改直接添加到我的虚拟主机中,而不是将nginx的全局配置添加到我的虚拟主机中,如下所示:

AssociationAttribute

然后我更改php.ini中的参数,就像上面的注释一样:

   server {
     client_max_body_size 100M;
     ...
   }

您不能忘记的是重新启动nginx和php-fpm,在centos 7中是这样的:

   max_input_time = 24000
   max_execution_time = 24000
   upload_max_filesize = 12000M
   post_max_size = 24000M
   memory_limit = 12000M

答案 10 :(得分:0)

我遇到了同样的错误并通过以下步骤修复了它。

  1. 首先,编辑 nginx.conf 文件。

    vi /etc/nginx/nginx.conf

在 HTTP 部分,添加以下行。

http {

    client_max_body_size 100M;
}
  1. 最后使用以下命令重新启动 Nginx。

systemctl restart nginx