Статья, в которой рассмотрим, как осуществляется перенос сайта, работающего под управлением 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 и выполнить в ней следующие действия:

  1. Отключить сайт (Системные настройки -> Статус сайта -> положение «Нет»).
  2. Очистить кэш сайта (Управление -> Очистить кэш).
  3. Очистить сессии (Управление -> Завершить все сеансы).

Примечание: Самый безопасный и правильный способ — это очистить кэш вручную. Это можно сделать путем удаления всего содержимого каталога cache, расположенного в папке core. Этот процесс, как правило, более быстро выполнить на сервере с помощью диспетчера файлов. Но данное действие также можно выполнить и протоколу FTP.

Копирование файлов

Следующее действие — это скопировать все файлы с рабочего проекта. Данное действие более быстро выполнить, если их предварительно упаковать в архив.

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

Например, на хостинге SpaceWeb можно воспользоваться файловым менеджером, в котором выбрать ссылку «Создать архив всех файлов» или в разделе «Backup» с помощью элемента «Сохранить архив всех файлов в домашней директории».

Создание резервной копии всех файлов на хостинге SpaceWeb

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

Создание резервной копии всех файлов на хостинге SpaceWeb

Создание дампа базы данных

Выполнить дамп базы данных, т.е. экспорт её структуры и данных. В зависимости от того какую вы используете базу данных — это осуществляется одним или другим инструментом.

В MySQL, например, это осуществляется с помощью клиенткой утилиты mysqldump:

# экспорт всей базы данных dbname в файл dump.sql
# dbusername - имя пользователя
# pdbpassword - пароль пользователя
mysqldump -u dbusername -pdbpassword dbname > /путь/до/dump.sql

Данное действие также можно выполнить с помощью инструмента phpmyadmin. Для этого необходимо выбрать базу данных, перейти на вкладку «Экспорт», установить необходимые параметры и нажать кнопку «OK».

Создание дампа базы данных MODX с помощью инструмента phpmyadmin

Если вы хотите сделать резервную копию базы данных сайта, находящего на хостинге, то это наиболее просто выполнить через панель управления:

  • на хостинге 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 в корень вашего сайта. Запустить процесс установки и выбрать режим обновления.

Рекомендация после установки: Для того чтобы кэш браузера не влиял на работоспособность проверяемого сайта, страницы лучше открывать в режиме инкогнито или после очистки его от кэша.

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

Источник: itchief.ru