🐹 CentOS 7: Увеличение максимального размера загружаемого файла в PHP / Apache / Nginx.

Содержание:

1. Постановка задачи.
2. Варианты решения.
3. Как исправить Nginx.
4. Как исправить Apache.
5. Как исправить PHP.
6. Оригиналы источников информации.


1. Постановка задачи.

Возьмем часто распространённые ситуации: ошибка Nginx «413 Request Entity Too Large» может возникать при отправке серверу запросов большого объёма (или банальной загрузке файлов, к примеру) или нам нужно загружать на сервер большие файлы

2. Варианты решения.

Первое — в конфигурационном файле Nginx указано слишком маленькое значение переменой client_max_body_size в файле nginx.conf.

Второе (более редкое) — в конфигурационном файле Apache установлено слишком маленькое значение LimitRequestBody в файле httpd.conf.

Третье (один из вариантов в комбинации) — настройка параметров upload_max_filesize в файле php.ini содержит ограничения.

3. Как исправить Nginx.

Для устранения ошибки откройте файл конфигурации Nginx (как правило это /etc/nginx/nginx.conf) и в секции http добавьте строку (если такая уже есть, то просто замените):

client_max_body_size 200M;

где 200M — максимальный объём запроса (файла).

В данном случае — 200 мегабайт. Приставка M — мегабайты, G — гигабайты.

В результате должно получиться в конфиге что-то вроде:

4. Как исправить Apache.

Откройте конфигурационный файл апача (для CentOS 7 это обычно /etc/httpd/conf/httpd.conf) и, найдя LimitRequestBody, укажите нужное значение в байтах.

К примеру, 1ГБ:

LimitRequestBody 1073741824

По-умолчанию система считает, что значение этой переменной (если она не прописана явно в httpd.conf) равно 2 гигабайтам (2147483647 байт), поэтому если нигде не установлено иное значение, то проблем с Apache обычно нет.

5. Как исправить PHP.

К примеру, сообщение на экране дисплея говорит, что настройка параметра upload_max_filesize в файле php.ini содержит ограничение на 2М.

5.1. Расположение файлов PHP.

/etc/php.ini — основной конфигурационный фал;
/etc/php.d — файл конфигурации модулей.

5.2. Редактирование файла php.ini.

Создадим копию файла php.ini конфигурации PHP:

# cp /etc/php.ini /etc/php.ini.original

Откроем в редакторе и модифицируем следующие строки:

# mcedit /etc/php.ini

Параметры:

  • max_execution_time — время, в течении которого скрипт должен полностью завершить своё исполнение. Для отмены ограничений можно присвоить 0. Измеряется в секундах.
  • max_input_time — время, в течении которого скрипт, должен получить и обработать все данные из POST и GET запросов. Измеряется в секундах.
  • memory_limit — ограничение на выделяемую для исполнения одного скрипта память. Для отмены ограничений, поставьте -1. Должен быть больше post_max_size. Измеряется в Мб.
  • post_max_size — максимальный размер отправляемого через POST-запрос файла, значение параметра post_max_size должно быть равным или большим значению параметра upload_max_filesize.
  • upload_max_filesize — максимальный размер закачиваемого файла.
  • max_file_uploads — максимальное количество одновременных загрузок. Ставьте столько, сколько устройств будут присылать информацию в систему.

Обязательно перезапустите соответствующую службу.

# systemctl restart httpd

# systemctl restart nginx

# systemctl restart php-fpm

6. Оригиналы источников информации.

  1. sysmasters.net «Как исправить ошибку «413 Request Entity Too Large».

Читайте также: