За замовчуванням WordPress встановлює невеликий ліміт на розмір завантажуваних зображень, відео та інших файлів. Аналогічна ситуація з PHP memory limit, який позначається на можливості запускати плагіни і скрипти.
Якщо ви запускаєте сайт з великою кількістю контенту, ці ліміти можуть стати проблемою. Можна отримати помилку при завантаженні:
Обсяг завантаженого файлу перевищує обмеження, установлене директивою upload_max_filesize у файлі php.ini
Якщо досягнуть межа виділюваної пам’яті, то виведеться інше повідомлення про помилку:
Невиправна помилка: допустимий розмір пам’яті 12345678 байт вичерпаний (ви намагалися виділити 2345678 байт) /home/your-username/public_html/wp-includes/plugin.php у рядку 1000
Розглянемо найбільш ефективні способи збільшення цих лімітів на сервері. Почнемо з memory limit php, ini.
Оновлення файлу php.ini
Якщо ви використовуєте CPanel, перейдіть в розділ «Файли» і натисніть кнопку «Диспетчер файлів». Переконайтеся, що встановлено прапорець «Показати приховані файли», а потім натисніть кнопку «Перейти».
Виберіть папку wp-admin і знайдіть файл php.ini або php5.ini. Якщо такого файлу немає, створіть його, натиснувши на кнопку «Створити файл», розташовану у верхньому лівому кутку. Назвіть файл php.ini і виберіть у спливаючому вікні кнопку «Створити файл»:
Якщо проблема не зникла, спробуйте перейменувати файл в php5.ini. Коли файл буде відкритий, додайте в нього наведені нижче рядки, а потім збережіть зміни і закрийте файл:
upload_max_filesize = 1000M
post_max_size = 2000M
memory_limit = 3000M
file_uploads = On
max_execution_time = 180
M — означає мегабайти. Змініть ліміти 1000M, 2000M і 3000M на значення, які необхідні. Зміна значення max_execution_time обмежить час завантаження скрипта.
У багатьох випадках використовуються значення повинні збільшуватися по мірі переходу в списку від першої до третьої рядки. Upload_max_filesize повинен бути найменшим, memory limit php, ini — найбільшим. При цьому post_max_size повинен мати середнє значення.
Перш ніж перевірити, не зникла помилка, очистіть кеш браузера.
Редагування файлу .htaccess
Якщо редагування php.ini не допомогло, спробуйте змінити файл .htaccess. Додайте наведений нижче код в кінець файлу:
php_value upload_max_filesize 1000M
php_value post_max_size 2000M
php_value memory_limit 3000M
php_value max_execution_time 180
php_value max_input_time 180
Змініть значення php, ini set memory limit так, як вам треба. Не забудьте зберегти файл і очистити кеш браузера.
Зміна файлу wp-config.php
Якщо обидва способи не дали результату, спробуйте відредагувати файл wp-config.php, додавши наступний код в самий низ, перед рядком «happy blogging«:
define(‘WP_MEMORY_LIMIT’, ‘3000M’);
Збережіть файл, очистіть кеш браузера.
Зміна лімітів у WHM
Якщо сайт розміщений на VPS або виділеному сервері, можна спробувати змінити ліміти в WHM.
Після того, як ви увійшли в систему, перейдіть в розділ Конфігурація сервера> Налаштування > PHP.
Введіть потрібні вам значення та натисніть кнопку «Зберегти».
Потім перейдіть в розділ Конфігурація служб> Редактор конфігурації PHP. Прокрутіть сторінку вниз до розділів memory_limit і upload_max_filesize:
Введіть необхідні значення. В розділі «Параметри» знайдіть memory_limit і введіть значення, яке ви встановили memory limit php, ini і .htaccess.
Натисніть кнопку «Зберегти» і очистіть кеш браузера.
Висновок
Ми розглянули всі способи рішення даної проблеми. Насолоджуйтесь можливістю завантажувати великі файли і продовжуйте використовувати на своєму сайті плагіни WordPress. Внесені в php memory limit htaccess зміни повинні вступити в силу через кілька хвилин, після чого можна буде приступити до роботи з новими параметрами.
Якщо потрібно завантажити великі файли тільки один раз, спробуйте зробити це через FTP. Зазвичай файли, завантажені через FTP в каталог /wp-content/uploads/, не відображаються в бібліотеці медіа. Але з допомогою плагіна Media from FTP можна відобразити їх всього в кілька кліків.
Якщо жоден з варіантів не дав результату, зв’яжіться зі своїм хостинг-провайдером.
Переклад статті «How to Increase the Maximum Upload and PHP Memory Limit» дружною командою проекту Сайтостроение від А до Я.