Подписаться на канал в Макс

Рано или поздно перед каждым владельцем встаёт вопрос переезда: хостинг поднял цены вдвое, сервер тормозит, поддержка перестала отвечать, или компания выросла из shared-тарифа в VPS. И тут выясняется неприятный факт: перенос сайта на MODX — это не «скопировал папку и готово». В отличие от многих систем, MODX хранит часть настроек прямо в файлах конфигурации с абсолютными путями, и один неверный слеш превращает рабочий проект в белый экран.

Я делаю такие переезды регулярно — типовая миграция занимает у меня половину рабочего дня вместе с проверками. В этой статье разложу процесс на понятные шаги, покажу, где именно спрятаны «мины», и дам финальный чек-лист проверки. Прочитав, вы сможете трезво оценить: делать перенос своими руками или довериться специалисту.

Что вообще переезжает: три части вашего сайта

Сайт на MODX состоит не из одного набора файлов, а из трёх связанных частей:

  1. Файлы — папки core, manager, connectors, сам index.php плюс ваши шаблоны, изображения и все загруженные медиафайлы.
  2. База данных MySQL — весь контент страниц, структура ресурсов, TV-значения, пользователи, настройки системы. Это самое ценное: восстанавливать её по кусочкам очень больно.
  3. Конфигурация и окружение — реквизиты подключения к базе, абсолютные пути на диске сервера, версия 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. Тестовый запуск до переключения домена

Самый правильный сценарий: сначала убедиться, что сайт работает на новом сервере, и лишь потом переводить на него домен. Как посмотреть сайт на новом хостинге, пока домен смотрит на старый?

  1. Технический адрес хостинга — если он даёт прямой доступ к сайту, откройте его.
  2. Правка файла 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

  1. Белый экран или ошибка 500 сразу после переезда. Причины: не поправлены пути в config.inc.php, не совпала версия PHP, не дошли файлы. Начинайте диагностику с журнала ошибок хостинга.
  2. Сайт работает, но без стилей и картинок. Жёстко прописанные абсолютные пути в источниках файлов или в чанках остались со старого сервера.
  3. Формы замолчали. Почта с нового IP требует перенастройки SMTP: у популярных сервисов понадобится заново сгенерировать пароль приложения, а DKIM/SPF-записи проверить в DNS.
  4. Дамп базы импортировался наполовину. Молчаливая обрезка из-за лимитов — самая коварная ситуация: кажется, что всё хорошо, пока не открылась случайно та страница, где таблица оборвалась. Сверяйте счётчики записей ключевых таблиц.
  5. Забытые расхождения окружения: задания cron, отдельные технические поддомены, интеграции по вебхукам, которые продолжают звонить на старый сервер.
  6. Один перенос на два фронта. Одновременно с переездом решили обновить MODX и сменить домен — теперь три переменных, и разобраться, что сломалось, втрое сложнее. Делайте изменения последовательно.

Когда лучше не тянуть одеяло на себя

Своеобразная правда рынка: переезд простой визитки с десятью страницами реально сделать самому по этому чек-листу. Но беритесь сами за миграцию уверенно только если ваш проект — небольшой корпоративный сайт без экзотики. А вот эти признаки говорят: работа для специалиста:

  • интернет-магазин на miniShop2 — в базе заказы, платежи, остатки; потеря невосполнима;
  • несколько контекстов или мультидоменность;
  • планируется одновременно смена хостинга, обновление MODX и PHP;
  • сайт связан интеграциями: CRM, 1С, платёжные шлюзы, службы доставки;
  • предыдущий подрядчик правил код напрямую, документов нет, «что сломается — неизвестно»;
  • каждый час простоя стоит ваших денег явно больше, чем услуга миграции.

Частые вопросы о переносе MODX

Сколько занимает перенос сайта на MODX?

Типовой корпоративный сайт — от пары часов до половины дня с учётом тестирования. Магазины и проекты с интеграциями — день-два, поскольку львиную долю времени съедает проверка функционала, а не само копирование.

Поисковые позиции пострадают?

При смене только хостинга — нет, если обе версии полностью работоспособны и переключение сделано корректно. Поисковикам всё равно, где физически живёт сайт. Риски появляются при смене домена — там спасают 301-редиректы, поэтому эта операция в моих руках идёт по отдельному регламенту.

Сайт на время переезда отключится?

При правильном порядке — нет. Логика такая: сначала поднимаем рабочую копию на новом сервере, тестируем, и только потом переключаем домен. Единственное мгновение риска — сама смена DNS, и она проходит без остановки сайта.

Не хотите рисковать? Перенесу ваш сайт под ключ

Если рассуждение «а вдруг я пропущу какую-то мелочь, и торговая площадка ляжет» перевешивает желание сэкономить пару тысяч — это разумная позиция, а не слабость. Возьму миграцию на себя:

  • аудит проекта и совместимости с новым хостингом — до начала;
  • полные резервные копии файлов и базы — до любых манипуляций;
  • перенос, правка конфигурации, настройка SSL;
  • тестирование по полному чек-листу, включая формы и интеграции;
  • переезд через hosts-режим: посетители ничего не замечают;
  • страховочный период: старый хостинг остаётся рабочим до полной стабилизации.

Стоимость переноса сайта на MODX под ключ — от 15 000 ₽, сроки и фиксированную цену называю после беглого осмотра проекта. Пришлите ссылку на сайт и название текущего и будущего хостингов — вернусь с планом переезда в течение рабочего дня.