Самая быстрая диагностика после смены PHP

  1. зафиксируйте старую и новую версии PHP;
  2. воспроизведите ошибку и прочитайте свежий error log;
  3. сравните расширения и php.ini;
  4. если сайт критичен — временно верните рабочий PHP handler;
  5. исправляйте конкретную несовместимость на копии проекта.

Снять отчёт PHP-окружения

BASH
php -v
php --ini
php -m

php -r '
foreach (["memory_limit","max_execution_time","max_input_vars","error_log"] as $k) {
  echo $k."=".ini_get($k).PHP_EOL;
}
'

CLI PHP и PHP сайта могут быть разными

Команда php -v показывает CLI. Сайт при этом может обслуживаться другим PHP-FPM pool или Apache module. Поэтому сравнивайте версию, выбранную в панели/virtual host, с тем, что показывает консоль.

Если проект использует Composer

Сначала проверяйте требования пакетов, а не обновляйте все зависимости без разбора.

Composer: проверить требования текущих пакетов

BASH
composer check-platform-reqs
composer diagnose

Типичные ошибки после перехода на новый PHP

ОшибкаЧто проверить
Call to undefined functionрасширение PHP или удалённая функция
Class not foundautoload/vendor, несовместимый пакет
Deprecated → затем Fatalустаревший код Extra/plugin/theme
Memory exhaustedmemory_limit и рост потребления
Cannot load extensionсписок модулей и конфигурация handler
500 без текстаerror log PHP/web-server

Временный rollback — это не финальное решение

Если возврат предыдущей версии PHP мгновенно восстанавливает сайт, вы локализовали проблему, но не исправили её. Сохраните лог новой версии, обновите или замените несовместимый код и повторите переход на staging.

Перед повторным переключением

  • проверьте CMS и критичные Extras/плагины;
  • прогоните формы, авторизацию, поиск, корзину и cron;
  • сравните набор PHP extensions;
  • убедитесь, что production не показывает display_errors;
  • держите готовый путь возврата старого handler.

Скачать набор диагностики

RuJul Site Diagnostics — один ZIP

Связанные инструкции