Разработка и развертывание Evolution CMS

  1. Введение
  2. Требования к хостингу
  3. ssh
  4. Порядок действий
    1. Создайте ключи
    2. Добавьте публичный ключ
    3. Проверьте репозиторий
    4. Пример файла .gitignore
    5. Проверьте работоспособность ключа
    6. Клонируйте репозиторий
    7. Заберите изменения
    8. Установите нужные пакеты
    9. Создайте файлы конфигурации
    10. База данных
    11. Отладка

Введение

Если вы предпочитаете использовать системы контроля версий, вы должны проверить и сделать несколько важных вещей.

Необходимо понимать, что 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 на боевом сайте.