Предыстория. Один мой заказчик решил, что размещать два сайта на двух разных хостингах нецелесообразно, поскольку есть возможность разместить оба на одном, и написал мне о своем желании перенести сайт. Сайт сделан на CMS MODx, какая именно версия я не знал. У меня уже был опыт переноса сайта на этой CMS, но то было давно.
Что я почерпнул из Интернета и что мне помогло на основной стадии:
- Перенесите файлы с одного хостинга на другой.
- Сделайте архив базы и разместите ее на новом хостинге.
- Поправьте несколько файлов, впишите новые пути к папкам.
- Радуйтесь проделанной работе и работающему сайту.
Но все это очень абстрактно, и влечет за собой движение по граблям. Буду делиться своим опытом, чтобы грабель на вашей дороге при переносе сайта на MODx было меньше.
Чистим старый сайт на MODx
Первым делом, по советам программистов MODx, была чистка старого сайта. Для этого заходим в админку и находим Сайт — Обновить сайт, Очистить кеш сайта. Чистим.
Далее сбрасываем всех администраторов — Безопасность — Завершить все сеансы.
Затем заходим на FTP и чистим папку /core/cache . Смело все содержание! Оно вам больше не понадобится, оно создается CMS автоматически и при переносе сайта будет только мешать.
Копирование файлов MODx
Чтобы перенести сайт, нужно скопировать файлы с одного хостинга на другой. Как это сделать? Тут программисты разошлись на 2 лагеря. Первый утверждает, что нужно архивировать файлы на сервере, скопировать архив на компьютер и затем перенести архив на новый сервер, а там разархивировать. Вторые утверждают, что архивировать не нужно, просто перенести через FTP файлы на компьютер, а затем также по FTP на новый хостинг. У второго варианта есть маленький недочет – при работе FTP клиента или сети могут произойти сбои, и некоторые файлы не скопируются. При архивировании же файлов на сервере этого можно избежать. Но для архивации, на сервере должен быть установлен хотя бы ISPmanager.
Копируем базу данных MODx
Сайт на CMS MODx работает не без помощи базы данных SQL. Без ее переноса сайт не откроется. Переносим ее с помощью экспорта базы данных в phpMyAdmin в формате SQL. Или в ISPmanager. Выбираем нужную базу и нажимаем кнопку Скачать. Затем делаем импорт на другом хостинге в программе phpMyAdmin. ВАЖНО! Запишите в отдельный текстовый файл название базы, имя пользователя и пароль. Пригодится.
Переписываем файлы конфигурации MODx
После переноса файлов и базы данных сайт… не заработает. А вы что хотели? А потому, что абсолютный путь к файлам на новом хостинге отличается от прежнего. Что это такое? Абсолютный путь к файлу начинается не от корня сайта, а от корня сервера и выглядит порой так /var/www/moysayt/data/www/pupkin.ru. Как узнать новый путь к файлам? С помощью простого скрипта.
Создаете файл test.php и вписываете туда код:
<?php
echo ‘Document root: ‘.$_SERVER[‘DOCUMENT_ROOT’].'<br>’;
echo ‘Полный путь к скрипту и его имя: ‘.$_SERVER[‘SCRIPT_FILENAME’].'<br>’;
echo ‘Имя скрипта: ‘.$_SERVER[‘SCRIPT_NAME’];
?>
Загружаем файл на новый хостинг в корень и запускаем его. Видим:
Document root: /var/www/moysayt/data/www/pupkin.ru
Полный путь к скрипту и его имя: /var/www/moysayt/data/www/pupkin.ru/test.php
Имя скрипта: /test.php
Теперь нужно переписать несколько файлов. Делаем это с помощью Notepade или другого любого html редактора :
/core/config/config.inc.php
/config.core.php
/connectors/config.core.php
/manager/config.core.php
Меняем ВСЕ пути типа:
$modx_core_path= ‘/home/moysayt/public_html/core/’;
На
$modx_core_path= ‘/var/www/moysayt/data/www/pupkin.ru/core/ ‘;
В файле /core/config/config.inc.php меняем и доступ к базе данных. При переносе базы вы же создали новую базу с новым именем и новым пользователем, а также паролем:
$database_server = ‘localhost‘; // возможно не придётся менять, а может придется заменить на mysglhost, смотрите в phpMyAdmin
$database_user = ‘root‘; // имя пользователя
$database_password = ‘111111‘; // пароль
$dbase = ‘`modx`’; // название базы
А также поменять данные в строке (если она есть):
$database_dsn = ‘mysql:host= localhost;dbname= modx;charset=utf8’;
А теперь сайт заработал? Нет? Терпение, осталось немного.
Назначаем права доступа к файлам и папкам MODx
При переносе файлов на сервер автоматически выставляются права доступа. Они обычно бывают вида 700. Но этих прав «не хватает» для работы CMS. Необходимо изменить права доступа к следующим папкам и файлам:
assets/ — 777
assets/cache/ — 777
assets/cache/siteCache.idx.php — 666
assets/cache/sitePublishing.idx.php — 666
assets/images/ — 777
assets/export/ — 777
manager/ — 755
manager/includes/config.inc.php — 444
connectors/ — 755
core/ — 755
Вот теперь сайт заработал! Нет? Проверяйте пути к файлам и базе, а также права доступа к файлам.
Изменить вход в админку MODx с /manager/ на /admin/
Иногда… нет, пожалуй всегда бывает так, что если на новом сервере стоит ISPmanager, вы не зайдете в админку своего сайта с помощью пути moysayt.ru/manager/. Это путь для вызова ISPmanager. Чтобы решить это недоразумение, можно изменить пусть, скажем на /admin/. Для этого сперва переименуем папку /manager/ на /admin/. Затем перепишем пути в файле /core/config/config.inc.php:
$modx_manager_path= ‘/var/www/moysayt/data/www/pupkin.ru/manager/’;
$modx_manager_url= ‘/manager/’;
на
$modx_manager_path= ‘/var/www/moysayt/data/www/pupkin.ru/admin/’;
$modx_manager_url= ‘/admin/’;
И все. Сайт перенесен и работает. Кажется я ничего не забыл из собственного опыта.
P.C. Продолжая тему сайтостроения хочу предложить активным путешественникам свой сайт avia.alexmark.ru . Почему путешественникам? Как старый путешественник, на сайте я собрал все поисковики, которыми я попользуюсь – от покупки дешевых авиабилетов и выбора отелей, до недорогих аренды авто и страховки. Теперь не приходится искать сайты с поисковиками, все в одном месте. Пользуйтесь!
Спасибо! Будем пробовать!