Як збільшити ліміт завантаження у WordPress (усі хостинги)
Перевірте поточний ліміт завантаження WordPress і збільште його в місці, яке читає ваш хостинг: php.ini, .user.ini, .htaccess, cPanel, Nginx чи Cloudflare.
Щоб збільшити ліміт завантаження у WordPress, підніміть два параметри PHP, upload_max_filesize і post_max_size, у тому конфігураційному файлі, який ваш хостинг справді читає. Це php.ini на сервері, яким ви керуєте, .user.ini на більшості спільних хостингів із PHP-FPM або FastCGI, .htaccess лише тоді, коли Apache запускає PHP як модуль, або MultiPHP INI Editor у cPanel. Якщо ваш сервер працює на Nginx, також збільште client_max_body_size. Редагування wp-config.php ліміт завантаження не змінить.
Інструмент максимального розміру завантаження WordPress перетворює один цільовий розмір на відповідні значення для php.ini (або .user.ini), .htaccess і wp-config.php, тож їх можна вставити, а не набирати вручну.
Крок 1: перевірте поточний ліміт завантаження
Перш ніж щось змінювати, з’ясуйте, який ліміт зараз і яке налаштування його задає.
- Медіафайли > Додати новий. Екран завантаження показує максимальний розмір файлу для завантаження. Саме це число ви намагаєтеся збільшити.
- Інструменти > Здоров’я сайту > Інформація. Розгорніть розділ обробки медіафайлів. Документація «Здоров’я сайту» перелічує, що там показано: максимально дозволений розмір даних POST, максимальний розмір завантажуваного файлу та максимальний ефективний розмір файлу, тобто менше з двох значень. Розділ «Сервер» показує інші значення PHP.


