Интернет-магазин на 1С-Битрикс: Управление сайтом
1С-Битрикс: Управление сайтом
В этой инструкции вы развернете и настроите интернет-магазин на платформе 1С-Битрикс. В процессе настройки вы создадите виртуальную машину в Yandex Cloud, развернете на ней 1С-Битрикс и запустите необходимые сервисы. В качестве базы данных вы будете использовать отказоустойчивый кластер Yandex Managed Service for MySQL.
Чтобы развернуть и настроить 1С-Битрикс:
- Подготовьте облако к работе.
- Создайте ВМ в облаке.
- Создайте кластер БД MySQL.
- Настройте сервер для работы с 1C-Битрикс.
- Настройте 1С-Битрикс.
Если сайт вам больше не нужен, удалите все используемые им ресурсы.
Также инфраструктуру для интернет-магазина на 1С-Битрикс можно развернуть через Terraform с помощью готового файла конфигурации.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры 1С-Битрикс входит:
- Плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud).
- Плата за использование динамического или статического публичного IP-адреса (см. тарифы Yandex Virtual Private Cloud).
- Плата за использование управляемой БД MySQL (см. тарифы Managed Service for MySQL).
Создайте ВМ в облаке
Чтобы создать виртуальную машину:
-
Перейдите в нужный каталог из консоли управления
: нажмите на имя каталога в блоке Ваши ресурсы. -
Нажмите кнопку Создать ресурс и выберите пункт Виртуальная машина.
-
В поле Имя введите имя виртуальной машины, например
bitrix
.- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Выберите зону доступности, в которой должна находиться виртуальная машина. Если вы не знаете, какая зона доступности вам нужна, оставьте выбранную по умолчанию.
-
В блоке Выбор образа/загрузочного диска перейдите на вкладку Cloud Marketplace и выберите образ операционной системы Ubuntu 18.04 lts.
-
В блоке Диски выберите диск SSD размером 13 ГБ.
-
В блоке Вычислительные ресурсы укажите конфигурацию, которая необходима для корректной работы 1С-Битрикс:
- Платформа — Intel Ice Lake.
- Гарантированная доля vCPU — 20%.
- vCPU — 2.
- RAM — 4 ГБ.
-
В блоке Сетевые настройки:
- Выберите Сеть и Подсеть, к которым нужно подключить виртуальную машину. Если нужной сети или подсети еще нет, создайте их в этом же блоке.
- В поле Публичный адрес оставьте значение Автоматически, чтобы назначить виртуальной машине случайный внешний IP-адрес из пула Yandex Cloud, или выберите статический адрес из списка, если вы зарезервировали его заранее.
-
В блоке Доступ укажите данные для доступа к виртуальной машине:
- В поле Логин введите имя для пользователя, который будет создан на виртуальной машине, например
ubuntu
. - В поле SSH-ключ скопируйте значение вашего открытого SSH-ключа. Пару ключей для подключения по SSH необходимо создать самостоятельно.
- В поле Логин введите имя для пользователя, который будет создан на виртуальной машине, например
-
Нажмите кнопку Создать ВМ.
См. раздел Как создать инфраструктуру с помощью Terraform.
Создайте кластер БД MySQL
Чтобы создать кластер баз данных MySQL:
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберите пункт Кластер MySQL. -
В поле Имя введите имя виртуальной машины, например
bitrix-mysql
.- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
В блоке Класс Хоста выберите Тип хоста s2.micro.
-
В блоке База данных укажите:
- Имя БД. Оставьте значение по умолчанию
db1
. - Имя пользователя, которое является логином для подключения к базе данных. Оставьте значение по умолчанию
user1
. - Пароль, который нужен будет 1С-Битрикс для доступа к базе данных.
- Имя БД. Оставьте значение по умолчанию
-
В блоке Хосты, при необходимости, поменяйте Зону доступности, в которой должен находиться хост. Для этого нажмите значок
Рекомендуется выбрать ту же Зону доступности, которую вы выбрали при создании виртуальной машины. Это позволит уменьшить задержку (latency) между виртуальной машиной и базой данных.
Чтобы база данных была отказоустойчивой, вы можете добавить дополнительные хосты к кластеру. Для этого нажмите кнопку Добавить хост, выберите зону доступности и подсеть, затем нажмите кнопку Сохранить.
-
Убедитесь, что для хостов кластера не запрошен публичный доступ: с этой настройкой 1С-Битрикс не сможет подключиться к кластеру.
-
Остальные поля оставьте без изменений.
-
Нажмите кнопку Создать кластер.
Создание кластера БД может занять несколько минут.
См. раздел Как создать инфраструктуру с помощью Terraform.
Настройте ВМ для работы с 1C-Битрикс
Чтобы настроить ВМ для работы с 1С-Битрикс:
-
Войдите на ВМ по SSH (
ubuntu
— имя пользователя, которое вы задали при создании ВМ):ssh ubuntu@<публичный_IP_адрес_ВМ>
Чтобы узнать публичный IP-адрес вашей ВМ:
- Выберите каталог, в котором создана ВМ, в консоли управления
. - Выберите сервис Compute Cloud.
- Нажмите на имя вашей ВМ (в примере —
bitrix
). - В открывшемся окне с общей информацией о ВМ публичный IP-адрес вы можете найти в блоке Сеть, в поле Публичный IPv4.
- Выберите каталог, в котором создана ВМ, в консоли управления
-
Перейдите в режим администратора:
ubuntu@bitrix:~$ sudo -i root@bitrix:~#
-
Установите необходимое программное обеспечение:
root@bitrix:~# apt-get update root@bitrix:~# apt-get install -y apache2 libapache2-mod-php php-gd php-mbstring php-mysql
-
Перейдите в рабочий каталог проекта:
root@bitrix:~# cd /var/www/html/
-
Скачайте дистрибутив «1С-Битрикс: Управление сайтом»:
root@bitrix:/var/www/html# wget https://www.1c-bitrix.ru/download/business_encode.tar.gz
-
Распакуйте полученный архив и удалите ненужные файлы:
root@bitrix:/var/www/html# tar -zxf business_encode.tar.gz root@bitrix:/var/www/html# rm -f index.html business_encode.tar.gz
-
Назначьте пользователя
www-data
владельцем рабочего каталога проекта:root@bitrix:/var/www/html# chown -R www-data:www-data /var/www/html
Проверьте, что предыдущая команда сработала:
root@bitrix:/var/www/html# ls -l
Результат:
total 76 drwxrwxr-x 6 www-data www-data 4096 May 15 13:50 bitrix -rwxrwxr-x 1 www-data www-data 1378 May 15 13:50 index.php -rwxrwxr-x 1 www-data www-data 150 Mar 11 2013 install.config -rwxrwxr-x 1 www-data www-data 30741 Apr 10 14:36 license.html -rwxrwxr-x 1 www-data www-data 113 Nov 20 2012 license.php -rwxrwxr-x 1 www-data www-data 14054 Feb 6 2017 readme.html -rwxrwxr-x 1 www-data www-data 112 Mar 27 2013 readme.php drwxrwxr-x 2 www-data www-data 4096 May 15 13:50 upload -rwxrwxr-x 1 www-data www-data 691 Oct 27 2009 web.config ...
-
Откройте файл конфигурации
/etc/php/7.4/apache2/php.ini
и укажите необходимые параметры PHP.Примечание
В зависимости от версии «1С-Битрикс» путь к файлу конфигурации может отличаться. Укажите путь до актуальной версии PHP на ВМ.
Было Стало short_open_tag = Off short_open_tag = On display_errors = Off display_errors = On memory_limit = 128M memory_limit = 256M ;date.timezone = date.timezone = Europe/Moscow ;opcache.revalidate_freq=2 opcache.revalidate_freq = 0 ;mbstring.func_overload = 0 mbstring.func_overload = 2 -
Настройте сервер Apache с помощью файла конфигурации
/etc/apache2/sites-enabled/000-default.conf
. Для этого добавьте после строкиDocumentRoot /var/www/html
следующий блок:<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
-
Перезапустите сервер Apache, чтобы все измененные настройки были применены:
root@bitrix:/var/www/html# service apache2 restart
Сервер сконфигурирован для корректной работы 1С-Битрикс. Теперь нужно настроить саму систему 1С-Битрикс.
Настройте 1С-Битрикс
Пройдите процесс первоначальной установки и настройки 1С-Битрикс:
-
Откройте веб-интерфейс
1С-Битрикс: Управление сайтом
. Для этого в браузере перейдите по адресуhttp://<публичный_IP_адрес_ВМ>/
. Откроется страница с предложением установить 1С-Битрикс. -
На стартовом экране установки нажмите кнопку Далее.
-
Ознакомьтесь с лицензионным соглашением и выберите опцию Я принимаю лицензионное соглашение. Затем нажмите кнопку Далее.
-
Регистрировать продукт необязательно (вы можете отключить соответствующую опцию). Убедитесь, что опция Установить в кодировке UTF-8 выбрана и нажмите кнопку Далее.
-
1С-Битрикс проверит, верно ли сконфигурирован сервер. Нажмите кнопку Далее внизу страницы.
-
Настройка БД.
- В поле Сервер укажите полное доменное имя созданной вами БД. Чтобы его узнать:
- Перейдите в новой вкладке браузера на страницу каталога в консоли управления
. - Выберите сервис Managed Service for MySQL.
- В таблице нажмите на строку созданного вами кластера БД.
- Перейдите на вкладку Хосты.
- Наведите курсор на значение поля Имя хоста и нажмите значок
- Перейдите в новой вкладке браузера на страницу каталога в консоли управления
- В полях Имя пользователя и Пароль укажите данные, которые вы указывали при создании БД.
- В поле Имя базы данных укажите имя БД (в примере
db1
). - В остальных полях оставьте значения по умолчанию.
- Нажмите кнопку Далее.
- В поле Сервер укажите полное доменное имя созданной вами БД. Чтобы его узнать:
-
Дождитесь окончания процесса установки и инициализации БД.
-
Создайте администратора (пользователя, который сможет управлять системой). Заполните поля в соответствии с вашими персональными данными и нажмите кнопку Далее.
-
Выберите шаблон Интернет-магазин и нажмите кнопку Далее.
-
Подтвердите выбор единственного шаблона, нажмите кнопку Далее.
-
Выберите цветовое оформление выбранного ранее шаблона и нажмите кнопку Далее.
-
Заполните поля в соответствии с требованиями к интернет-магазину и нажмите кнопку Далее.
-
При необходимости включите функцию складского учета и укажите, в какой момент нужно резервировать товар на складе. Нажмите кнопку Далее.
-
Укажите данные о компании и нажмите кнопку Далее.
-
Выберите типы плательщиков, с которыми должен работать ваш интернет-магазин, и нажмите кнопку Далее.
-
Выберите доступные в вашем интернет-магазине способы оплаты и доставки товаров, затем нажмите кнопку Далее.
-
Дождитесь окончания установки системы.
-
Когда установка завершится, нажмите кнопку Перейти на сайт.
-
Откроется интерфейс интернет-магазина в режиме редактирования.
-
Нажмите кнопку Выйти в правом верхнем углу страницы, и вы увидите главную страницу сайта глазами обычного посетителя. Чтобы вернуться в режим редактирования, необходимо авторизоваться на сайте с теми учетными данными, которые вы указали для администратора 1С-Битрикс.
Совет
Чтобы получать резервные копии системы, периодически создавайте снимки диска ВМ.
Как удалить созданные ресурсы
Чтобы перестать платить за развернутый сервер, достаточно удалить ВМ bitrix
и удалить кластер bitrix-mysql
.
Если вы зарезервировали статический публичный IP-адрес специально для этой ВМ:
- Выберите сервис Virtual Private Cloud в вашем каталоге.
- Перейдите на вкладку IP-адреса.
- Найдите нужный адрес, нажмите значок
Как создать инфраструктуру с помощью Terraform
Terraform
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Чтобы разместить интернет-магазин на 1С-Битрикс с помощью Terraform:
-
Установите Terraform, получите данные для аутентификации и укажите источник для установки провайдера Yandex Cloud (раздел Настройте провайдер, шаг 1).
-
Подготовьте файл с описанием инфраструктуры:
Готовая конфигурацияСоздание вручную-
Склонируйте репозиторий с конфигурационными файлами:
git clone https://github.com/yandex-cloud-examples/yc-bitrix-store.git
-
Перейдите в директорию с репозиторием. В ней должны появиться файлы:
bitrix-shop.tf
— конфигурация создаваемой инфраструктуры;bitrix-shop.auto.tfvars
— файл с пользовательскими данными.
-
Создайте папку для конфигурационных файлов.
-
Создайте в папке:
-
Файл с описанием инфраструктуры
bitrix-shop.tf
:bitrix-shop.tf# Объявление переменных для конфиденциальных параметров variable "folder_id" { type = string } variable "vm_user" { type = string } variable "ssh_key_path" { type = string } variable "db_user" { type = string } variable "db_password" { type = string sensitive = true } # Объявление прочих переменных locals { network_name = "network-1" subnet_name1 = "subnet-1" subnet_name2 = "subnet-2" sg_db_name = "bitrix-sg" sg_vm_name = "bitrix-sg-vm" vm_name = "bitrix" cluster_name = "bitrix-mysql" db_name = "db1" } # Настройка провайдера terraform { required_providers { yandex = { source = "yandex-cloud/yandex" version = ">= 0.47.0" } } } provider "yandex" { folder_id = var.folder_id } # Создание облачной сети и подсетей resource "yandex_vpc_network" "network-1" { name = local.network_name } resource "yandex_vpc_subnet" "subnet-1" { name = local.subnet_name1 zone = "ru-central1-a" network_id = yandex_vpc_network.network-1.id v4_cidr_blocks = ["192.168.1.0/24"] } resource "yandex_vpc_subnet" "subnet-2" { name = local.subnet_name2 zone = "ru-central1-b" network_id = yandex_vpc_network.network-1.id v4_cidr_blocks = ["192.168.2.0/24"] } # Создание групп безопасности resource "yandex_vpc_security_group" "bitrix-sg" { name = local.sg_db_name network_id = yandex_vpc_network.network-1.id egress { protocol = "ANY" description = "any" v4_cidr_blocks = ["0.0.0.0/0"] from_port = 0 to_port = 65535 } ingress { protocol = "TCP" description = "ext-https" v4_cidr_blocks = ["0.0.0.0/0"] port = 3306 } } resource "yandex_vpc_security_group" "bitrix-sg-vm" { name = local.sg_vm_name network_id = yandex_vpc_network.network-1.id egress { protocol = "ANY" description = "any" v4_cidr_blocks = ["0.0.0.0/0"] from_port = 0 to_port = 65535 } ingress { description = "HTTP" protocol = "TCP" v4_cidr_blocks = ["0.0.0.0/0"] port = 80 } ingress { protocol = "TCP" description = "ssh" v4_cidr_blocks = ["0.0.0.0/0"] port = 22 } ingress { protocol = "TCP" description = "ext-https" v4_cidr_blocks = ["0.0.0.0/0"] port = 443 } } # Указание готового образа ВМ resource "yandex_compute_image" "ubuntu-1804-lts" { source_family = "ubuntu-1804-lts" } # Создание ВМ resource "yandex_compute_instance" "bitrix" { name = local.vm_name platform_id = "standard-v3" zone = "ru-central1-a" resources { core_fraction = 20 cores = 2 memory = 4 } boot_disk { initialize_params { image_id = yandex_compute_image.ubuntu-1804-lts.id type = "network-ssd" size = "13" } } network_interface { subnet_id = yandex_vpc_subnet.subnet-1.id security_group_ids = [yandex_vpc_security_group.bitrix-sg-vm.id] nat = true } metadata = { user-data = "#cloud-config\nusers:\n - name: ${var.vm_user}\n groups: sudo\n shell: /bin/bash\n sudo: ['ALL=(ALL) NOPASSWD:ALL']\n ssh-authorized-keys:\n - ${file("${var.ssh_key_path}")}" } } # Создание кластера MySQL resource "yandex_mdb_mysql_cluster" "bitrix-mysql" { name = local.cluster_name environment = "PRODUCTION" network_id = yandex_vpc_network.network-1.id version = "8.0" security_group_ids = [yandex_vpc_security_group.bitrix-sg.id] resources { resource_preset_id = "s2.micro" disk_type_id = "network-ssd" disk_size = "10" } host { zone = "ru-central1-a" subnet_id = yandex_vpc_subnet.subnet-1.id assign_public_ip = false } host { zone = "ru-central1-b" subnet_id = yandex_vpc_subnet.subnet-2.id assign_public_ip = false } } # Создание базы данных MySQL resource "yandex_mdb_mysql_database" "db1" { cluster_id = yandex_mdb_mysql_cluster.bitrix-mysql.id name = local.db_name } # Создание пользователя MySQL resource "yandex_mdb_mysql_user" "user1" { cluster_id = yandex_mdb_mysql_cluster.bitrix-mysql.id name = var.db_user password = var.db_password permission { database_name = yandex_mdb_mysql_database.db1.name roles = ["ALL"] } }
-
Файл с пользовательскими данными
bitrix-shop.auto.tfvars
:bitrix-shop.auto.tfvarsfolder_id = "<идентификатор_каталога>" vm_user = "<имя_пользователя_ВМ>" ssh_key_path = "<путь_к_публичному_SSH-ключу>" db_user = "<имя_пользователя_БД>" db_password = "<пароль_для_доступа_к_БД>"
-
Более подробную информацию о параметрах используемых ресурсов в Terraform см. в документации провайдера:
-
-
В файле
bitrix-shop.auto.tfvars
задайте пользовательские параметры:folder_id
— идентификатор каталога.vm_user
— имя пользователя ВМ.ssh_key_path
— путь к файлу с открытым SSH-ключом для аутентификации пользователя на ВМ. Подробнее см. Создание пары ключей SSH.db_user
— имя пользователя БД, напримерuser1
.db_password
— пароль для доступа к БД. Длина пароля должна составлять от 8 до 128 символов.
-
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-