Перенос сайта с Modx revolution на хостинг

Modx revolution использует в своей работе базу данных и для переноса её на другой сервер кроме файлов необходимо так же переносить и базу данных. Так же modx использует кеширование, что так же не стоит упускать из виду при переносе.

Удалите кеш и сбросьте сессии

Прежде чем начать что-то делать, необходимо очистить все данные, которые могут кешироваться.

  • Авторизуйтесь в админке и нажмите «Сайт» → «Обновить сайт»
  • там же: «Безопасность» → «Завершить все сеансы»

В случае необходимости так же удалить файлы из каталога core/cache.

Запакуйте ваши файлы

Каждый раз, когда вы собираетесь переносить большое количество файлов на другой сервер, желательно упаковать файлы в архив. Это так же как с квартирой: при переезде вы упаковываете вещи в коробки а не переносите по одной. Плюс перенося файлы в архиве, вы не потеряете при переносе ни одного файла. 1 файл на 100 мегабайт переносить с одного сервера на другой на много быстрее, чем 100 файлов по мегабайту.

На UNIX системе вы можете заархивировать файлы следующей командой:

 tar -czf /path/to/backup/modx_revo_site.tar.gz /path/to/modx_doc_root/
Далее перенесите файлы на новый сервер. В новом месте предварительно лучше создать отдельную папку для архива. Идея в том, что если вы распакуете архив в отдельной папке, вы не сможете перепутать файлы modx с другими файлами вашего сервера. В UNIX системе вы можете распаковать файлы следующей командой:
gunzip modx_revo_site.tar.gz
tar -xvf modx_revo_site.tar
После того, как вы распакуете файлы, вы можете перенести их в нужное место командой mv, либо при помощи встроенного файлового менеджера mc.

 

Изменение владельца на файлы

Иногда права пользователя и группы на файл могут меняться при переезде с одного сервера на другой. Вам нужно проверить права на файлы. Все файлы modx на новом сервере должны принадлежать новому владельцу. Изменить права на файлы вы можете командой chown. При копировании по FTP, в большинстве случаев, таких проблем не возникает.

Права на запись: 777 или 755?

Некоторые папки modx на сервере должны иметь права на запись. В зависимости от настроек безопасности это права 777, либо 755. При переносе файлов архивом tar.gz все права на файлы и папки остаются не измененными и это может не работать корректно на новом сервере. Изменить права на файлы и папки можно командой chmod.

Копирование базы данных

Modx Revolution может работать на нескольких драйверах баз данных - mysql и sqlsrv. Следующая часть написана для драйвера mysql, но вы можете делать так же на драйвере sqlsrv.

Вы можете сделать бэкап вашей базы данных при помощи таких графических интерфейсов как phpmyadmin, либо можете воспользоваться следующей утилитой mysqldump:

mysqldump -h mysql_host -u username -p your_revo_db > /path/to/backups/my_revo_db.sql
Если вы используете утилиту mysqldump, убедитесь, что пользователь имеет полные права на базу данных modx. Самый просто вариант это использовать того же пользователя, которого использует modx. Посмотреть данные этого пользователя можно в файле /core/config/config.inc.php. Обратите внимание, что mysqldump потребует от вас пароля mysql пользователя, но при вводе на экране ничего отображаться не будет.

 

На новом сервере, для импорта, вы можете использовать средства phpmyadmin, либо следующую команду:

mysql -u username -p target_db <my_revo_db.sql

 

Обновление файла конфигурации

После того, как вы развернули файлы и базы данных на новом сервере, необходимо обновить файлы конфигурации. Откройте файл core/config/config.inc.php и впишите актуальные значение в следующие строки:

/* PATHS */
$modx_core_path= '/path/to/modx_doc_root/core/';
$modx_processors_path= '/path/to/modx_doc_root/core/model/modx/processors/';
$modx_connectors_path= '/path/to/modx_doc_root/connectors/';
$modx_manager_path= '/path/to/modx_doc_root/manager/';
$modx_base_path= '/path/to/modx_doc_root/';
$modx_assets_path= '/path/to/modx_doc_root/assets/';
 
/* HOST (used for command-line PHP stuff) */
$http_host='yoursite.com';
Есть так же три дополнительных файла содержащих php константы, которые нужно поправить:
define('MODX_CORE_PATH', '/path/to/modx_doc_root/core/');
define('MODX_CONFIG_KEY', 'config');
в файлах:

 

  • /config.core.php
  • /connectors/config.core.php
  • /manager/config.core.php

Убедитесь, что вы правильно указали пути во всех этих файлах.

Обновление базы данных

Modx сохраняет некоторые пути в базе данных. При переносе modx на другой сервер, вам необходимо обновить пути в базе данных, иначе на сайте будет отображаться белая страница.

Обратите внимание, что может использовать разные драйвера баз данных. Следующая информация описывает работу с mysql, но вы можете сделать тоже самое с драйвером sqlsrv.

Чтобы увидеть информацию о пути, который хранится в базе данных MODx, введите следующий запрос в PhpMyAdmin, утилите mysql, или любоv другого приложении, которое позволяет выполнять запросы к базе данных:

SELECT `path` FROM `your_revo_db`.`workspaces`;

 

Измените «your_revo_db» на имя вашей базы данных и при необходимости укажите префикс таблиц(на пример «modx_workspaces»). Если пути на новом сервере отличаются от старых, то вам необходимо обновить их. Вы можете обновить их при помощи phpmyadmin в ручную, либо выполнить следующую команду:

UPDATE `your_revo_db`.`workspaces` SET path='/path/to/modx_doc_root/core/' WHERE id='1';

 

Обновление .htaccess

Если вы изменяете сервер или доменное имя, возможно вам необходимо внести некоторые изменения в .htaccess, если он используется. Если в .htaccess вы ничего не добавляли, то и изменять ничего не требуется.

На новом сервере

Авторизуйтесь а админке modx на новом сервере, возможно вы увидите следующую надпись:

Could not find action file at: /path/to/manager/controllers/default/welcome.php
Это происходит потому что modx кеширует данные. Для решения вам необходимо очистить кеш и зайти в админку повторно.

 

Повторный запуск установки

Всякий раз, когда вы переносите сайт на modx на новое место, вам необходимо запустить установку повторно. Загрузите в папку с сайтом дистрибутив modx и запустите установку по адресу domain.com/setup. При запуске скрипта выберите обновление существующей конфигурации.

Обновление настроек расширений

Некоторые расширения, к примеру Gallery, хранят свои пути в настройках. При переносе сайта на другое место, вам необходимо обновить эти пути. Зайдите в админку сайта → «Система» → «Настройки системы». Далее выберите необходимое расширение и в настройках измените пути на правильные.

Заключение

Желательно хранить копию бэкапа системы modx со старого сервера, пока вы полностью не проверите функционал на новом сервере. Если у вас возникли проблемы в процессе установки, попробуйте удалить данные из каталога core/cache, удалить кеш браузера и повторить перенос.


Источник:http://rtfm.modx.com/display/revolution20/Moving+Your+Site+to+a+New+Server/