В заметке расскажу, как делать бэкапы сайта на MODX Revolution и как перенести его на другой хостинг или сервер.
Бэкап должен включать в себя файлы сайта и базу данных. Сделать его можно через панель хостинга, SSH консоль сервера или используя дополнение BackupMODX.
Не забывайте периодически скачивать актуальную версию бэкапов к себе на компьютер.
Подготовка
Перед каждым бэкапом желательно выполнить несколько подготовительных шагов.
войдите в админку и отключите сайт: Системные настройки – Сайт – Статус сайта: Нет.
очистите кэш в админке: Управление – Очистить кэш сайта.
завершите сеансы: Управление – Завершить все сеансы.
очистите кэш сайта на сервере или хостинге, для этого удалите содержимое папки /core/cache вашего сайта. Саму папку cache удалять не нужно.
Подготовка завершена, сайт готов к бэкапу.
Бэкап MODX через панель хостинга
Панели управления хостингов разные, но принцип один:
через файловый менеджер на хостинге запакуйте содержимое сайта в архив.
через PhpMyAdmin (или другую админку БД вашего хостинга) сделайте дамп базы данных. Для этого выберите нужную базу, перейдите на вкладку «Export» («Экспорт»), укажите способ экспорта «Quick» («Обычный»), нажмите «Go» («Вперёд») и сохраните базу в SQL-файл.
Скачайте архив с файлами сайта и дамп базы данных к себе на компьютер.
Бэкап MODX через консоль
Запакуйте файлы сайта в архив. В системах UNIX архив создаётся с помощью команды tar:
tar -czf /path/to/backups/modx_backup.tar.gz /path/to/modx_site_directory/
Хорошей мнемоникой для опции «-czf» является Create Zip File.
Команды можно немного модифицировать, повесить на cron и тогда бэкап сайта будет автоматически создаваться по расписанию.
Бэкап с помощью дополнения BackupMODX
Дополнение BackupMODX упростит и ускорит создание бэкапов сайта на MODX, но сначала его нужно установить.
В админке перейдите в Приложения — Установщик, а затем найдите и установите там дополнение BackupMODX.
Далее нужно вынести виджет установленного дополнения на главную страницу админки, для этого:
перейдите в управление панелями и виджетами: Настройки (значок с шестеренкой) — Панели (или Панели виджетов).
правой кнопкой мыши нажмите на названии вашей текущей панели, как правило это Default и выберите Редактировать панель.
в открывшемся окне нажмите кнопку Добавить виджет и выберите 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 и обновите значения следующих переменных через поиск и замену:
Если сайт перемещается из или в поддиректорию (относительно корневой папки привязанной к домену), убедитесь что константы с урлами указаны верно и на конце у них есть косая черта ( / ):
Если сайт не работает после восстановления из бэкапа или переноса на новый сервер, попробуйте воспользоваться рекомендациями ниже.
Очистите кэш, для этого удалите содержимое папки /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 небезопасно.
Если с правами все в порядке, перепроверьте, что в конфигурационном файле /core/config/config.inc.php указаны правильные данные — доступы к базе данных и пути к ядру и папкам сайта. Чаще всего проблема именно в этом.
Так же убедитесь, что в файлах указан правильный путь к ядру MODX.
/config.core.php
/connectors/config.core.php
/manager/config.core.php
Если выключали сайт на этапе подготовки к бэкапу, убедитесь, что включили его: Системные настройки – Сайт – Статус сайта: Да.
Попробуйте провести повторную установку, для этого:
в директорию сайта загрузите папку setup из установочного пакета той же версии MODX (это важно), которая используется на вашем сайте, её можно скачать на страницы загрузки с официального сайта MODX;
перейдите по адресу yousite.ru/setup и следуя инструкциям установщика, переустановите MODX в режиме обновления.