Оптимальные настройки 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 = 128M
post_max_size = 64M
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 запросов, должен быть больше или равен максимальному размеру загружаемых файлов
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, вероятно, пора перейти к лучшему провайдеру, который понимает важность этого вопроса.

Если Вам было полезно или есть вопросы, оставляйте комментарии, всем удачи 🙂

Поделиться