- Подготовка MODX к переезду
- 1. Завершение сеанса и выход из админки
- 2. Полное удаление кэша
- 3. Делаем бэкап файлов сайта
- 4. Делаем бэкап базы данных
- Перенос сайта на MODX Revo
- 5. Правим пути
- Проверяем файлы .htaccess и robots.txt
- 6. Создание пустой базы данных и импорт данных
- 7. Правим подключение к новой базе
- 7. Загрузка файлов на сервер
- 8. Накатываем дистрибутив advansed и запускаем обновление
- Решение проблем с переносом
- После переноса modx 503 ошибка: site temporarily unavailable
- MODX HTTP ERROR 500: сайт пока не может обработать этот запрос.
- Вместо админки сайта перебрасывает в админку хостинга
Рассмотрим как перенести MODX сайт куда угодно и от куда угодно:
- с локального сервера на хостинг;
- с хостинга на локальный сервер;
- с хостинга на хостинг,
- с одного домена на другой и т.д.
В интернете достаточно много подобных статей, но как по мне они не совсем адекватные, либо в них все слишком заморочено. И так приступим. Распишу все по шагам.
Подготовка MODX к переезду
1. Завершение сеанса и выход из админки
Если вы находитесь в административной панели сайта, разогнитесь из нее и завершите все сеансы. Для в верхнем меню, перейдите во вкладку Управление — Завершить все сеансы.
Таким образом мы разлогиниваем всех пользователей и администраторов, включая себя.
2. Полное удаление кэша
Заходим через файл-менеджер (или по FTP) к себе на сервер в папку /core/cache и удаляем все папки которые там есть.
3. Делаем бэкап файлов сайта
Скачиваем все файлы сайта по FTP, а еще лучше через файловый менеджер хостинга их упаковать в архив и затем скачать уже архив со всеми файлами на ПК (и распакуйте архив на ПК).
4. Делаем бэкап базы данных
Открываем в phpMyAdmin базу данных сайта, переходим во вкладку «Экспорт» и экспортируем базу.
Базу закидываем в папку с файлами сайта.
Если сайт на локальном компьютере, просто сделайте копию папки с файлами сайта и экспорт базы данных в phpMyAdmin в формате SQL.
Перенос сайта на MODX Revo
5. Правим пути
Чтобы узнать новые пути на хостинге, можно воспользоваться php файликом из урока: Как узнать полный путь от корня сервера?
Править пути нужно в следующих файлах:
/core/config/config.inc.php
/config.core.php
/connectors/config.core.php
/manager/config.core.php
И в самом дампе базы
Обратите внимание на то, что пути к сайту указываются от корня сервера, а не домена. Например:
было: $modx_core_path='/home/mysite/public_html/core/';
, стало: $modx_core_path='/www/mynewsite/www/core/';
.
Универсальный способ сделать все это быстро и просто при помощи Notepad++. Открываем файл /core/config/config.inc.php при помощи Notepad++, выделяем старый путь, далее идем во вкладку «Поиск» — «Найти в файлах», в поле Заменить на указываем новый путь, далее указываем папку в которой лежат все подпапки и файлы сайта и жмем на кнопку Заменить в файлах. Notepad++ проверит все файлы и заменить все старые пути на новые (и не надо открывать каждый конфиг файлы и править пути). И в этом же файле прописываем новые реквизиты для подключения к базе.
Проверяем файлы .htaccess и robots.txt
Обычно в корне сайта лежат файлы .htaccess и robots.txt — поменяйте в них домен (особенно в .htaaccess если там указаны правила редиректов и т.д.)
6. Создание пустой базы данных и импорт данных
Создаем новую базу данных и пользователя к ней (на новом хостинге, локальном хостинг, в общем там куда вы переносите сайт). Записываем данные в блокнот (имя БД, пользователь, пароль). Или сразу в конфиг файл (7й пункт).
Идем в phpMyAdmin, переходим во вкладку «Импорт» и импортируем бэкап базы.
7. Правим подключение к новой базе
Снова открываем /core/config/config.inc.php и правим в нем следующие поля:
$database_server = 'localhost'; / в 90% случаях трогать не нужно
$database_user = 'имя пользователя бд';
$database_password = 'пароль от новой бд';
$dbase = 'имя бд';
$database_dsn = укажите имя базы
7. Загрузка файлов на сервер
Закачиваем все файлы на хостинг, локальный сервер или на другой домен. Делать это можно как по FTP например при помощи filezilla (следите за тем, чтобы все файлы закачались). Либо запаковываем все файлы в архив, далее закачиваем архив при помощи файлового менеджера и распаковываем его.
После этого сайт должен заработать, но если видите какие-нибудь проблемы с отображением сайта, дополнительно рекомендую сделать следующий шаг.
8. Накатываем дистрибутив advansed и запускаем обновление
Скачайте с официального сайта модекса https://modx.com/download такую же версию modx (advansed) как у вас, либо следующую (если она доступна). Только не нужно обновлять до 3й версии, если й вас 2я.
Распакуйте архив с дистрибутивом, там 2 папки: core и setup, залейте их поверх файлов сайта и запустите установку (вернее обновление текущей установки) и далее, дале и далее. Примечание если ваш сайт с закалкой (переименовано ядро к примеру, значит перед заливкой core, вы его точно так же переименовываете).
Так же подготовил видео про перенос MODX, что бы вам лучше было ориентироваться.
Решение проблем с переносом
Если строго придерживались инструкции выше и все сделали правильно, данных ошибок возникнуть не должно.
После переноса modx 503 ошибка: site temporarily unavailable
Если после переноса MODX на другой хостинг Вы получаете ошибку: Error 503: Site temporarily unavailable, то нужно:
- Подправить пути в конфиг файлах (см. выше «6. Правим пути»)
- Так же в конфиг файле core/config/config.inc.php проверьте правильно ли вы подключаетесь к БД и проверьте строчку $http_host=’vash-site.ru’; (обычно 61 строка).
- Удалить папку с кешем (core/cache).
MODX HTTP ERROR 500: сайт пока не может обработать этот запрос.
Самая распространенная причина — ошибки указания пути к папкам с файлами ядра системы. Исправить это можно просто проверив в файлах конфигурации — правильно ли указан абсолютный путь (от корня) к системным папкам модекса. Проверять нужно в файлах:
- /core/config/config.inc.php — его проверяем в первую очередь, смотрим правильность путей и:
$database_type = 'mysql'; // Тип базы данных
$database_server = 'localhost'; // Сервер базы данных
$database_user = ''; // Пользователь базы данных
$database_password = ''; // Пароль базы данных
$dbase = ''; // Название базы данных
$table_prefix = ''; // Префикс таблиц базы данных
$database_dsn = 'mysql:host=localhost;dbname=название базы данных;charset=utf8 или utf8mb4';
$http_host='vash-site.ru'; - config.core.php (в корневой папке сайта)
- /manager/config.core.php
- /connectors/config.core.php
Обычно это помогает полностью исправить ошибку. Но не всегда, если не помогло, проверьте еще версию php, права на файлы (644) и папки (755) и пути в базе данных.
Если после этого сайт возвращает ошибку Fatal error: Call to a member function parseProperties() on a non-object in core/model/modx/modelement.class.php on line 536 — просто удалите всё из папки /core/cache/
Вариант 2, если не помог вариант описанный выше: скачиваем дистрибутив MODX Advansed (такой же версии как у вас), закидываем его содержимое в корень сайта и запускаем установщик, только выбираем не новая установка, а обновление.
Вариант 3 — если совсем все плохо!
- Устанавливаем чистый MODX на хостинг (той же версии).
- Сохраняем файл с конфигами config.inc.php из папки core/config на компе.
- Удаляем все свеже установленные файлы MODX с хостинга.
- Удаляем все таблицы из базы.
- Закачиваем все файлы сайта, того что работает локально или на другом хостинге.
- Импортируем дамп работающей базы.
- Заменяем файл core/config/config.inc.php локально сохраненным.
- В остальных конфигурационных файлах MODX руками прописываем пути из core/config/config.inc.php.
Вместо админки сайта перебрасывает в админку хостинга
Недавно переносил сайт клиента на специфический хостинг и возникла небольшая проблема. Вход в панель управления на хостинге расположена по такому же адресу /manager, что и админка сайта, поэтому при попытке перейти к управлению сайтом меня постоянно перебрасывает на страницу авторизации личного кабинета на хостинг. Для решения данной проблемы необходимо изменить адрес админки сайта на любой другой. Для этого необходимо проделать следующие шаги:
- Идем в Открываем для редактирования файл config.inc.php который лежит в директории /core/config/. Сделать это можно через файловый менеджер хостинга или путем подключаемся к сайту по FTP.
- Находим в нем строки $modx_manager_path= и $modx_manager_url и меняем в них manager к примеру на administrator
- Переименовываем системный каталог manager в administrator
- Переходим по url адрес_сайта/administrator и получаем доступ к административной панели сайта.
Если остались вопросы и появились проблемы после переноса, пишите в комментариях.
Платные дополнения будут работать и обновляться в дальнейшем на новом домене?
Работать будут, но обновляться не будут. Платные дополнения привязаны к конкретному домену — следовательно при смене домена обновлять вы их уже не сможете, но вы 1 раз можете в личном кабинет сбросить домен (указать новый, тогда будут обновляться)
Спасибо за ответ!
Пожалуйста!
С как найти корневой путь на новом хостинге не понял ?
Вот так https://web-revenue.ru/sajtostroenie/domain-and-hosting/kak-uznat-polnyiy-put-ot-kornya-servera