Срочно обновить PHP на сайте: пошаговый план
Изометрический чертёж: воронка с шариками, труба с закрытым вентилем с зелёным маховиком и пустой лоток на выходе

Срочно обновить PHP на сайте: пошаговый план

Как срочно и безопасно обновить PHP на сайте: проверить версию, сделать бэкап, протестировать плагины, переключить PHP и избежать белого экрана.

Срочное обновление PHP на сайте: что нужно сделать прямо сейчас

Обновить PHP нужно как можно скорее, если на сайте работает версия ниже 8.1: устаревшие ветки не получают исправлений безопасности. Безопасный путь такой: бэкап, тестовая копия, проверка плагинов и только потом переключение версии в панели хостинга.

Само переключение версии PHP занимает минуту, а основная работа — подготовка к нему.

Если вы видите в панели хостинга PHP 5.6, 7.x или 8.0, сайт работает на языке, который давно не поддерживают разработчики. Каждая найденная уязвимость остаётся в нём навсегда. Ниже — понятный план: как узнать версию, что проверить до обновления, как переключить PHP и что делать, если что-то пошло не так.

Почему обновление PHP нельзя откладывать

Когда ветка PHP достигает конца жизненного цикла (EOL), разработчики перестают выпускать для неё любые патчи, в том числе исправления критических уязвимостей. Злоумышленники это знают: уязвимости в старых версиях публично описаны, а автоматические сканеры ищут такие сайты по всему Рунету. Взлом обычно выглядит буднично: на сайте появляются спамовые страницы, скрытые редиректы, вредоносный код в файлах. После этого поисковики помечают сайт как опасный, а позиции в Яндексе и Google падают.

Вторая причина — совместимость. Современные версии WordPress, 1С-Битрикс и других CMS, а также свежие плагины и темы постепенно повышают минимальные требования к PHP. Пока вы сидите на старой версии, вы не можете обновить ни систему, ни дополнения. Так накапливается технический долг: чем дольше откладываете, тем больше изменений придётся проверять за один раз.

Третья причина — скорость. Уже переход с PHP 5.6 на PHP 7.0 ускорил обработку запросов почти вдвое, а ветки 8.x добавили ещё оптимизаций, включая JIT-компиляцию. Быстрый отклик сервера улучшает пользовательские метрики и помогает поисковым роботам обходить больше страниц за визит.

01 / скорость
до 2×

быстрее обрабатывает запросы PHP 7.0 по сравнению с PHP 5.6 по данным разработчиков языка

02 / безопасность
0

исправлений уязвимостей выходит для веток, которые достигли конца поддержки

03 / цикл версии
4 года

живёт каждая ветка PHP 8: два года активной поддержки и ещё два года исправлений безопасности

Как узнать, какая версия PHP стоит на сайте

Первый шаг — выяснить, с чем вы работаете. Есть несколько надёжных способов.

Панель хостинга. В ISPmanager, cPanel, Plesk и фирменных панелях хостеров версия PHP указана в разделе «PHP», «Языки программирования» или «Настройки сайта». Там же обычно доступен список всех версий, на которые можно переключиться.

Админка CMS. В WordPress откройте «Инструменты» → «Здоровье сайта» → «Информация» → «Сервер»: там указаны версия PHP и рекомендации по обновлению. В 1С-Битрикс версию показывает проверка системы в разделе «Настройки» → «Инструменты».

Файл phpinfo. Создайте в корне сайта файл с одной строкой `<?php phpinfo();` и откройте его в браузере. Обязательно удалите файл сразу после проверки: он раскрывает конфигурацию сервера.

Отдельно проверьте версию PHP для командной строки (CLI). Она может отличаться от веб-версии, и тогда cron-задачи, выгрузки и обмен с 1С продолжат работать на старом интерпретаторе или, наоборот, сломаются.

Версия PHPСтатус поддержкиЧто делать
5.6 и 7.0–7.4Завершена (5.6 — в 2018 году, 7.4 — в ноябре 2022)Обновлять срочно
8.0Завершена в ноябре 2023 годаОбновлять в приоритетном порядке
8.1Только исправления безопасности, до конца 2025 годаПланировать переход на 8.3 или 8.4
8.2Исправления безопасности до конца 2026 годаДопустимо, следить за сроками
8.3 и 8.4Актуальные ветки с полной поддержкойЦелевой выбор для большинства сайтов

Подготовка: бэкап и тестовая копия

Срочность не отменяет подготовку, наоборот: чем меньше времени, тем важнее не допустить простоя. Начните с полной резервной копии: файлы сайта и база данных. Многие хостинги делают копии автоматически, но проверьте, что свежая копия существует и её можно развернуть. Лучше сделать ещё одну вручную прямо перед работами.

