вторник, 15 сентября 2015 г.

MODX - Перенос сайта на хостинг клиента

 Требования к хостингу:
  • Расширения PHP:
    • zlib
    • hash
    • JSON (or PECL library)
    • mod_rewrite (for friendly URLs/.htaccess)
    • GD lib (required for captcha and file browser)
    • PDO, specifically pdo_mysql (for xPDO)
    • ImageMagick (for thumbnails)
    • SimpleXML
    • cURL (for Package Management)
  • Настройки PHP:
    • safe_mode off
    • register_globals off
    • magic_quotes_gpc off
    • php-mbstring on (required on some extras like Gallery)
    • PHP memory_limit 24MB or more, depending on your server
Алгоритм переноса:
  1. Чистим всё через админку ModX. 
    1. Управление - Обновить сайт.
    2. Управление - Снять блокировки. 
    3. Управление - Перезагрузить права доступа.
    4. Завершить все сеансы. 
    5. Чистим папку core/cache, либо cd .../docs/core/cache, rm -rf ./*, либо через FTP, либо оставляем на следующий шаг.
  2. Переносим файлы
    1. Пакуем всё в ZIP архив: cd .../docs, zip -r -9 sitename.zip *
    2. Переносим sitename.zip в каталог нового хостинга, распаковываем в админке хостинга.
    3. Если не удалили кеш ранее, заходим в /core/cache и удаляем. (Лучше проверить наличие содержимого папки с кешем в любом случае, вдруг кто-то успел зайти на сайт после очистки).
  3. Переносим таблицы.
    1. Открываем PhpMyAdmin у себя, открываем базу, экспортируем(можно установить сжатие в zip) нашу базу в файл, скачиваем.
    2. Создаём у хостера новые базу и пользователя(копируем их данные чтобы потом записать в конфиг).
    3. Заходим у хостера в phpMyAdmin и заходим в базу. Импортируем в новую БД наш файл с табличками.
  4. Редактируем core/config/config.inc.php
    1. Меняем пути в файле конфигурации с путей старого хостинга (например /var/www/sitename.ru/docs/) на пути нового (например /home/sitename/sitename.ru/docs/).
    2. Меняем строки соединения с базой данных, переписывая новыми данными.
  5. Переустановка
    1. Проверяем на наличие каталога setup на новом хостинге, если нет то скачиваем тот же дистрибутив MODX, закидываем на хостинг, и из него копируем папку setup в корень.
    2. Открываем .../sitename.ru/docs/setup/index.php в блокноте, добавляем куда-нибудь error_reporting(E_ALL); ini_set('display_errors', 1);
    3. Открываем в браузере sitename.ru/setup/. Выбираем существующую установку. Если хостер поотрубал нам модули, необходимые для работы и сыплются ошибки вроде PDO::__construct cannot find file... или что-то подобное - идём в настройки модулей у хостера, переходим в настройку PHP, и проверяем на наличие подключенных модулей из начала статьи.
    4. Пробуем снова открыть /setup, выбрать язык, далее, далее, в отчете о переустановке все сообщения должны гореть зелёным. Если не может соединиться с базой - проверяем файл конфигурации core/config/config.inc.php и данные связи с базой. Если будет ошибка в модулях - должен выводить ошибку наверху страницы.
    5. Если вылазиет просто ошибка 500(без подробностей), то идем в /core/cache/logs/error.log и проверяем его на наличие ошибок, действуем по обстоятельствам.
    6. Производим установку. Файлы установки на всякий случай не удаляем. 
  6. Проверка сайта
    1. Крестимся и переходим по ссылке авторизации. Ещё раз крестимся и вводим логин и пароль, который использовался на dev-хостинге.
    2. Если крест животворящий помог, значит вас должно пустить в админку. Если начнёт говорить что action not found или что-то подобное - вы забили на шаг с очисткой кеша. Чистите и пробуйте ещё раз.
    3. Если после установки появляются ошибки вроде неожиданной скобки [, это значит что хостер застрял в прошлом и не в состоянии обновить РНР до нормальной версии. Ну или кто-то слишком ленив, чтобы создавать массивы через array(). Исправляйте код через БД.
    4. Если после установки сайт выдаёт 500 - что-то неверно в конфигурационных файлах. Проверяйте соединение с базой данных в первую очередь и пути к файлам.
Инструкция создана по мотивам инструкции от Егора Приставки, и с его неоценимой помощью :).

Комментариев нет:

Отправить комментарий