MODX - Перенос сайта
Статья, в которой рассмотрим, как осуществляется перенос сайта, работающего под управлением CMS MODX, в новое место (на новый сервер или из одной директории в другую).
Перемещение сайта MODX на новое место
MODX Revolution - это веб-приложение, данные которого находятся в базе данных. Поэтому переход на новый сервер (хостинг) будет включать в себя перенос не только всех файлов, но и информации, хранящейся в базе данных. Кроме этих действий необходимо будет ещё выполнить и некоторые другие действия, необходимые для корректного переноса сайта на MODX Revo.
Совет: Данные действия не являются обязательными. Но они могут вам помочь разобраться с проблемой неработоспособности сайта, которая может возникнуть после его переноса на новое место. Всё что вам необходимо выполнить - это выключить в менеджере MODX системный параметр "Использовать дружественные URL (friendly_urls)" и переименовать файл .htaccess
в ht.access
. А после переноса сайта на новое место и проверки его работоспособности, произвести обратные действия. Т.е. включить дружественные URL и переименовать файл ht.access
в .htaccess
.
Совет: Перед тем как переходить к покупке хостинга и переносу на него сайта, работающего под управлением MODX Revolution, убедитесь в том, что с ним не возникнет никаких проблем (например, он не поддерживает PDO или что-то другое). Проверит этот момент очень просто, т.к. любой хостинг предоставляет демонстрационный период для бесплатного тестирования. Всё что вам нужно, это поставить новую сборку MODX Revolution и проверить её работоспособность.
Очистка кэша MODX
Прежде чем переходить к переносу сайта на другой хостинг или в какое-то иное место (например, на локальный сервер), его сначала необходимо полностью очистить от кэша. Для этого необходимо войти в админку (менеджер) MODX и выполнить в ней следующие действия:
- Отключить сайт (Системные настройки -> Статус сайта -> положение "Нет").
- Очистить кэш сайта (Управление -> Очистить кэш).
- Очистить сессии (Управление -> Завершить все сеансы).
Примечание: Самый безопасный и правильный способ - это очистить кэш вручную. Это можно сделать путем удаления всего содержимого каталога cache
, расположенного в папке core
. Этот процесс, как правило, более быстро выполнить на сервере с помощью диспетчера файлов. Но данное действие также можно выполнить и протоколу FTP.
Копирование файлов
Следующее действие - это скопировать все файлы с рабочего проекта. Данное действие более быстро выполнить, если их предварительно упаковать в архив.
Если вы хотите перенести сайт MODX с одного хостинга на другой, то в этом случае можно воспользоваться готовыми инструментами специально предназначенными для этого.
Например, на хостинге SpaceWeb можно воспользоваться файловым менеджером, в котором выбрать ссылку "Создать архив всех файлов" или в разделе "Backup" с помощью элемента "Сохранить архив всех файлов в домашней директории".

Например, на хостинге Beget создать архив необходимых файлов можно с помощью файлового менеджера (правая кнопка мыши -> пункт "Скачать архивом ZIP") или в разделе "BackUp" с помощью кнопки "Сохранить резервную копию".

Создание дампа базы данных
Выполнить дамп базы данных, т.е. экспорт её структуры и данных. В зависимости от того какую вы используете базу данных - это осуществляется одним или другим инструментом.
В MySQL, например, это осуществляется с помощью клиенткой утилиты mysqldump
:
# экспорт всей базы данных dbname в файл dump.sql # dbusername - имя пользователя # pdbpassword - пароль пользователя mysqldump -u dbusername -pdbpassword dbname > /путь/до/dump.sql
Данное действие также можно выполнить с помощью инструмента phpmyadmin
. Для этого необходимо выбрать базу данных, перейти на вкладку "Экспорт", установить необходимые параметры и нажать кнопку "OK".

