Оптимальные настройки php для WordPress
При работе с WordPress без настроек в php.ini, Вы рано или поздно столкнетесь с ошибками, сообщающими, что:
- «Размер загруженного файла превышает upload_max_filesize»
- «exceeds the maximum upload size for this site»
- «Fatal Error: Maximum execution time of 30 seconds exceeded»
Или любым другим сообщением, связанным с ограничениями php.ini.
Эти проблемы, такие как белый экран, сбой импорта демоконтента, пустое содержимое страницы и другие связаны с стандартными ограничения в PHP WordPress.
Версия PHP для WordPress
На момент написания статьи (Декабрь 2020), оптимальный PHP для WordPress - PHP 7.4, так как WordPress, темы и плагины ещё криво работают на PHP 8, а в PHP меньше чем 7.4 и 5.x отсутствуют необходимые патчи безопасности и хуже производительность.
Сравнение производительности разных версий PHP для WordPress 5.3
Важно обновлять WordPress, темы, плагины, библиотеки, версию PHP для высокой производительности сайта, новых функций, совместимости компонентов и повышения безопасности.
Переключить версию PHP Вы можете в личном кабинете у своего хостинг-провайдера или запросом в техподдержку. На моем хостинге sprinthost.ru уже доступен PHP 8, 7.4 и другие версии PHP с оптимизациями, кэш memcached, OpCache, переходите на sprinthost.ru, тут всё как надо 🙂
Директивы php.ini для WordPress
В зависимости от хостинга и панели управления, php.ini находится в разных местах, уточните у вашего хостинг-провайдера. У меня на sprinthost.ru это выглядит так:
Директивы, которые надо вставить в php.ini:
upload_max_filesize = 64M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 5000
max_input_time = 400
zend.enable_gc = On
Пояснения директив php.ini для WordPress:
upload_max_filesize - максимальный размер ОДНОГО загружаемого на сайт файла
post_max_size - максимальный размер POST запросов / должен быть больше или равен upload_max_filesize, может включать в себя несколько файлов, на каждый из которых распространяется upload_max_filesize
memory_limit - размер максимально доступной памяти в PHP
max_execution_time - максимальное время работы скрипта
max_input_vars - количество входных переменных, которые могут быть приняты в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно)
max_input_time - время за которое PHP должен обработать все входные данные
zend.enable_gc - включает сборщик мусора (будет оптимизировать память на фоне)
Заключение
Прежде чем пытаться импортировать демоданные и вообще начинать работу с сайтом, настоятельно рекомендую начать с оптимальных настроек php.ini и версии PHP 7.4 для вашего сайта на WordPress. Это предотвратит неправильный импорт каких-либо страниц или любые другие проблемы, которые могут возникнуть из-за стандартных ограничений php.ini. А также повысит скорость работы сайта и его безопасность. Если у вас веб-хостинг не желает обновлять свою версию PHP, вероятно, пора перейти к лучшему провайдеру, который понимает важность этого вопроса.
Если Вам было полезно или есть вопросы, оставляйте комментарии, всем удачи
Вот здесь, правда, применительно вообще к php, а не к вордпресс, рекомендации противоположные – уменьшать, а не увеличивать значения php рассмотренные в статье https://ruhighload.com/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+php
Михаил, спасибо за обратную связь, только это всё таки разные кейсы.
Статья про УНИВЕРСАЛЬНЫЕ настройки PHP для WordPress, которые подойдут для среднестатистического блога, чтобы не летели ошибки, которые указаны в начале статьи.
У вас написано, что “post_max_size – максимальный размер POST запросов, должен быть больше или равен максимальному размеру загружаемых файлов”, при этом он меньше этого самого размера загружаемых файлов – upload_max_filesize (64м и 128м).
Спасибо, Александр, обновил 🙂