Рано или поздно перед каждым владельцем встаёт вопрос переезда: хостинг поднял цены вдвое, сервер тормозит, поддержка перестала отвечать, или компания выросла из shared-тарифа в VPS. И тут выясняется неприятный факт: перенос сайта на MODX — это не «скопировал папку и готово». В отличие от многих систем, MODX хранит часть настроек прямо в файлах конфигурации с абсолютными путями, и один неверный слеш превращает рабочий проект в белый экран.
Я делаю такие переезды регулярно — типовая миграция занимает у меня половину рабочего дня вместе с проверками. В этой статье разложу процесс на понятные шаги, покажу, где именно спрятаны «мины», и дам финальный чек-лист проверки. Прочитав, вы сможете трезво оценить: делать перенос своими руками или довериться специалисту.
Что вообще переезжает: три части вашего сайта
Сайт на MODX состоит не из одного набора файлов, а из трёх связанных частей:
- Файлы — папки
core,manager,connectors, самindex.phpплюс ваши шаблоны, изображения и все загруженные медиафайлы. - База данных MySQL — весь контент страниц, структура ресурсов, TV-значения, пользователи, настройки системы. Это самое ценное: восстанавливать её по кусочкам очень больно.
- Конфигурация и окружение — реквизиты подключения к базе, абсолютные пути на диске сервера, версия PHP, права доступа к папкам.
Главная ловушка именно здесь: третий пункт привязан к конкретному серверу. Пути вроде /var/www/user/data/www/site.ru/ на новом хостинге станут другими, а имена пользователя и базы данных почти наверняка изменятся. Значит, кроме простого копирования предстоит аккуратная правка конфигов.
Подготовка: четыре дела до начала переезда
- Узнайте версию PHP на старом и новом хостинге. Они должны совпадать, иначе пакеты и плагины могут повести себя непредсказуемо. Разница версий — причина №1 проблем после миграции.
- Сделайте резервную копию — полную. Файлы целиком и дамп базы. Храните копию не на том сервере, который покидаете: скачайте себе на компьютер.
- Выпишите все доступы: админка MODX, панель управления хостингом, phpMyAdmin, FTP/SFTP, доступ к управлению DNS домена.
- Выберите окно для переезда. Лучшее время — ночь или выходной, когда посещаемость минимальна. Интернет-магазину планировать миграцию в день акции я бы не советовал даже в шутку.
Пошаговый перенос сайта на MODX: от бэкапа до DNS
Шаг 1. Резервное копирование файлов
Скопируйте весь корневой каталог сайта на новый хостинг. Сделать это можно двумя путями:
- Через архив. Упакуйте корень сайта в zip/tar.gz в панели старого хостинга, скачайте, загрузите на новый, распакуйте. Быстро и надёжно, рекомендую именно так.
- По FTP/SFTP. Медленно (зависит от количества медиафайлов), зато без панели. Для сайтов с тысячами картинок возможны обрывы — сверяйте количество файлов.
Важный нюанс: скрытые файлы, начинающиеся с точки (например, .htaccess), FTP-клиенты часто не показывают. Проверьте, что .htaccess доехал — без него исчезнут ЧПУ-адреса и заработают ошибки 404.
Шаг 2. Экспорт базы данных
Откройте phpMyAdmin на старом хостинге (или используйте консольную команду mysqldump, если есть SSH): выберите нужную базу → вкладка «Экспорт» → формат SQL → «Вперёд». Полученный файл скачайте на компьютер.
Если дамп получается слишком большим и упирается в ограничения загрузки на новом хостинге — импортируйте частями или через SSH. Это уже повод подключить того, кто дружит с консолью.
Шаг 3. Импорт базы на новом хостинге
Создайте новую пустую базу данных и пользователя, выдайте пользователю все права на базу. Затем в phpMyAdmin нового хостинга: выбранная база → вкладка «Импорт» → загружаете ваш SQL-файл.
Запишите новые реквизиты: имя хоста (обычно localhost), имя базы, имя пользователя, пароль, префикс таблиц (виден в списке таблиц, например modx_site_content значит префикс modx_). Через минуту они понадобятся.
Шаг 4. Правка файла конфигурации — сердце миграции
Откройте на новом хостинге файл core/config/config.inc.php. Именно здесь живут абсолютные пути и реквизиты базы. Нужно обновить:
define('MODX_CORE_PATH', '/новый/абсолютный/путь/до/core');
define('MODX_BASE_PATH', '/новый/абсолютный/путь/до/корня/сайта');
// далее аналогично MANAGER, CONNECTORS, PROCESSORS, ASSETS
$database_server = 'localhost'; // хост базы нового хостинга
$database_user = 'новое_имя_пользователя';
$database_password = 'новый_пароль';
$dbase = 'новое_имя_базы';
$table_prefix = 'modx_'; // префикс обычно сохраняется
Абсолютный путь на новом сервере можно подсмотреть в панели хостинга (обычно раздел «Сайты» или «Информация о сервере») либо вывести командой <?php echo __DIR__; во временном файле.
Правило гигиены: перед редактированием сохраните оригинальную версию файла к себе — снова пригодится, если что-то пойдёт не туда.
Шаг 5. Очистка кэша
Зайдите на новом хостинге в папку core/cache и удалите всё её содержимое. Внутри лежат закэшированные данные старого сервера — со старыми путями. MODX соберёт кэш заново при первом обращении. Без этого шага сайт может показывать причудливую смесь из старого и нового мира.
Шаг 6. Проверка источников файлов и путей в настройках
Некоторые разработчики прописывают абсолютные пути в самих настройках MODX. После входа в админку проверьте:
- «Медиа» → «Источники файлов»: в полях basePath/baseUrl не должно остаться старого пути. Если там было указано что-то жёстко — поправьте на путь относительно корня (обычно просто
assets/). - «Настройки» → «Системные настройки»: поиск по ключам
filemanager_path,rb_base_dir— аналогично, при наличии старых значений замените.
Шаг 7. Тестовый запуск до переключения домена
Самый правильный сценарий: сначала убедиться, что сайт работает на новом сервере, и лишь потом переводить на него домен. Как посмотреть сайт на новом хостинге, пока домен смотрит на старый?
- Технический адрес хостинга — если он даёт прямой доступ к сайту, откройте его.
- Правка файла hosts на вашем компьютере: добавьте строку вида
IP-нового-сервера вашдомен.ru. Тогда браузер будет показывать вам новый сервер, пока остальные посетители ходят на старый. Это идеальный режим проверки: вы тестируете боевой сайт без риска для публики.
Шаг 8. Переключение домена
Когда всё проверено — меняйте A-запись домена в DNS: указывающий на старый сервер IP замените на IP нового. Нюансы:
- Заранее снизьте TTL записи хотя бы за сутки — например, до 300 секунд. Тогда обновление подхватится быстро.
- Изменения распространяются по миру от нескольких минут до суток. Держите оба хостинга включёнными минимум несколько дней.
- Не удаляйте старый аккаунт сразу. Он ваша страховка, пока DNS полностью не обновился у всех провайдеров и мобильных операторов.
- Переоформите SSL-сертификат на новом хостинге до переключения. Let's Encrypt бесплатен и выпускается за минуты.
Отдельный случай: переезд со сменой домена
Иногда переносится не только хостинг, но и само имя сайта. Тогда добавляются обязательные шаги:
- в админке обновите system setting site_url и настройки контекстов («Настройки» → «Контексты» → web → поля
http_hostиsite_url); - в базе данных встречается старый домен — в контенте страниц, ссылках меню. Замена «найти и заменить» по базе звучит просто, но выполняется с осторожностью: в некоторых полях данные сериализованы, и грубая замена ломает их;
- 301-редиректы со всех URL старого домена на новый — критично для поисковых позиций. Настраивается в
.htaccessна старом сервере, который должен жить ещё пару месяцев; - HTTPS-сертификат выпускается для нового домена с нуля.
Финальный чек-лист после переезда
| Проверка | Что должно быть |
|---|---|
| Главная и 10-15 случайных внутренних страниц | Открываются без ошибок, дизайн цел, картинки на месте |
| Админка | Вход работает, страницы сохраняются, дерево ресурсов отображается |
| Загрузка изображений | Новое фото загружается через «Медиа» и появляется на странице |
| Формы заявки | Отправляются, письма приходят и клиенту, и менеджеру |
| HTTPS | Замочек в браузере, предупреждений о смешанном контенте нет |
| ЧПУ-адреса | Страницы открываются по человекопонятным URL, нет 404 |
| Поиск по сайту, пагинация каталога | Работают |
| Журнал ошибок | «Отчёты» → «Журнал ошибок» пуст или без новых критических записей |
| Скорость | PageSpeed сопоставим со старым показателем, а не ниже |
| Резервные копии нового сервера | Автобэкап настроен с первого дня жизни на новом месте |
Типичные ошибки при переносе сайта на MODX
- Белый экран или ошибка 500 сразу после переезда. Причины: не поправлены пути в
config.inc.php, не совпала версия PHP, не дошли файлы. Начинайте диагностику с журнала ошибок хостинга. - Сайт работает, но без стилей и картинок. Жёстко прописанные абсолютные пути в источниках файлов или в чанках остались со старого сервера.
- Формы замолчали. Почта с нового IP требует перенастройки SMTP: у популярных сервисов понадобится заново сгенерировать пароль приложения, а DKIM/SPF-записи проверить в DNS.
- Дамп базы импортировался наполовину. Молчаливая обрезка из-за лимитов — самая коварная ситуация: кажется, что всё хорошо, пока не открылась случайно та страница, где таблица оборвалась. Сверяйте счётчики записей ключевых таблиц.
- Забытые расхождения окружения: задания cron, отдельные технические поддомены, интеграции по вебхукам, которые продолжают звонить на старый сервер.
- Один перенос на два фронта. Одновременно с переездом решили обновить MODX и сменить домен — теперь три переменных, и разобраться, что сломалось, втрое сложнее. Делайте изменения последовательно.
Когда лучше не тянуть одеяло на себя
Своеобразная правда рынка: переезд простой визитки с десятью страницами реально сделать самому по этому чек-листу. Но беритесь сами за миграцию уверенно только если ваш проект — небольшой корпоративный сайт без экзотики. А вот эти признаки говорят: работа для специалиста:
- интернет-магазин на miniShop2 — в базе заказы, платежи, остатки; потеря невосполнима;
- несколько контекстов или мультидоменность;
- планируется одновременно смена хостинга, обновление MODX и PHP;
- сайт связан интеграциями: CRM, 1С, платёжные шлюзы, службы доставки;
- предыдущий подрядчик правил код напрямую, документов нет, «что сломается — неизвестно»;
- каждый час простоя стоит ваших денег явно больше, чем услуга миграции.
Частые вопросы о переносе MODX
Сколько занимает перенос сайта на MODX?
Типовой корпоративный сайт — от пары часов до половины дня с учётом тестирования. Магазины и проекты с интеграциями — день-два, поскольку львиную долю времени съедает проверка функционала, а не само копирование.
Поисковые позиции пострадают?
При смене только хостинга — нет, если обе версии полностью работоспособны и переключение сделано корректно. Поисковикам всё равно, где физически живёт сайт. Риски появляются при смене домена — там спасают 301-редиректы, поэтому эта операция в моих руках идёт по отдельному регламенту.
Сайт на время переезда отключится?
При правильном порядке — нет. Логика такая: сначала поднимаем рабочую копию на новом сервере, тестируем, и только потом переключаем домен. Единственное мгновение риска — сама смена DNS, и она проходит без остановки сайта.
Не хотите рисковать? Перенесу ваш сайт под ключ
Если рассуждение «а вдруг я пропущу какую-то мелочь, и торговая площадка ляжет» перевешивает желание сэкономить пару тысяч — это разумная позиция, а не слабость. Возьму миграцию на себя:
- аудит проекта и совместимости с новым хостингом — до начала;
- полные резервные копии файлов и базы — до любых манипуляций;
- перенос, правка конфигурации, настройка SSL;
- тестирование по полному чек-листу, включая формы и интеграции;
- переезд через hosts-режим: посетители ничего не замечают;
- страховочный период: старый хостинг остаётся рабочим до полной стабилизации.
Стоимость переноса сайта на MODX под ключ — от 15 000 ₽, сроки и фиксированную цену называю после беглого осмотра проекта. Пришлите ссылку на сайт и название текущего и будущего хостингов — вернусь с планом переезда в течение рабочего дня.