Ошибка 500 при входе в админку MODX после переноса на новый хостинг
Перенос сайта на другой хостинг - ответственная операция, и нередко после неё возникают проблемы, например, ошибка 500 при попытке войти в панель управления MODX (админку /manager). Даже если сам сайт отображается корректно, вход может блокироваться. Рассмотрим основные причины и способы решения этой распространённой проблемы.
Почему возникает ошибка 500 в админке MODX?
Ошибка 500 (Internal Server Error) - это общий сбой сервера, который может быть вызван множеством факторов. В контексте MODX после переноса типичные причины включают:
- Несовместимость конфигурационных файлов - неверные пути или настройки БД в
core/config/config.inc.php. - Проблемы с правами доступа (chmod) к папкам
cache/,core/илиmanager/. - Ошибки в .htaccess - даже временное переименование не всегда решает проблему, если ошибка в самом файле.
- Конфликт версий PHP - хотя вы установили 7.4, могут отсутствовать необходимые расширения.
- Повреждённые сессии или кэш - очистка папки
cache/не всегда удаляет все временные файлы, особенно на новом сервере.
Как диагностировать причину ошибки 500?
Прежде чем исправлять, нужно точно определить источник проблемы. Вот пошаговая инструкция:
1. Проверьте error.log детальнее
Ваш лог показывает ошибку в core/xpdo/om/xpdoquery.class.php - это указывает на проблему с запросом к базе данных. Проверьте настройки подключения в core/config/config.inc.php: правильность имени БД, пользователя, пароля и хоста.
2. Включите отображение ошибок
Временно добавьте в файл index.php (в корне сайта) строки:
error_reporting(E_ALL);
ini_set('display_errors', 1);Это покажет конкретную ошибку вместо общей 500.
3. Проверьте права на папки
Убедитесь, что папки core/cache/, core/logs/ и manager/ имеют права 755 или 777 для временного решения. На многих хостингах 755 достаточно.
Пошаговое решение проблемы с входом в MODX manager
Если диагностика не помогла, выполните следующие действия:
- Обновите конфигурацию БД - откройте
core/config/config.inc.phpи проверьте параметры$database_user,$database_password,$database_dsn. Убедитесь, что хост указан какlocalhostили IP-адрес нового сервера. - Сбросьте сессии - удалите все файлы в папке
core/cache/(кроме .htaccess, если есть). Также очистите папкуcore/cache/sessions/. - Проверьте .htaccess - даже если вы его переименовали, убедитесь, что нет других файлов .htaccess в подпапках (например, в
manager/). Создайте временный пустой .htaccess в корне. - Проверьте расширения PHP - MODX требует PDO, pdo_mysql, json, session. Убедитесь, что они включены на новом хостинге.
- Используйте альтернативный вход - попробуйте
site.de/manager/?a=logoutили добавьте параметр?f=1для сброса кэша.
Дополнительные советы для предотвращения ошибок
При будущих переносах всегда делайте дамп БД через phpMyAdmin или командную строку, а не через админку. Проверяйте все пути в конфиге и права на файлы сразу после копирования. Если ошибка 500 появляется только в админке, а не на всём сайте, проблема часто в сессиях или конфигурации MODX.