Клиенты хостинг-компаний обычно могут легко изменять/обновлять версии PHP для своих WordPress-сайтов отдельно через панель управления. Нередко хостинги выставляют ограничения по минимально поддерживаемым версиям (особенно это касается администрируемых WP-хостингов).
Хостинги настоятельно рекомендуют устанавливать PHP 7.4 – в идеале последнюю версию PHP 8.0, поскольку она намного быстрее, безопаснее и удобнее, чем ее предшественники. В некоторых конфигурациях она работает в 3 раза быстрее.
Как вы, возможно, слышали, PHP перешел к более предсказуемому графику выпуска новых релизов. Каждая новая версия активно поддерживается в течение 2 лет и получает дополнительный год критических обновлений безопасности. Администрируемые WordPress-хостинги обычно следуют тому же графику, удаляя версии PHP, когда они достигают EOL (конца срока службы).
Почему важно обновлять версию PHP для WordPress-сайта?
Есть две причины: скорость и безопасность.
По тем же самым причинам вы обновляете и сам WordPress, ведь вам нужно получить патчи, закрывающие дыры в безопасности. Это актуально и для PHP. Обновление PHP приводит к существенному увеличению скорости. PHP 7.0, к примеру, стал огромным шагом вперед – производительность увеличилась почти в 2 раза по сравнению с версией 5.6. С каждой новой версией PHP мы наблюдаем некоторый прирост производительности по сравнению с прошлым релизом.
Не знаете, какая версия PHP используется у вас? Если у вас установлен WordPress 5.0 и выше, вы можете узнать ее в разделе Site Health.
Как быть, если сайт сломался?
Проблемы, связанные с обновлением версий PHP, появляются в том случае, когда в коде на вашем сайте используются старые функции, больше не поддерживаемые новыми версиями PHP. Обычно виновником выступает активная тема или плагин.
Как обновить версию PHP в WordPress?
Этот процесс зависит от вашего хостинг-провайдера, а именно от используемой панели управления. Мы рассмотрим процедуру обновления PHP через cPanel.
Заходим в cPanel. Ищем раздел Software и выбираем «Select PHP Version»:
На следующей странице в самом верху вы увидите текущую версию PHP вашего сайта:
Если щелкнуть по текущей версии, вы сможете выбрать любой доступный PHP-релиз.
Чтобы сохранить изменения, нажмите «Set as current».
Да, далеко не все провайдеры используют cPanel. Многие хостинги предлагают свои собственные панели управления. Шаги там потребуются примерно те же самые.
Что делать после обновления PHP?
Обычно ничего делать не нужно – все должно работать в штатном режиме. Однако мы рекомендуем проверить, весь ли функционал сайта работает как положено.
Изучите работу фронтенда и бэкенда сайта. Бывают ситуации, когда обновление версии PHP приводит к поломке сайта. По этой причине перед обновлением версии PHP лучше всего создать резервную копию сайта.
Если вы столкнулись с проблемой, вам нужно будет найти ее источник. Можно начать с деактивации всех плагинов и переключения к теме по умолчанию. После этого можно поочередно активировать плагины, пока ошибка вновь не появится. В итоге проблемный плагин будет выявлен. Далее вам придется переписать его код, обновив те функции, которые уже не поддерживаются в новой версии PHP (для этого обычно приходится много гуглить и вносить правки вручную).
Не сработало? Тогда лучше обратиться к хостинг-провайдеру. В некоторых случаях вам придется откатиться к прошлой версии PHP.
Включаем режим отладки
Вы всегда можете включить режим отладки в WordPress, чтобы понять, в чем заключается проблема. Вам нужно подключиться к своему сайту по SFTP и отредактировать wp-config.php.
Ищем строку /* That’s all, stop editing! Happy blogging. */
Перед ней вставляем следующее:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Если этот код уже есть в файле wp-config.php, но для него стоит значение false, меняем его на true. Это позволит включить режим отладки – все будет записываться в /wp-content/debug.log. Вы также увидите все предупреждения и ошибки в админке WordPress.
Важно: не забудьте отключить отладку, когда вы закончите технические процедуры, поскольку эти файлы имеют тенденцию быстро разрастаться.
Как выглядят ошибки?
Увы, в экосистеме WordPress есть тысячи плагинов и тем, а потому мы чисто физически не способны перечислить все ошибки, с которыми вы можете столкнуться. Обычно ошибки появляются из-за того, что код (функции, синтаксис и т.д.) несовместим с используемой вами версией PHP. Пример того, что вы можете увидеть:
500: Fatal error: Uncaught Error: A semicolon (';') is expected here. in /www/sitename/public/wp-content/plugins/bbpress-shortcodes/bbpress-shortcodes.php:177
Здесь мы видим, что проблема связана с плагином bbPress Shortcodes.
Самый плохой расклад – когда у вас есть проблема совместимости двух или нескольких плагинов. Если это произошло, мы советуем сделать следующее:
- Обновить свои плагины и темы до последних версий.
- Обратиться к разработчикам плагина или темы, чтобы они добавили/исправили поддержку PHP4 (или выше).
- Найти альтернативный плагин, который может дать ту же самую функциональность и будет совместим с новой версией PHP.
- Нанять WordPress-разработчика, чтобы решить проблему.
- Откатиться к более ранним версиям PHP, чтобы понять, будет ли работать плагин. Если так, то можно сидеть на ранних версиях, пока разработчик не обновит код. Но мы не рекомендуем такой подход.
- Вручную поправить код плагина, ориентируясь на советы в сети по конкретной ошибке.
Источники: kinsta.com, themeisle.com