WordPress обчислює свій ліміт у wp_max_upload_size(): функція зчитує з PHP upload_max_filesize і post_max_size та бере менше. Якщо одне з них 64M, а інше 8M, ваш ліміт 8M.
Крок 2: знайте, які налаштування важливі
| Налаштування | Що обмежує | Значення PHP за замовчуванням | Де можна змінити |
|---|---|---|---|
upload_max_filesize | Найбільший окремий завантажуваний файл | 2M | php.ini, .user.ini, .htaccess, httpd.conf |
post_max_size | Увесь POST-запит разом із файлом | 8M | php.ini, .user.ini, .htaccess, httpd.conf |
memory_limit | Пам’ять, яку PHP може використовувати під час роботи | 128M | Будь-де, зокрема у wp-config.php |
max_execution_time | Скільки секунд може працювати скрипт | 30 | Будь-де, зокрема у wp-config.php |
client_max_body_size (Nginx) | Тіло запиту, яке прийме Nginx | 1m | Лише конфігурація Nginx |
Значення PHP за замовчуванням і режими зміни взято зі списку директив php.ini; значення Nginx за замовчуванням взято з документації базового модуля Nginx. Більшість хостингів ставлять вищі значення, ніж стандартні в PHP, тому реальні числа варто дивитися в «Здоров’ї сайту».
upload_max_filesize і post_max_size PHP називає налаштуваннями INI_PERDIR: їх «можна задати в php.ini, .htaccess, httpd.conf або .user.ini» і більше ніде. memory_limit не обмежує розмір файлу, але WordPress потребує пам’яті, щоб створювати змінені копії великих зображень, тому велике завантаження може провалитися вже після того, як файл дійшов, з помилкою вичерпання пам’яті.
Крок 3: збільште ліміт у правильному місці для вашого хостингу
| Ваша конфігурація | Де задавати | Примітки |
|---|---|---|
| VPS або виділений сервер | php.ini, який PHP справді завантажує | Потім перезапустіть PHP-FPM або Apache |
| Спільний хостинг із PHP-FPM або FastCGI | .user.ini у корені WordPress | Застосування може зайняти до 5 хвилин |
| Apache з PHP як модулем (mod_php) | .htaccess з php_value | Під PHP-FPM або FastCGI спричиняє помилку 500 |
| Хостинг із cPanel | Software > MultiPHP INI Editor | Записує php.ini, .user.ini або .htaccess за вас |
| Nginx перед PHP | client_max_body_size разом зі значеннями PHP | Інакше Nginx повертає 413 |
| Керований WordPress-хостинг | Панель хостингу або підтримка | Багато хостингів обмежують завантаження на рівні платформи |
| Сайт за Cloudflare | Власний ліміт завантаження Cloudflare | 100 MB на тарифах Free і Pro |
php.ini (сервер, яким ви керуєте)
Спершу знайдіть завантажений файл. Створіть тимчасовий файл із вмістом <?php phpinfo();, відкрийте його в браузері, прочитайте рядок «Loaded Configuration File», а потім видаліть файл. Відредагуйте цей php.ini:
upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300
Потім перезапустіть PHP, щоб він прочитав зміни. Для PHP-FPM назва служби містить версію, наприклад sudo systemctl restart php8.3-fpm у Debian чи Ubuntu. Для mod_php перезапустіть Apache.
.user.ini (більшість спільних хостингів)
PHP читає файли .user.ini лише тоді, коли працює як CGI або FastCGI, що включає PHP-FPM. Створіть або відредагуйте .user.ini у папці, де лежить wp-config.php:
upload_max_filesize = 128M
post_max_size = 130M
PHP перечитує ці файли кожні user_ini.cache_ttl секунд, за замовчуванням 300. Зачекайте п’ять хвилин, перш ніж вирішити, що не спрацювало, або перезапустіть PHP-FPM, якщо можете.
.htaccess (лише Apache з mod_php)
php_value upload_max_filesize 128M
php_value post_max_size 130M
Посібник PHP описує ці директиви для PHP, що працює як модуль Apache. Якщо одразу після збереження сайт показує 500 Internal Server Error, PHP працює як FastCGI або PHP-FPM. Видаліть рядки й використовуйте натомість .user.ini.
cPanel MultiPHP INI Editor
У cPanel відкрийте Software > MultiPHP INI Editor, виберіть домен і змініть значення в Basic Mode. Згідно з документацією cPanel, Basic Mode зберігає налаштування у файли php.ini, .user.ini і .htaccess там, де кожен із них його підтримує, тож вам не треба знати, який саме використовує ваш сервер.
Nginx
Nginx перевіряє розмір запиту ще до того, як його побачить PHP. Коли запит більший за client_max_body_size, Nginx повертає 413 Request Entity Too Large. За замовчуванням це 1m. Додайте в блок server значення, не менше за post_max_size:
client_max_body_size 130M;
Перевірте й перезавантажте командою sudo nginx -t && sudo systemctl reload nginx. В Apache схоже налаштування називається LimitRequestBody, і на стандартному WordPress-хостингу його рідко доводиться змінювати.
Керовані хостинги та Cloudflare
Деякі керовані WordPress-хостинги ігнорують ваші php.ini чи .user.ini і задають ліміт для всієї платформи. Якщо після зміни «Здоров’я сайту» досі показує старе число, запитайте хостинг, який максимум і чи можуть його підняти.
Якщо сайт працює через Cloudflare, у Cloudflare є власний ліміт. Його документація про кеш наводить максимальні розміри завантаження: 100 MB на тарифах Free і Pro, 200 MB на Business і до 5 GB на Enterprise. Жодне налаштування PHP цього не обійде.
Чому wp-config.php не працює
Багато статей радять додати у wp-config.php таке:
@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );
Обидва налаштування мають режим INI_PERDIR, а документація PHP каже, що налаштування цього режиму не можна задавати через ini_set(). Символ @ приховує невдачу, тож рядки виглядають нешкідливо й нічого не змінюють. Що wp-config.php може змінити, то це пам’ять, бо memory_limit можна задавати будь-де:
define( 'WP_MEMORY_LIMIT', '256M' );
Це допомагає, коли великі зображення не вдається обробити. Максимальний розмір файлу для завантаження це не змінює.
Крок 4: перевірте зміну
Перезавантажте Медіафайли > Додати новий і переконайтеся, що максимальний розмір файлу для завантаження показує нове значення. Якщо ні:
- Перевірте, що
post_max_sizeне менший заupload_max_filesize. WordPress бере менше значення. - Переконайтеся, що ви редагували файл, який PHP справді завантажує.
php.iniу неправильній папці ігнорується. - Після зміни
.user.iniзачекайте п’ять хвилин або перезапустіть PHP-FPM. - Якщо число у WordPress змінилося, а завантаження й далі падають з 413, блокування стоїть у Nginx, проксі хостингу або Cloudflare.
- Якщо файл доходить до WordPress, а потім падає з «HTTP error», проблема вже не в розмірі. Наш посібник про помилку HTTP під час завантаження зображень у WordPress розбирає типові причини.
Наскільки високо його ставити?
Ставте ліміт під найбільший файл, який вам справді треба завантажувати, з невеликим запасом, і тримайте post_max_size трохи вище за upload_max_filesize. Великі завантаження ще й тривають довше, тож збільште max_execution_time, якщо великі файли обриваються за тайм-аутом на повільному з’єднанні. Для дуже великих файлів, як-от довгих відео чи архівів резервних копій, завантаження через SFTP або плагін із завантаженням частинами зазвичай надійніше за одне величезне завантаження через браузер, а ліміт тарифу Cloudflare може й так унеможливити шлях через браузер.
Коли ціль відома, інструмент максимального розміру завантаження напише відповідні рядки PHP за вас. Якщо сервер працює на Nginx, рядок для Nginx із цього посібника додайте самостійно.
FAQ
Питання
Як перевірити поточний ліміт завантаження у WordPress?
Перейдіть у Медіафайли > Додати новий. Екран завантаження показує максимальний розмір файлу для завантаження. Щоб побачити подробиці, відкрийте Інструменти > Здоров'я сайту > Інформація й розгорніть розділ обробки медіафайлів: там указано максимальний розмір завантажуваного файлу, максимальний розмір даних POST і максимальний ефективний розмір файлу, тобто менше з цих двох значень.
Чому WordPress пише, що завантажений файл перевищує директиву upload_max_filesize у php.ini?
Файл більший за налаштування PHP upload_max_filesize. WordPress не встановлює цей ліміт, а зчитує його з PHP. Збільште upload_max_filesize і post_max_size разом у php.ini, .user.ini або, на Apache з mod_php, у .htaccess. Власне значення PHP за замовчуванням для upload_max_filesize лише 2M, хоча більшість хостингів ставить вище.
Чи можна збільшити ліміт завантаження через wp-config.php?
Ні. upload_max_filesize і post_max_size належать до налаштувань PHP_INI_PERDIR, які PHP приймає лише з php.ini, .htaccess, httpd.conf або .user.ini. Рядок ini_set() у wp-config.php виконується без помилки й нічого не змінює. wp-config.php може підняти ліміт пам'яті WordPress, але розмір файлу обмежує не пам'ять.
Чому я досі отримую 413 Request Entity Too Large після збільшення лімітів PHP?
Запит відхиляє щось перед PHP. У Nginx це client_max_body_size, значення якого за замовчуванням 1m; у разі перевищення повертається помилка 413. Збільште його в блоці server і перезавантажте Nginx. Якщо сайт працює через Cloudflare, ліміт розміру завантаження вашого тарифу теж може зупинити запит, перш ніж він дійде до сервера.
Чи має post_max_size бути більшим за upload_max_filesize?
Він має бути щонайменше таким самим, а трохи більший безпечніше. Файл надсилається в POST-запиті разом з іншими даними форми, тож у post_max_size рахується весь запит. WordPress бере як ліміт завантаження менше з двох значень, тому, якщо підняти лише upload_max_filesize, ліміт лишиться там, де був.