Если вы хотите сделать резервную копию базы данных сайта, находящего на хостинге, то это наиболее просто выполнить через панель управления:
- на хостинге SpaceWeb - в панели управления выбрать значок "Базы MySQL" и в открывшейся странице напротив необходимой базы данных нажать на иконку дискеты (Создать копию "дамп" базы).
- на хостинге Beget - в панели управления перейти в раздел "BackUp", нажать на вкладку "Базы данных", выбрать базу данных и нажать на кнопку "Выгрузить резервную копию".
Перенос файлов и данных на новое место
Выполняем обратные действия, т.е.:
- Переносим архив с файлами в необходимую директорию на новом сервере. На хостинге эту операцию можно выполнить с помощью файлового менеджера. После копирования необходимо проверить права на директории и файлы. Для директорий должно быть выставлено 755, для файлов - 644. Если права для папок и файлов выставлены не правильно, то их можно изменить с помощью следующих команд в SSH-клиенте (PuTTY):
# для директорий find /путь/до/сайта -type d -exec chmod 755 {} \; # для файлов find /путь/до/сайта -type f -exec chmod 644 {} \;
- Создать базу данных и импортировать в неё ранее созданный дамп (файл с разрешением sql). Если файл имеет большой размер, то данную операцию необходимо выполнить в командной строке с помощью инструмента mysql:
# импорт данных в базу данных с именем dbname из файла dump.sql # dbusername - имя пользователя базы данных # pdbpassword - пароль пользователя базы данных mysql -u dbusername -pdbpassword dbname < dump.sql
На хостинге выполнение данной команды осуществляется через протокол SSH. В Windows для подключения к серверу по данному протоколу можно использовать SSH-клиент PuTTY.Если размер базы не большой, то для импортирования базы данных можно использовать инструмент phpmyadmin.
Настройка конфигурационного файла MODX
После переноса файлов и данных на новый сервер (например, другой хостинг), необходимо изменить главный конфигурационный файл MODX config.inc.php
, который расположен в следующем месте:
/core/config/config.inc.php
В этом файле необходимо указать правильные пути к различным ресурсам MODX, а также настройки для подключения к базе данных. Для того чтобы данные действия выполнить на хостинге необходимо сначала узнать его домашнюю директорию. Выполнить это можно, например, можно с помощью SSH. Для этого в SSH-клиенте необходимо будет ввести следующие команды:
# перейти в домашнюю директорию пользователя username cd ~username # показать текущую директорию pwd
Открываем файл config.inc.php
и вносим в него следующие изменения:
/* Настройки для подключения к базе данных */ /* 1 - имя сервера */ $database_server = 'localhost'; /* 2 - имя пользователя */ $database_user = 'root'; /* 3 - пароль */ $database_password = ''; /* 4 - кодировка */ $database_connection_charset = 'utf8'; /* 5 - имя базы данных */ $dbase = 'mytest'; /* 6 - dsn-строка для соединения с баой данных */ $database_dsn = 'mysql:host=localhost;dbname=mytest;charset=utf8'; /* Пути (/путь/до заменить на ваш путь до данной папки) */ $modx_core_path= '/путь/до/core/'; $modx_processors_path= '/путь/до/core/model/modx/processors/'; $modx_connectors_path= '/путь/до/connectors/'; $modx_manager_path= '/путь/до/manager/'; $modx_base_path= '/путь/до/'; $modx_assets_path= '/путь/до/assets/'; /* Имя домена */ $http_host='yoursite.com';
Внимание: В процессе редактирования файла config.inc.php
возможно потребуется изменить его разрешения. После правки этого файла установите ему права только на чтение.
Изменения также необходимо ещё произвести в 3 дополнительных файлах php:
- /config.core.php
- /connectors/config.core.php
- /manager/config.core.php
В этих файлах необходимо указать правильный полный путь до директории сайта MODX Revolution core
:
define('MODX_CORE_PATH', '/путь/до/core/');
Обновление файла .htaccess
При переносе сайта на новый (другой) хостинг, возможно, потребуется внести изменения в конфигурационный файл .htaccess. Это может быть связано с тем, что некоторые его текущие настройки могут не поддерживаться на новом хостинге.
Внимание: Если вы при переходе на новый хостинг меняете ещё и доменное имя сайта, то убедитесь в том, что вы провели соответствующие изменения в файле .htaccess
.
Повторный запуск программы установки
После перемещения сайта и внесения изменений в конфигурационные файлы необходимо повторно запустить установочный скрипт (site.ru/setup
).
Совет: Повторный процесс установки MODX Revolution позволит закрепить процедуру перемещения сайта посредством выполнения команд, находящихся в setup
.
Для этого необходимо, если у вас нет установочной сборки, скачать её. При этом следует скачать версию MODX Revoution, которая была у вас установлена на сайте. После этого распаковать полученный архив и загрузить каталог setup
в корень вашего сайта. Запустить процесс установки и выбрать режим обновления.
Рекомендация после установки: Для того чтобы кэш браузера не влиял на работоспособность проверяемого сайта, страницы лучше открывать в режиме инкогнито или после очистки его от кэша.
Если в результате переноса у сайта не работает админка, например, отображается пустая страница (белый экран), то попробуйте воспользоваться советами и рекомендациями, приведёнными в статье.
Столкнулся с такой закавыкой:
Сайт на ModX 2.7.1-pl Revo нужно перенести с домена на домен на том же хостинге.
Старый домен был в подпапке, типа test.ru/foldername, новый — в домене.рф.
Поскольку хостинг тот же, БД не ковыряю, оставляю как есть. Сношу кэш, копирую фалы с папками, меняю вручную адреса в конфигах.
А дальше начинается шапито…
Откуда-то в всё ещё присутствует тот самый грешный /foldername, на котором раньше жил сайт (хотя конфиги прилежно вычищены), соответственно, не работают ни стили ни скрипты. Напрямую в чанке я его поправить на адрес в явном виде тоже не могу — в одминку оно меня, понятное дело тоже не пускает.
При попытке сказать адресу мойсайт.рф/setup дабы обновить цмс-ку, получаю 500-ую Internal Server Error.
Соответственно, вопрос: чего я делаю не так?..
ЗЫ Пермишены в порядке, проверял.
Так, кажется, правильно…
УПД Тут еще один момент, о котором я сразу не подумал: оба сайта (и старый и новый домен) одновременно живут на одной базе.
Пардон за тупой вопрос (я в данной области, мягко выражаясь, не спец): может ли это быть причиной случившейся чехарды?
Мои действия на данном этапе какие?
Убить файлы со старого домена?
Завести отдельную БД, развернуть туда бэкап и подключить ее к новому домену?
Старый сайт отключил, кэш сбросил. Файлы удалил.
По запросу в браузере новыйсайт.рф показывает папку старого сайта с архивом бэкапа. Хотя devtools рассказывает, что файлик лежит по новому адресу.
Видать, в базе где-то чёртов base href торчит…
Данная инструкция подойдет для моей цели?
Цель — создать копию сайта (на движке MODX) на поддомене для тестирования плагинов, доработок и после переноса обратно на основной домен?
А если в уже созданном документе менять шаблон, то все окей. В чем проблема?
.htacces настроен достоверно. На других сайта такой же стоит.
Права папкам пробовал давать 777, но все равно.
На OpenServer создаю такую структуру корневая_папка/папка/сайт_на_modx (для расшаривания по интернету 2х сайтов на 1 IP)
Пример — ibb.co/b12d2R
Все файлы-конфиги поправил но файлы именно самого бек енда не прогружаються
ibb.co/jwYhwm
Где можно изменить настройку? Ставил по точно такой же директории с нуля сайт там все прописалось ровно
Такая проблема
itchief.ru/assets/uploadify/7/c/6/7c6e393dfcdec25978c2671e09585ca6.png
При отключении все нормально
itchief.ru/assets/uploadify/c/1/2/c12e5b9745d18d4980b8708da518cb5a.png
Ради совета пишу Вам. Подскажите пожалуйста какой лучше выбрать хостинг? Выбор конечно огромен, глаза разбегаются. А желательно бы качественно и без проблем ) Сайт небольшой, на данный момент разработан на локалке, по количеству страниц чуть меньше 50. Будут добавляться лишь только фото в галерее, ну может статьи. Что можете посоветовать?
В основном использую виртуальный хостинг от Sweb или Beget. Система CMS MODX работает на них очень хорошо. Все они предоставляют версию PHP 7.1. Проблем с недоступностью сайта из-за проблем хостинга практически нет. Т.е. сайт доступен 24 часа в сутки 365 дней в году. Например, если сайт хорошо оптимизирован, то на самом дешёвом тарифе виртуального хостинга Sweb он может выдержать нагрузку до 5000 посетителей в сутки. Считаю, что это не плохой показатель. На Beget вообще есть бесплатный тариф виртуального хостинга. Если посетителей в сутки немного, то можно выбрать даже его. А когда нагрузка возрастёт, то перейти на платный тариф.
Если вы хотите более специализированный хостинг, то можете попробовать modhost.pro. Он заточен под MODX и позволяет выполнять некоторые операции более просто, например, как обновление системы. Хотя на практике его не использовал, да и тарифы у него по сравнению с хостингами Sweb и Beget немного дороже.
Как раз вот в сторону Beget и думал, чаще на глаза попадался, да и нахваливают вроде. К слову сказать, конечно же не ради рекламы обращался. Просто реально их много и не знаешь куда и «кости кинуть».
Что ж, в принципе с выбором определился. А Вам огромное СПАСИБО за ответ-совет.