Intereting Posts

Получение 404 при загрузке файла размером более 10 КБ

Я создал форму загрузки файла, используя код AJAX, который отлично работает на моем localhost (xampp / apache). Я могу загружать файлы размером до 256 МБ. Использование HTTP.

Однако, когда я загружаю этот код на свой сервер nginx на aws ec2, я получаю 404 при попытке загрузить любой файл размером 10 КБ (да, это K). Я использую HTTPS.

Я думал, что, возможно, настройки php.ini были неправильными, поэтому я добавил этот код в форму загрузки файла.

<script> console.log("max_execution_time = <?php echo(ini_get('max_execution_time')); ?>"); console.log("max_input_time = <?php echo ini_get('max_input_time'); ?>"); console.log("memory_limit = <?php echo ini_get('memory_limit'); ?>"); console.log("post_max_size = <?php echo ini_get('post_max_size'); ?>"); console.log("file_uploads = <?php echo ini_get('file_uploads'); ?>"); console.log("upload_max_filesize = <?php echo ini_get('upload_max_filesize'); ?>"); console.log("max_file_uploads = <?php echo ini_get('max_file_uploads'); ?>"); console.log("default_socket_timeout = <?php echo ini_get('default_socket_timeout'); ?>"); </script> 

Я получаю этот вывод консоли.

Обратите внимание на 0, за которым следует «Успех загрузки файла». Здесь 0 – код ошибки файла, то есть $_FILES['ninja_file']['error']

Два файла, которые я загрузил в этом случае, были 9 КБ.

Когда вы видите Post ... 404 () внизу, из-за которого я пытаюсь загрузить файл размером 22 КБ.

введите описание изображения здесь

В nginx.conf я установил

 client_max_body_size 0; 

Установка размера в 0 отключает проверку размера тела запроса клиента на документы. Http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size

Технологии:

  • WordPress 4.7
  • PHP 7.0
  • NGINX 1.10

Solutions Collecting From Web of "Получение 404 при загрузке файла размером более 10 КБ"

Проверьте nginx error.log (на основе местоположения nginx.conf error_log).

 $ sudo nano /path/to/nginx/error.log 

В /var/lib/nginx ошибка «разрешена». Это произошло потому, что я изменил настройку user в nginx.conf из

 user nginx; 

к чему-то другому. В этом случае,

 user iam; 

Решение:

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

 $ ls -ld /var/lib/nginx drwx------ 3 nginx nginx 4096 Aug 5 00:05 /var/lib/nginx 

Это говорит о том, что возможно несуществующий пользователь и группа с именем nginx принадлежит этой папке. Это предотвращает загрузку файлов.

Измените владельца папки на пользователя, определенного в nginx.conf, в этом случае iam (sudo может не понадобиться).

 $ sudo chown -Rf iam:iam /var/lib/nginx 

Убедитесь, что он действительно изменился.

 $ ls -ld /var/lib/nginx drwx------ 3 iam iam 4096 Aug 5 00:05 /var/lib/nginx 

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

 $ sudo nano /path/to/nginx/error.log 

Если это не сработает, вам может потребоваться перезагрузить nginx и php-fpm.

 $ sudo service nginx reload $ sudo service php-fpm reload