Разработка и развертывание Evolution CMS
Введение
Если вы предпочитаете использовать системы контроля версий, вы должны проверить и сделать несколько важных вещей.
Необходимо понимать, что Evolution CMS на текущей стадии развития не полностью поддерживает интеграцию с git.
Вы можете синхронизировать:
- сами файлы CMS
- настройки CMS, если они были сделаны в соответствующих файлах
- файлы шаблонов
- файловую часть сниппетов, плагинов и модулей. При этом для вкючения сниппетов, плагинов, шаблонов и модулей на боевом сайте вам необходимо будет сделать соответствущие изменения в базе данных.
- пакеты (package) в полном объёме
Изменения, внесённые в базу данных, никак не задействованы в механизме переноса. Переносить БД необходимо после создания плагинов, сниппетов, шаблонов и новых ресурсов.
Требования к хостингу
Проверьте, что ваш хостинг соответствует хотя бы минимальным требованиям для Evolutuon CMS
ssh
У вас должен быть ssh-доступ, включающий доступ к командам git и возможность сгенерировать ssh-ключ.
Порядок действий
Создайте ключи на сервере
ssh-keygen -t rsa -b 4096 -C "yourmail@email.ru"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa > ~/.ssh/authorized_keys
Эта команда сгенерирует 2 ключа - публичный и приватный, расположенные в папке .ssh.
Добавьте публичный ключ в настройки репозитория
Для Github:
- Settings
- Deploy keys
- Add deploy key
Добавьте содержимое файла id_rsa.pub в deploy key.
Проверьте репозиторий
Проверьте, что в репозитории существует правильный файл .gitignore, в нём настроены правильные исключения.
Пример файла .gitignore
# assets
/assets/.thumbs/*
!/assets/.thumbs/index.html
!/assets/.thumbs/.htaccess
/assets/backup/*
!/assets/backup/index.html
!/assets/backup/.htaccess
/assets/cache/*
!/assets/cache/.htaccess
!/assets/cache/index.html
!/assets/cache/siteManager.php
!/assets/cache/sitePublishing.idx.php
!/assets/cache/images/index.html
!/assets/cache/rss/index.html
!/assets/cache/updater/index.html
/assets/docs/*
!/assets/docs/.htaccess
!/assets/docs/changelog.txt
!/assets/docs/index.html
!/assets/docs/license.txt
/assets/export/*
!/assets/export/index.html
!/assets/export/.htaccess
/assets/files/*
!/assets/files/index.html
!/assets/files/.htaccess
/assets/images/*
!/assets/images/index.html
!/assets/images/evo-logo.png
!/assets/images/.htaccess
/assets/import/*
!/assets/import/index.html
!/assets/import/.htaccess
/assets/site/*
!/assets/site/index.html
!/assets/site/.htaccess
# Core
/core/vendor/*
/core/storage/bootstrap/*
!/core/storage/bootstrap/.htaccess
/core/storage/cache/*
!/core/storage/cache/.gitkeep
/core/storage/log/*
!/core/storage/log/.gitkeep
/core/storage/sessions/*
!/core/storage/sessions/.gitkeep
/core/storage/blade/*
!/core/storage/blade/.gitkeep
/core/custom/.env
/core/custom/config/cms/settings.php
# Manager
/manager/includes/config.inc.php
/manager/media/style/default/css/styles.min.css
# Composer
/composer.phar
!/vendor/.htaccess
!/vendor/index.html
# IDE Helper
modx_evolution.IDEhelper.php
_ide_helper.php
.phpstorm.meta.php
#node.JS
/node_modules
npm-debug.log
#docker
/docker/nginx/logs/*
# System
ftpsync.settings
Thumbs.db
Desktop.ini
.DS_Store
.idea
.vagrant
.rocketeer
# except do not ignore .gitignore
!.gitignore
# dev
.vscode/
Проверьте работоспособность ключа
ssh -T git@github.com
Клонируйте репозиторий с сайтом
Для этого с помощью команды cd перейдите в корневую директорию будущего сайта и выполните команду:
git clone URL .
Где URL это путь к репозиторию. Найти это значение на Github можно, нажав Code и выбрав вкладку SSH.
Заберите изменения из репозитория
git pull
Установите нужные пакеты в ядро
Этот шаг нужен только в случае, если вы исключаете папку core/vendor из репозитория.
cd core
composer install
Создайте необходимые файлы конфигурации
Не забудьте создать и корректно заполнить файлы core\custom\config\cms\settings.php и core\custom\.env.
База данных
Сделайте копию вашей локальной базы данных и импортируйте её на боевом сервере.
Отладка
Проверьте, что у вас выключен Tracy на боевом сайте.