Затем создайте тестовую копию сайта (staging) на поддомене или во временной папке и включите на ней новую версию PHP. Если хостинг позволяет выбирать версию для каждого сайта или поддомена отдельно, это делается за несколько минут. Все проверки выполняйте на копии: рабочий сайт при этом продолжает принимать заказы и заявки.

Параллельно обновите CMS, темы и плагины до последних версий: разработчики дополнений обычно выпускают совместимость с новым PHP в свежих релизах. Те плагины, которые не обновлялись больше двух лет, считайте главными подозреваемыми: их придётся заменить.

Пошаговый план обновления PHP

  1. 01

    Определите текущую версию PHP через панель хостинга, раздел «Здоровье сайта» в WordPress или файл phpinfo, а также версию PHP для CLI.

  2. 02

    Сделайте свежий бэкап файлов и базы данных и убедитесь, что копию можно скачать и восстановить.

  3. 03

    Разверните тестовую копию сайта и включите на ней целевую версию PHP, лучше 8.3 или 8.4.

  4. 04

    Обновите CMS, темы и плагины, а затем просмотрите журнал ошибок на копии: уведомления Deprecated и Fatal error покажут проблемные места.

  5. 05

    Пройдите ключевые сценарии: главная, каталог, формы заявок, корзина, оплата, личный кабинет, поиск и админка.

  6. 06

    Выберите время с минимальным трафиком, переключите версию PHP на рабочем сайте и сразу повторите проверку основных страниц и форм.

  7. 07

    Первые 24–48 часов следите за журналом ошибок, отчётами Яндекс Вебмастера и Google Search Console, а также за конверсиями в Яндекс Метрике и Google Analytics.

  8. 08

    Если сайт сломался, верните предыдущую версию PHP в панели хостинга, разберите ошибку в журнале на копии и повторите переключение после исправления.

Что чаще всего ломается при переходе на PHP 8

Основные проблемы связаны с тем, что в новых версиях удалили старые функции и ужесточили проверки. Расширение mysql_* исчезло ещё в PHP 7.0, функции create_function() и each() удалены в PHP 8.0, а в PHP 8.2 появилось предупреждение об устаревании динамических свойств классов. Код, написанный лет десять назад, может использовать любую из этих конструкций.

Самый частый симптом — «белый экран смерти» или ошибка 500. Это не значит, что сайт потерян: PHP просто не смог выполнить код и остановился. Причина всегда записана в журнале ошибок, поэтому включите его заранее и не отключайте вывод ошибок «вслепую». На рабочем сайте показ ошибок посетителям должен быть выключен (display_errors = Off), а запись в лог — включена.

Ниже — типичные замены, которые чаще всего приходится делать в самописных модулях и старых темах.

было (старый код)стало (PHP 8.x)
01mysql_connect()удалено в PHP 7.0
mysqli_connect()илиPDOсовременные драйверы БД
02create_function()удалено в PHP 8.0
function() {}илиfn() =>анонимные и стрелочные функции
03each()удалено в PHP 8.0
foreachобход массивов циклом
04$this->new_prop = 1динамическое свойство, deprecated в PHP 8.2
public $new_prop;явное объявление свойства в классе

SEO и мониторинг после обновления

Сама по себе смена версии PHP не меняет контент и разметку, поэтому позиции в выдаче Яндекса и Google не должны пострадать. Риск возникает только в одном случае: если страницы начали отдавать ошибки 5xx, а поисковые роботы пришли именно в этот момент. Поэтому первые дни после переключения нужно наблюдать.

Откройте Яндекс Вебмастер и Google Search Console: следите за разделами с ошибками сканирования и доступностью сайта. Рост числа ответов 5xx — сигнал немедленно проверить журнал. В Яндекс Метрике и Google Analytics сравните конверсии, отказы и число заявок с предыдущей неделей: резкое падение цели «отправка формы» часто означает, что форма перестала работать, хотя страницы открываются.

После стабилизации сравните время ответа сервера (TTFB) и показатели скорости в отчётах Core Web Vitals. На многих сайтах после перехода с PHP 7.x на 8.x они заметно улучшаются, а это приятный бонус к безопасности.

Ошибки при срочном обновлении PHP

Когда времени мало, соблазн «просто переключить версию» велик. Именно так сайты и оказываются недоступны в самый неудобный момент.

Как делают неправильно

  • Переключают PHP на рабочем сайте без бэкапа и без тестовой копии
  • Выбирают самую новую версию, не проверив совместимость плагинов
  • Включают показ ошибок на рабочем сайте, и посетители видят пути к файлам
  • Забывают про CLI-версию PHP, и cron-задачи или выгрузки перестают работать
  • Не проверяют формы, корзину и оплату, ограничиваясь просмотром главной страницы

