Как настроить окружение для CS-Cart¶
С помощью наших плейбуков (англ. playbook, сценарий) для Ansible можно настроить окружение для CS-Cart всего за несколько команд и правок в файле с настройками. Сценарии сами автоматически настроят для вас веб-сервер.
Примечание
Если вы не хотите использовать Ansible, настройте окружение в соответствии с системными требованиями CS-Cart.
Шаг 1. Устанавливаем Ansible¶
Важно
Плейбуки никак не обрабатывают конфликты пакетов — если пакет установить не получается, то будет выдана ошибка. Поэтому мы рекомендуем использовать плейбуки только на чистых установках операционных систем.
В зависимости от операционной системы, выполните по очереди следующие команды, чтобы установить Ansible:
На CentOS 7:
sudo yum -y install epel-release sudo yum install -y gcc git openssl-devel libffi-devel libselinux-python python-crypto python-jinja2 python-paramiko sshpass PyYAML python-setuptools sudo rpm -ihv https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.4.6.0-1.el7.ans.noarch.rpm
На Ubuntu 18.04:
sudo apt update sudo apt install ansible
Примечание
CentOS 6, Ubuntu ниже версии 18.04 больше не поддерживаются.
Шаг 2. Настраиваем main.json¶
После установки Ansible можно скачать и запустить один из наших плейбуков для настройки сервера. Для этого:
Клонируйте репозиторий с плейбуками к себе на сервер:
mkdir ~/playbooks && git clone https://github.com/cscart/server-ansible-playbooks ~/playbooks
Эта команда создаёт копию репозитория с плейбуками в домашней папке на сервере. Так вы всегда сможете попасть в директорию с плейбуками одной командой
cd ~/playbooks command
, если понадобится.Создайте файл main.json; наши плейбуки используют данные оттуда для настройки окружения:
cp ~/playbooks/config/advanced.json ~/playbooks/config/main.json
Эта команда просто копирует существующий файл advanced.json и вставляет его как main.json в ту же директорию (~/playbooks/config). Пока что в файле находится только пример данных; нам нужно будет заменить их на свои собственные.
Отредактируйте файл ~/playbooks/config/main.json так, как вам нужно. По умолчанию файл выглядит так:
{ "stores_dir": "/var/www/html", "stores": { "example.com": { "cart": { "storefronts": ["example.org", "example.ru"] }, "database": { "name": "cscart", "user": "cscart", "password": "cscart" } } } }
stores_dir
— директория, где будут находиться папки с одной или несколькими установками CS-Cart;stores
— массив проектов (т.е. будущих установок CS-Cart);example.com
— доменное имя проекта; также это имя папки, где будет находиться проект. В примере выше у нас описана одна установка CS-Cart, которая будет находиться в папке /var/www/html/example.com;storefronts
— массив доменных имен дополнительных витрин; если таких не имеется, оставьте поле пустым. Пример:"storefronts": []
;database
— параметры подключения к базе данных, которую создаст плейбук для этого проекта:name
— название базы данных;user
— имя пользователя MySQL, который будет работать с этой базой данных;Предупреждение
НЕЛЬЗЯ указывать пользователя
root
; если укажете, тоroot
сможет пользоваться только базой, созданной плейбуком, и не сможет создавать новые базы данных.password
— пароль пользователя MySQL, указанного выше.
Если вы работаете с сервером по SSH (например, устанавливаете CS-Cart на хостинг DigitalOcean), то вы можете воспользоваться текстовым редактором в командной строке, чтобы отредактировать main.json так, как вам нужно. Мы рекомендуем nano — его использовать проще всего:
На CentOS сначала потребуется установить nano. Выполните команду:
yum install nano
Откройте файл, который вы хотите отредактировать (на Ubuntu выполняйте сразу этот шаг, без установки nano):
nano ~/playbooks/config/main.json
Теперь вы сможете редактировать файл. Перемещайтесь по файлу с помощью стрелок на клавиатуре и редактируйте его, как в обычном редакторе. Ниже представлен main.json, который у нас получился для настройки сервера под одну установку CS-Cart без дополнительных витрин.
Важно
Замените имя домена из примера на имя вашего домена; также поменяйте реквизиты доступа к базе данных, которые будут созданы в процессе работы плейбука.
{ "stores_dir": "/var/www/html", "stores": { "doctorzoid.tk": { "cart": { "storefronts": [] }, "database": { "name": "doctorzoid_tk", "user": "doctorzoid_tk", "password": "0NkpV5t9VcUYpKtM" } } } }
Нажмите Ctrl + X, чтобы выйти из редактора. Появится вопрос, хотите ли вы сохранить изменения. Нажмите кнопку Y на клавиатуре, а затем нажмите Enter, чтобы подтвердить имя изменяемого файла.
Шаг 3. Запускаем плейбук¶
В зависимости от нужного вам веб-сервера и нужной версии PHP запустите один из плейбуков командой ниже. Если процесс пройдёт успешно, то можно будет устанавливать CS-Cart или Multi-Vendor после этого.
lemp7.yml: nginx + mysql + php7.1
cd ~/playbooks/ && ansible-playbook -e @config/main.json -c local -i inventory_php7 lemp7.yml
lvemp7.yml: varnish + nginx + mysql + php7.1
cd ~/playbooks/ && ansible-playbook -e @config/main.json -c local -i inventory_varnish lvemp7.yml
lemp73.yml: nginx + mysql + php7.3
cd ~/playbooks/ && ansible-playbook -e @config/main.json -c local -i inventory_php73 lemp73.yml
lvemp73.yml: varnish + nginx + mysql + php7.3
cd ~/playbooks/ && ansible-playbook -e @config/main.json -c local -i inventory_varnish73 lvemp73.yml
lemp74.yml: nginx + mysql + php7.4
cd ~/playbooks/ && ansible-playbook -e @config/main.json -c local -i inventory_php74 lemp74.yml
lvemp74.yml: varnish + nginx + mysql + php7.4
cd ~/playbooks/ && ansible-playbook -e @config/main.json -c local -i inventory_varnish74 lvemp74.yml