Бэкап и перенос сайта MODX Revolution

В заметке расскажу, как делать бэкапы сайта на MODX Revolution и как перенести его на другой хостинг или сервер.

В заметке расскажу, как делать бэкапы сайта на MODX Revolution и как перенести его на другой хостинг или сервер.

Бэкап должен включать в себя файлы сайта и базу данных. Сделать его можно через панель хостинга, SSH консоль сервера или используя дополнение BackupMODX.

Не забывайте периодически скачивать актуальную версию бэкапов к себе на компьютер.

Подготовка

Перед каждым бэкапом желательно выполнить несколько подготовительных шагов.

  • войдите в админку и отключите сайт: Системные настройки – Сайт – Статус сайта: Нет.

Статус сайта MODX

  • очистите кэш в админке: Управление – Очистить кэш сайта.

Очисnка кэша MODX

  • завершите сеансы: Управление – Завершить все сеансы.
  • очистите кэш сайта на сервере или хостинге, для этого удалите содержимое папки /core/cache вашего сайта. Саму папку cache удалять не нужно.

Подготовка завершена, сайт готов к бэкапу.

Бэкап MODX через панель хостинга

Панели управления хостингов разные, но принцип один:

  • через файловый менеджер на хостинге запакуйте содержимое сайта в архив.

Панель Hostland

  • через PhpMyAdmin (или другую админку БД вашего хостинга) сделайте дамп базы данных. Для этого выберите нужную базу, перейдите на вкладку «Export» («Экспорт»), укажите способ экспорта «Quick» («Обычный»), нажмите «Go» («Вперёд») и сохраните базу в SQL-файл.

Панель PhpMyAdmin

Скачайте архив с файлами сайта и дамп базы данных к себе на компьютер.

Бэкап MODX через консоль

Запакуйте файлы сайта в архив. В системах UNIX архив создаётся с помощью команды tar:

tar -czf /path/to/backups/modx_backup.tar.gz /path/to/modx_site_directory/

Хорошей мнемоникой для опции «-czf» является Create Zip File.

Выполните экспорт базы данных.

mysqldump -u username -p your_modx_db > /path/to/backups/you_modx_db.sql

Команды можно немного модифицировать, повесить на cron и тогда бэкап сайта будет автоматически создаваться по расписанию.

Бэкап с помощью дополнения BackupMODX

Дополнение BackupMODX упростит и ускорит создание бэкапов сайта на MODX, но сначала его нужно установить.

В админке перейдите в Приложения — Установщик, а затем найдите и установите там дополнение BackupMODX.

Установка BackupMODX

Далее нужно вынести виджет установленного дополнения на главную страницу админки, для этого:

  • перейдите в управление панелями и виджетами: Настройки (значок с шестеренкой) — Панели (или Панели виджетов).
  • правой кнопкой мыши нажмите на названии вашей текущей панели, как правило это Default и выберите Редактировать панель.

Панель виджетов MODX

  • в открывшемся окне нажмите кнопку Добавить виджет и выберите BackupMODX, затем нажмите сохраните изменения.

Если всё сделали правильно, на главной странице админки появится виджет BackupMODX, позволяющий делать бэкапы.

Виджет BackupMODX

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

По умолчанию файлы с бэкапами хранятся в папке /core/components/backupmodx/backups/, но путь можно изменить в настройках BackupMODX.

Восстановление бэкапа и перенос MODX на другой сервер

Восстановление сайта из бэкапа практически не отличается от переноса на другой хостинг или сервер. Однако при переносе на другой хостинг или сервер нужно будет внести изменения в конфигурационные файлы MODX.

Для восстановления бэкапа разархивируйте архив с файлами в папку сайта и импортируйте SQL-дамп в базу данных. Сделать, как и случае создания бэкапа это можно либо через панель управления хостингом, либо через SSH консоль сервера.

Распаковать файлы из консоли:

tar -xvzf /path/to/backups/modx_backup.tar.gz -C /path/to/modx_site_directory/

Импортировать дамп базы данных через консоль (для MySQL):

mysql -v -u username -p your_modx_db < /path/to/backups/you_modx_db.sql

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

Если же сайт переносится на новое место, хостинг или сервер, необходимо внести изменения в конфигурационные файлы MODX. Нужно указать новые доступы к базе данных и обновлённые пути к ядру и папкам сайта. Для этого, откройте файл core/config/config.inc.php и обновите значения следующих переменных через поиск и замену:

/* DATA DASE */
$database_type = 'mysql';
$database_server = 'localhost';
$database_user = 'user';
$database_password = 'password';
$dbase = 'dbase_name';
$database_dsn = 'mysql:host=localhost;dbname=dbase_name;charset=utf8';

/* 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 */
$http_host='yoursite.com';

Если сайт перемещается из или в поддиректорию (относительно корневой папки привязанной к домену), убедитесь что константы с урлами указаны верно и на конце у них есть косая черта ( / ):

$modx_connectors_url
$modx_manager_url
$modx_base_url

Для сайта в корневой папке привязанной к домену:

$modx_base_url='/'

Кроме того, нужно указать новые пути к ядру MODX ещё в 3 файлах:

  • /config.core.php
  • /connectors/config.core.php
  • /manager/config.core.php
define('MODX_CORE_PATH', '/path/to/modx_doc_root/core/');
define('MODX_CONFIG_KEY', 'config');

Решение проблем

Если сайт не работает после восстановления из бэкапа или переноса на новый сервер, попробуйте воспользоваться рекомендациями ниже.

Очистите кэш, для этого удалите содержимое папки /core/cache вашего сайта. Саму папку cache удалять не нужно.

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

Для директорий:

find /path/to/dir -type d -exec chmod 755 {} \;

Для файлов:

find /path/to/dir -type f -exec chmod 644 {} \;

Для смены прав можно так же воспользоваться bash скриптом приведённым ниже. Не забудьте изменить в нём путь до вашего сайта и пользователя, использовать пользователя root небезопасно.

#!/bin/bash

dir=/var/www/site
user=root

echo "Set permissions for $dir...";
echo "CHOWN files...";
chown -R $user:$user "$dir";
echo "CHMOD directories...";
find "$dir" -type d -exec chmod 0755 '{}' \;
echo "CHMOD files...";
find "$dir" -type f -exec chmod 0644 '{}' \;

Если с правами все в порядке, перепроверьте, что в конфигурационном файле /core/config/config.inc.php указаны правильные данные — доступы к базе данных и пути к ядру и папкам сайта. Чаще всего проблема именно в этом.

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

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

Если выключали сайт на этапе подготовки к бэкапу, убедитесь, что включили его: Системные настройки – Сайт – Статус сайта: Да.

Попробуйте провести повторную установку, для этого:

  • в директорию сайта загрузите папку setup из установочного пакета той же версии MODX (это важно), которая используется на вашем сайте, её можно скачать на страницы загрузки с официального сайта MODX;
  • перейдите по адресу yousite.ru/setup и следуя инструкциям установщика, переустановите MODX в режиме обновления.

Полезные ссылки

Moving Your Site to a New Server

MODX Revolution Downloads

Официальная страница дополнения BackupMODX

BackupMODX на GitHub

Командная строка MySQL