Загружаешь архив на сайт — бах, 2 мегабайта и привет «413 Request Entity Too Large». PHP и веб-сервер по умолчанию душат тебя малыми лимитами. Исправить можно за 5 минут — если знаешь где крутить.

Главные директивы

В PHP есть два ключевых ограничения:

  • upload_max_filesize — сколько можно залить одним файлом.
  • post_max_size — сколько можно засунуть в POST-запрос (файлы + поля формы).

Очевидно, post_max_sizeupload_max_filesize, иначе форма не взлетит.

Где править

 

🔹 php.ini

Если ты хозяин сервера, лезешь в php.ini и пишешь:

upload_max_filesize = 50M
post_max_size = 50M

Перезапускаешь сервер — радуешься.

🔹 ini_set()

Если ковыряешь чужой проект без доступа к серверу:

ini_set('upload_max_filesize', '50M');
ini_set('post_max_size', '50M');

Но учти: не всегда срабатывает, если админ всё закрутил.

🔹 .htaccess

Для Apache:

php_value upload_max_filesize 50M
php_value post_max_size 50M

Сохранил — протестил — выдохнул.

🔹 Nginx

У Nginx своя засада:

server {
    client_max_body_size 50M;
}

Если не поменяешь — получишь 413. После правок — nginx -s reload.

✅ Итог

Главное правило — проверь всё: и PHP, и веб-сервер. Лимит сработает по минималке. Не вылечишь сразу — потратишь день на разбор, кто кого режет.