Как правильно

  1. 01

    Делайте свежий бэкап и проверяйте обновление на копии сайта

  2. 02

    Сначала обновите CMS и плагины, затем выбирайте версию 8.3 или 8.4

  3. 03

    Пишите ошибки в журнал, а показ посетителям держите выключенным

  4. 04

    Проверьте версию PHP для командной строки и расписание cron

  5. 05

    Составьте список ключевых сценариев и пройдите его до и после переключения

Когда лучше обратиться к специалисту

Многие сайты на WordPress с популярными плагинами обновляются без участия разработчика. Но есть ситуации, где самостоятельная работа рискованна: самописная тема или модуль, интеграция с 1С и платёжными системами, интернет-магазин с высоким трафиком, неподдерживаемые плагины без аналогов. В таких случаях нужно не просто переключить версию, а переписать устаревшие участки кода.

Если хостинг не даёт выбрать современную версию PHP, это повод задуматься о переезде. Сегодня практически все российские и международные хостинг-провайдеры предлагают PHP 8.3 и 8.4. Если провайдер остановился на 7.x, то вместе с ним на риск остановился и ваш сайт.

Независимо от того, кто выполняет работы, фиксируйте результат: какая версия стояла, на какую перешли, какие плагины заменили и как откатываться. Эта заметка сэкономит часы при следующем обновлении.

Что даст актуальная версия PHP

  1. 01

    Закрытые уязвимости и меньший риск взлома сайта и утечки данных клиентов

  2. 02

    Более быстрый отклик сервера и улучшение пользовательских метрик

  3. 03

    Возможность обновлять CMS, темы и плагины до свежих релизов

  4. 04

    Меньше ошибок и предупреждений в журнале благодаря строгой типизации

  5. 05

    Спокойствие при проверках безопасности и требованиях платёжных систем

Прежде чем переключать версию на рабочем сайте, пройдитесь по короткому чек-листу. Он занимает десять минут, но избавляет от самых неприятных сюрпризов: недоступных форм, зависших заказов и ночных звонков от клиентов.

чек-лист / перед переключением php
  • Свежий бэкап файлов и базы данных, копию можно восстановить
  • Тестовая копия сайта прошла проверку на целевой версии PHP
  • CMS, темы и плагины обновлены, неподдерживаемые заменены
  • Журнал ошибок включён, показ ошибок посетителям выключен
  • Проверены формы заявок, корзина, оплата и личный кабинет
  • Cron-задачи и версия PHP для CLI согласованы с веб-версией
  • Известен способ отката: прежняя версия PHP выбирается в панели в пару кликов

Итоги: обновляйте PHP сейчас, но без спешки в действиях

Срочность относится к решению, а не к способу. Сначала бэкап и тестовая копия, затем переключение версии.
  1. 01

    Версии PHP ниже 8.1 не получают исправлений безопасности, поэтому переход нужен в ближайшие дни

  2. 02

    Оптимальная цель сегодня — PHP 8.3 или 8.4

  3. 03

    Перед переключением обновите CMS и плагины и проверьте сайт на тестовой копии

  4. 04

    Следите за журналом ошибок, Яндекс Вебмастером, Google Search Console и конверсиями в Метрике и Analytics

  5. 05

    При проблемах вернитесь на прежнюю версию, исправьте код и повторите переход

Обновление PHP — не разовая акция, а часть регулярного обслуживания сайта. Раз в год проверяйте, не приближается ли конец поддержки вашей ветки, и планируйте переход заранее. Тогда срочных обновлений не будет, а сайт останется быстрым, безопасным и совместимым с современными инструментами.

Часто задаваемые вопросы

Нужно срочно и безопасно обновить PHP на вашем сайте?

Проверим совместимость плагинов, сделаем бэкап и переключим версию без простоя и потери позиций.

Бесплатный аудит версииТестовая копия перед запускомОткат за пару минут

Сотни сайтов переведены на PHP 8

Политика конфиденциальности

При оставлении заявки на ресурсе «https://gurucontext.ru» пользователи предоставляют следующие сведения:

  • Имя
  • Контактный телефон или Telegram
  • Адрес сайта пользователя (не обязательно)

Также администрация сайта получает данные об IP-адресе посетителей, типе браузера, времени нахождения на сайте и прочие подобные сведения через сервисы статистики.

Использование информации

Вся полученная информация используется администрацией «https://gurucontext.ru» исключительно в целях связи с клиентом.

Защита персональных данных

Компания «https://gurucontext.ru» обязуется не разглашать сведения, полученные от пользователей, и хранит их в защищённом виде.

Предоставление данных третьим лицам

Полученные сведения не передаются третьим лицам, за исключением случаев исполнения обязательств перед клиентом (с его разрешения) и обоснованных требований закона.

Контакты

Телефон: +7 (499) 955-47-00.
E-mail: info@gurucontext.ru.