Переезд сайта на MODX Revolution: почему опять всё никак у других
Перенос сайта на другой аккаунт хостинга — задача рутинная. Но если ваш проект работает на MODX Revolution, стандартный сценарий «перекинул файлы и базу — поменял конфиг» превращается в увлекательный квест с возможными ошибками.
Вчера я переносил проект на Beget и собрал полный чек-лист «граблей», на которые наступает каждый второй. Да, конечно, можно было написать в техподдержку и попросить перенести, но если вы не из тех, кто идёт простым путём делюсь пошаговым алгоритмом.
Шаг 1. Конфиги-матрешки
В MODX данные базы данных и пути «рассыпаны» по четырем файлам. Если пропустить хоть один — админка или коннекторы отвалятся.
Где искать:
- core/config/config.inc.php — основной файл.
- /config.core.php — в корне.
- /manager/config.core.php — для админки.
- /connectors/config.core.php — для процессоров.
Главный нюанс: В config.inc.php недостаточно поменять $database_user и $dbase. Есть коварная строка $database_dsn. Если в ней останется старое имя базы, сайт будет выдавать ошибку подключения, игнорируя остальные переменные.
Шаг 2. Конфликт версий PHP и Composer
При переезде на новый сервер можно поймать ошибку типа:
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.2.5".
Это значит, что на новом хостинге по умолчанию стоит старая версия PHP. В панели Beget это лечится в один клик в настройках сайта. Оптимально ставить 7.4 или 8.1 (если сборка свежая). После смены версии обязательно удаляйте папку core/cache — MODX «памятливый» и может хранить старое окружение в файлах.
Шаг 3. Смена домена: когда база помнит бывшую
Если при переезде меняется и домен, MODX продолжит редиректить вас на старый адрес. Он записывает домен в таблицы настроек.
Что делать: Идем в phpMyAdmin и выполняем SQL-запросы (замените префиксы и домены на свои):
-- Обновляем системные настройки
UPDATE modx_system_settings SET value = REPLACE(value, 'old-domain.ru', 'new-domain.ru');
-- Обновляем настройки контекста (site_url и http_host)
UPDATE modx_context_setting SET value = REPLACE(value, 'old-domain.ru', 'new-domain.ru');
Шаг 4. Права доступа (Permissions)
Для Beget (где работает suEXEC) стандартные права 755 на папки и 644 на файлы — это идеал. Если сайт «белеет» после переноса, проверьте, чтобы у пользователя были права на запись в core/cache.
Итоговый чек-лист «спасения»:
- Проверить все 4 конфига на наличие старых путей (вида /home/u/old-user/...).
- Исправить строку $database_dsn в config.inc.php.
- Выставить актуальную версию PHP в панели хостинга.
- Снести папку core/cache под корень (лучшее лекарство).
- Прогнать SQL-запросы на замену домена в базе.
Вывод: MODX — система надежная, но очень чувствительная к абсолютным путям.
Если нужны услуги по веб-разработке - обращайтесь в лс 🙂