it-swarm.com.ru

413 Слишком большой объект запроса - проблема с загрузкой файла

Я пытаюсь загрузить файл размером 30 МБ на мой сервер, и он не работает.

  1. Когда я загружаю 30 МБ файл, страница загружается " Страница не найдена "

  2. Когда я загружаю файл размером 3 МБ, я получаю " 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

Спасибо, Раджу

48
Raju Vishwas

Источник: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/

Отредактируйте файл conf в nginx:

nano /etc/nginx/nginx.conf

Добавьте строку в разделе http:

http {
    client_max_body_size 100M;
}

Не используйте MB, он не будет работать, только M!

Также не забудьте перезапустить nginx

systemctl restart nginx
59
Dieter

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

Это работает для моего случая

31
Arun

Сначала отредактируйте файл конфигурации 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
8
Sanaulla

Пожалуйста, введите файл nginx домена:

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

Добавить в файл этот код

client_max_body_size 24000M;

Если вы получили ошибку, используйте эту команду

nginx -t
5
Cagdas

Предполагая, что вы внесли необходимые изменения в файлы 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.

Вот и все.

Работал на меня, надеюсь, это поможет.

3
Samson 'Melah' Nyabanga

Я получил загрузку, работающую с вышеуказанными изменениями. Но когда я внес изменения, я начал получать 404 ответ при загрузке файла, что побудило меня сделать дальнейшую отладку и выяснил проблему с разрешениями, проверив nginx error.log 

Решение:

Проверьте текущего пользователя и владельца группы в/var/lib/nginx.

$ ls -ld /var/lib/nginx

drwx ------. 3 nginx nginx 17 октября 5 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 для большей безопасности.

$ Sudo service nginx reload
$ Sudo service php-fpm reload

Ошибка отказа в разрешении теперь должна исчезнуть. Проверьте error.log (на основе местоположения nginx.conf error_log).

$ Sudo nano /path/to/nginx/error.log
2
Nafas Sait

Использование:

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 вы можете перезапустить их с панели управления, которая поставляется с такими приложениями.

0
Saqib Ashraf

Я добавляю изменения непосредственно на мой виртуальный хост вместо глобальной конфигурации nginx, например так:

   server {
     client_max_body_size 100M;
     ...
   }

И затем я изменяю параметры в php.ini, как комментарии выше:

   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
0
Evan

Открыть файл /etc/nginx/nginx.conf Добавить или изменить client_max_body_size 0;

0
Tai Ho