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

Если панель хостинга позволяет, временно верните последнюю рабочую версию PHP. Сохраните error log новой версии до отката — именно он показывает несовместимый файл или класс.

Сравнить PHP-окружение

BASH
php -v
php --ini
php -m

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

tail -n 150 /path/to/site/core/cache/logs/error.log

Что часто ломается после смены PHP

СлойПример проблемы
Extra/pluginустаревший PHP-код
Custom snippetremoved/deprecated function
Processorнесовместимый класс/тип
Library/vendorтребования версии PHP
PHP extensionмодуль не установлен в новом handler
Session/cacheдругой php.ini/path/permissions

Не ориентируйтесь только на версию MODX

Даже если ядро запускается, проект может зависеть от десятков Extras и собственного кода. Поэтому тестируйте реальный набор функций: Manager, сохранение ресурса, формы, поиск, miniShop2, cron, API.

Как безопасно перейти повторно

  1. создайте staging-копию;
  2. переключите PHP только там;
  3. исправьте Fatal/deprecated ошибки по логам;
  4. обновите несовместимые Extras отдельно;
  5. сравните список PHP extensions;
  6. только после регрессионной проверки меняйте production.

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

RuJul Site Diagnostics — один ZIP

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