Веб-сайт на базе 1С-Битрикс
1С-Битрикс: Управление сайтом
В этом руководстве вы развернете и настроите веб-сайт, используя шаблон информационного портала на платформе 1С-Битрикс. В процессе настройки вы создадите виртуальную машину в инфраструктуре Yandex Cloud, на которой развернете образ платформы 1С-Битрикс и требуемые для нее сервисы. В качестве базы данных вами будет развернут кластер Yandex Managed Service for MySQL с возможностью обеспечения его отказоустойчивости.
Используемые ресурсы для правильной работы 1С-Битрикс:
- ВМ на базе Ubuntu 22.04 LTS с доступом во внешнюю сеть, на которой будет установлен 1С-Битрикс.
- Кластер Managed Service for MySQL, являющийся БД для веб-сайта 1С-Битрикс.
Чтобы развернуть и настроить 1С-Битрикс:
- Подготовьте облако к работе.
- Создайте и настройте облачную сеть.
- Создайте ВМ в облаке.
- Создайте кластер БД MySQL.
- Настройте сервер для работы с 1C-Битрикс.
- Настройте 1С-Битрикс.
Если сайт вам больше не нужен, удалите все используемые им ресурсы.
Также инфраструктуру для веб-сайта на Битрикс можно развернуть через Terraform с помощью готовой конфигурации.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки сервера для 1С-Битрикс и БД входит:
- Плата за диски Yandex Compute Cloud и постоянно запущенную ВМ (см. тарифы Compute Cloud).
- Плата за использование динамического или статического публичного IP-адреса (см. тарифы Yandex Virtual Private Cloud).
- Плата за использование управляемой БД (см. тарифы Managed Service for MySQL).
Для текущего сценария используется пробная версия 1С-Битрикс с ознакомительным периодом в 30 дней. Стоимость электронных версий продукта вы можете уточнить на официальном ресурсе «1С-Битрикс»
Создайте и настройте облачную сеть
- Создайте сеть с именем
network-1
. При создании сети отключите опцию Создать подсети. - В сети
network-1
создайте две подсети в разных зонах доступности со следующими параметрами:- Подсеть в зоне доступности
ru-central1-a
:- Имя —
subnet-a
. - Зона —
ru-central1-a
. - CIDR —
192.168.0.0/24
.
- Имя —
- Подсеть в зоне доступности
ru-central1-b
:- Имя —
subnet-b
. - Зона —
ru-central1-b
. - CIDR —
192.168.1.0/24
.
- Имя —
- Подсеть в зоне доступности
- В сети
network-1
создайте группы безопасности:-
С именем
bitrix-sg-vm
для ВМ в облаке. Задайте правила для этой группы безопасности в соответствии с таблицей:Направление
трафикаОписание Диапазон портов Протокол Источник /
НазначениеCIDR блоки Исходящий ANY
Весь
Любой
CIDR
0.0.0.0/0
Входящий HTTP
80
TCP
CIDR
0.0.0.0/0
Входящий EXT-HTTPS
443
TCP
CIDR
0.0.0.0/0
Входящий SSH
22
TCP
CIDR
0.0.0.0/0
-
С именем
bitrix-sg
для кластера баз данных MySQL. Задайте правила для этой группы безопасности в соответствии с таблицей:Направление
трафикаОписание Диапазон портов Протокол Источник /
НазначениеCIDR блоки Исходящий ANY
Весь
Любой
CIDR
0.0.0.0/0
Входящий EXT-HTTPS
3306
TCP
CIDR
0.0.0.0/0
-
См. раздел Как создать инфраструктуру с помощью Terraform.
Создайте ВМ в облаке
Чтобы создать ВМ:
- В консоли управления
выберите каталог, в котором будет создана ВМ. - В списке сервисов выберите Compute Cloud.
- Нажмите кнопку Создать ВМ.
- В поле Имя введите имя ВМ, например,
bitrixwebsite
. - В поле Зона доступности выберите
ru-central1-a
. - В блоке Cloud Marketplace выберите образ операционной системы Ubuntu 22.04 lts.
- В блоке Диски выберите жесткий диск
SSD
размером24 ГБ
. - В блоке Вычислительные ресурсы:
- Выберите платформу ВМ.
- Для корректной работы системы 1С-Битрикс укажите конфигурацию:
- Платформа —
Intel Ice Lake
. - Гарантированная доля vCPU —
20%
. - vCPU —
2
. - RAM —
4 ГБ
.
- Платформа —
- В блоке Сетевые настройки:
- В поле Подсеть выберите созданную ранее подсеть
subnet-a
. - В поле Публичный адрес оставьте значение Автоматически, чтобы назначить ВМ случайный публичный IP-адрес из пула Yandex Cloud, или выберите статический адрес из списка, если вы зарезервировали его заранее.
- В поле Группы безопасности выберите группу безопасности
bitrix-sg-vm
.
- В поле Подсеть выберите созданную ранее подсеть
- В блоке Доступ укажите данные для доступа к ВМ:
- В поле Логин введите предпочтительное имя пользователя, который будет создан на ВМ, например
ubuntu
. - В поле SSH-ключ скопируйте ваш открытый SSH-ключ. Пару ключей для подключения по SSH необходимо создать самостоятельно.
- Нажмите кнопку Создать ВМ.
В процессе работы вам может потребоваться сохранять снимки диска ВМ. Они содержат копию файловой системы ВМ на момент создания снимка.
Вы можете использовать снимки для различных целей, например:
- Перенос данных с одного диска на другой — например, на диск в другой зоне доступности.
- Создание резервной копии диска перед операциями, которые могут повлечь повреждение данных.
- Версионирование диска путем регулярного создания снимков диска.
См. раздел Как создать инфраструктуру с помощью Terraform.
Создайте кластер БД MySQL
Чтобы создать кластер Managed Service for MySQL:
-
На странице каталога в консоли управления
выберите сервис Managed Service for MySQL. -
Нажмите кнопку Создать ресурс и выберите пункт Кластер MySQL.
-
В поле Имя введите имя кластера, например
BitrixMySQL
. -
В блоке Класс хоста выберите
s2.micro
. Данных характеристик хватит для работы системы 1С-Битрикс. -
В блоке Размер хранилища выберите тип хранилища —
network-ssd
размером 10 ГБ. -
В блоке База данных укажите:
- Имя БД. В этом руководстве оставьте значение по умолчанию
db1
. - Имя пользователя, которое является логином для подключения к БД. В этом руководстве оставьте значение по умолчанию
user1
. - Пароль, будет использоваться для доступа системой 1С-Битрикс к БД MySQL, например
p@s$woRd!
.
- Имя БД. В этом руководстве оставьте значение по умолчанию
-
В блоке Сетевые настройки:
- В поле Сеть выберите созданную ранее сеть
network-1
. - В поле Группы безопасности выберите группу безопасности
bitrix-sg
.
- В поле Сеть выберите созданную ранее сеть
-
В блоке Хосты, при необходимости, поменяйте Зону доступности, в которой должна находиться база данных. Для этого нажмите значок
в строке с деталями о хосте. В открывшемся окне выберите нужную зону доступности и нажмите кнопку Сохранить.Рекомендуется выбрать ту же зону доступности, которую вы выбрали при создании ВМ. Это позволит уменьшить задержку (latency) между ВМ и БД.
-
Для обеспечения отказоустойчивости вы можете добавить дополнительные хосты для вашей БД. Для этого выберите Добавить хост и укажите, в какой зоне доступности он будет размещен.
-
Остальные поля оставьте без изменений.
-
Нажмите на кнопку Создать кластер.
Создание кластера БД может занять несколько минут. Проверить доступность созданного кластера вы можете в консоли управления Yandex Cloud, выбрав сервис Managed Service for MySQL. На вкладке Кластеры статус кластера должен быть Running, состояние Alive.
См. раздел Как создать инфраструктуру с помощью Terraform.
Настройте сервер для работы с 1C-Битрикс
Для настройки сервера для работы с 1С-Битрикс выполните следующие шаги:
-
Войдите на созданную ВМ с помощью SSH.
ssh ubuntu@<публичный_IP-адрес_ВМ>
Где
ubuntu
— имя пользователя в поле Логин, которое вы указывали при создании ВМ.Чтобы узнать публичный IP-адрес вашей ВМ на странице каталога в консоли управления
:- Выберите блок Compute Cloud.
- Нажмите на имя вашей ВМ (в данном примере — bitrixwebsite).
- Откроется окно с общей информацией о вашей ВМ. Публичный IP-адрес вы можете найти в блоке Сеть, в поле Публичный IPv4.
-
Установите необходимое программное обеспечение:
sudo apt-get update sudo apt-get install -y apache2 libapache2-mod-php php-gd php-mbstring php-mysql
-
Перейдите в рабочий каталог проекта и скачайте дистрибутив «1С-Битрикс: Управление сайтом»:
cd /var/www/html/ sudo wget https://www.1c-bitrix.ru/download/standard_encode.tar.gz
-
Распакуйте полученный архив и после этого удалите ненужные файлы:
sudo tar -zxf standard_encode.tar.gz sudo rm -f index.html standard_encode.tar.gz
-
Назначьте пользователя
www-data
владельцем рабочего каталога проекта:sudo chown -R www-data:www-data /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
-
Для корректной работы 1С настройте параметры PHP. Для этого воспользуйтесь встроенным редактором
nano
и отредактируйте следующие переменные в файле конфигурацииphp.ini
:sudo nano /etc/php/8.1/apache2/php.ini
Было Стало short_open_tag = Off
short_open_tag = On
memory_limit = 128M
memory_limit = 256M
;date.timezone =
date.timezone = Europe/Moscow
;opcache.revalidate_freq =2
opcache.revalidate_freq =0
;session.save_path = "/var/lib/php/sessions"
session.save_path = "/var/lib/php/sessions"
Путь к файлу
php.ini
зависит от установленной версии PHP. В примере приведен путь для версии8.1
. Для версии8.0
введите/etc/php/8.0/apache2/php.ini
, для версии8.2
—/etc/php/8.2/apache2/php.ini
и т. д.Совет
Чтобы найти нужный параметр в редакторе
nano
нажмите сочетание клавиш Ctrl + W. Найдите требуемый параметр из таблицы выше, далее сохраните изменения при помощи сочетания клавиш Ctrl + O. Выход из редактора Ctrl + X. -
Настройте веб-сервер Apache. Для этого отредактируйте файл конфигурации
/etc/apache2/sites-enabled/000-default.conf
.-
Откройте файл в текстовом редакторе:
sudo nano /etc/apache2/sites-enabled/000-default.conf
-
Добавьте после строки
DocumentRoot /var/www/html
следующий блок:<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
-
Перезапустите веб-сервер, чтобы все измененные настройки применились.
sudo service apache2 restart
-
После выполнения этих команд серверная часть будет сконфигурирована для корректной работы 1С-Битрикс.
Настройте 1С-Битрикс
Установите и настройте 1С-Битрикс:
-
Откройте веб-интерфейс 1С-Битрикс: Управление сайтом — перейдите по адресу
http://<публичный_IP-адрес_ВМ>/
. Должна открыться страница с приглашением установить 1С-Битрикс. -
Нажмите кнопку Далее.
-
Ознакомьтесь с лицензионным соглашением и выберите Я принимаю лицензионное соглашение. Затем нажмите кнопку Далее.
-
Регистрация необязательна, поэтому уберите соответствующую галочку, но оставьте Установить в кодировке UTF-8 и нажмите кнопку Далее.
-
Система проверит, верно ли сконфигурирован сервер. Просмотрите все параметры на данной странице и нажмите кнопку Далее.
-
Укажите параметры созданной БД:
- В поле Сервер укажите полное доменное имя созданной вами БД. Чтобы его узнать:
- В консоли управления
перейдите в новой вкладке браузера на страницу каталога. - Выберите раздел Managed Service for MySQL.
- В таблице выберите созданный ранее кластер
BitrixMySQL
. - В меню слева выберите вкладку Хосты.
- Подведите курсор к Имени хоста (вида
rc1c-cfazv1db********
) и скопируйте полное доменное имя базы данных, нажав появившийся значок . К имени хоста добавится полное доменное имя, в результате в поле Сервер должно быть указано имя видаrc1c-cfazv1db********.mdb.yandexcloud.net
.
- В консоли управления
- В полях Имя пользователя и Пароль укажите данные, с которыми вы создавали БД в разделе Создайте кластер БД MySQL.
- В поле Имя базы данных укажите имя созданной БД (
db1
). - Нажмите кнопку Далее.
- В поле Сервер укажите полное доменное имя созданной вами БД. Чтобы его узнать:
-
Дождитесь инициализации БД MySQL.
-
Создайте аккаунт администратора, который сможет вносить изменения в вашу систему. Заполните все поля и нажмите кнопку Далее.
-
Выберите шаблон Информационный портал и нажмите кнопку Далее.
-
Подтвердите выбор единственного шаблона оформления, нажав кнопку Далее.
-
Выберите цветовое оформление и нажмите кнопку Далее.
-
Заполните все поля в соответствии с требованиями к веб-сайту и нажмите кнопку Установить. Начнется установка и настройка всех компонентов системы. Дождитесь ее окончания.
-
Через некоторое время появится страница, уведомляющая о том, что система установлена и настроена. Для начала работы с веб-сайтом нажмите кнопку Перейти на сайт.
-
Вы попали в веб-интерфейс полностью готовой для дальнейшей эксплуатации системы и находитесь в режиме редактирования содержимого.
-
Чтобы увидеть главную страницу сайта глазами пользователя, нажмите Выйти из панели администрирования вашим сайтом, в правом верхнем углу страницы, затем перейдите по адресу
http://<публичный_IP-адрес_ВМ>/
. Чтобы вернуться обратно в режим редактирования, авторизуйтесь на сайте с теми учетными данными, которые вы указали для администратора 1С-Битрикс.
Как удалить созданные ресурсы
Чтобы перестать платить за развернутый сервер:
-
Удалите ВМ
bitrixwebsite
.Если вы зарезервировали статический публичный IP-адрес специально для этой ВМ:
- Выберите сервис Virtual Private Cloud в вашем каталоге.
- Перейдите на вкладку IP-адреса.
- Найдите нужный IP-адрес, нажмите значок
и выберите пункт Удалить.
-
Удалите кластер БД
BitrixMySQL
.
Как создать инфраструктуру с помощью Terraform
Terraform
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Чтобы разместить веб-сайт на Битрикс с помощью Terraform:
-
Установите Terraform, получите данные для аутентификации и укажите источник для установки провайдера Yandex Cloud (раздел Настройте провайдер, шаг 1).
-
Подготовьте файлы с описанием инфраструктуры:
Готовая конфигурацияВручную-
Склонируйте репозиторий с конфигурационными файлами.
git clone https://github.com/yandex-cloud-examples/yc-bitrix-website.git
-
Перейдите в директорию с репозиторием. В ней должны появиться файлы:
bitrix-website.tf
— конфигурация создаваемой инфраструктуры.bitrix-website.auto.tfvars
— файл с пользовательскими данными.
- Создайте папку для конфигурационных файлов.
- Создайте в папке:
-
Конфигурационный файл
bitrix-website.tf
:bitrix-website.tfvariable "folder_id" { type = string } variable "vm_user" { type = string } variable "ssh_key_path" { type = string } variable "mysql_user" { type = string } variable "mysql_password" { type = string sensitive = true } terraform { required_providers { yandex = { source = "yandex-cloud/yandex" version = ">= 0.47.0" } } } provider "yandex" { zone = var.folder_id } resource "yandex_vpc_network" "network-1" { name = "network1" } resource "yandex_vpc_subnet" "subnet-1" { name = "subnet1" 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 = "subnet2" zone = "ru-central1-b" network_id = yandex_vpc_network.network-1.id v4_cidr_blocks = ["192.168.2.0/24"] } resource "yandex_vpc_subnet" "subnet-3" { name = "subnet3" zone = "ru-central1-d" network_id = yandex_vpc_network.network-1.id v4_cidr_blocks = ["192.168.3.0/24"] } resource "yandex_vpc_security_group" "sg-vm" { name = "bitrix-sg-vm" description = "Description for security group" 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-HTTP" v4_cidr_blocks = ["0.0.0.0/0"] port = 80 } ingress { protocol = "TCP" description = "EXT-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_vpc_security_group" "sg-mysql" { name = "bitrix-sg" description = "Security group for mysql" 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-msql" v4_cidr_blocks = ["0.0.0.0/0"] port = 3306 } } data "yandex_compute_image" "ubuntu-image" { family = "ubuntu-2204-lts" } resource "yandex_compute_disk" "boot-disk" { name = "bootdisk" type = "network-ssd" zone = "ru-central1-a" size = "24" image_id = yandex_compute_image.ubuntu-image.id } resource "yandex_compute_instance" "vm-bitrix" { name = "bitrixwebsite" platform_id = "standard-v3" zone = "ru-central1-a" resources { core_fraction = 20 cores = 2 memory = 4 } boot_disk { disk_id = yandex_compute_disk.boot-disk.id } network_interface { subnet_id = yandex_vpc_subnet.subnet-1.id security_group_ids = ["${yandex_vpc_security_group.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}")}" } } resource "yandex_mdb_mysql_cluster" "bitrix-cluster" { name = "BitrixMySQL" environment = "PRESTABLE" network_id = yandex_vpc_network.network-1.id version = "8.0" security_group_ids = ["${yandex_vpc_security_group.sg-mysql.id}"] resources { resource_preset_id = "s2.micro" disk_type_id = "network-hdd" 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 } } resource "yandex_mdb_mysql_database" "bitrix-db" { cluster_id = yandex_mdb_mysql_cluster.bitrix-cluster.id name = "db1" } resource "yandex_mdb_mysql_user" "bitrix-user" { cluster_id = yandex_mdb_mysql_cluster.bitrix-cluster.id name = var.mysql_user password = var.mysql_password permission { database_name = yandex_mdb_mysql_database.bitrix-db.name roles = ["ALL"] } }
-
Файл с пользовательскими данными
bitrix-website.auto.tfvars
:bitrix-website.auto.tfvarsfolder_id = "<идентификатор_каталога>" vm_user = "<имя_пользователя_ВМ>" ssh_key_path = "<путь_к_файлу_с_открытым_SSH-ключом>" mysql_user = "<имя_пользователя_БД>" mysql_password = "<пароль_пользователя_БД>"
-
Более подробную информацию о параметрах используемых ресурсов в Terraform см. в документации провайдера:
-
-
В файле
bitrix-website.auto.tfvars
задайте пользовательские параметры:folder_id
— идентификатор каталога.vm_user
— имя пользователя ВМ.ssh_key_path
— путь к файлу с открытым SSH-ключом для аутентификации пользователя на ВМ. Подробнее см. Создание пары ключей SSH.mysql_user
— имя пользователя для подключения к БД MySQL. В этом руководстве укажитеuser1
.mysql_password
— пароль пользователя для доступа к БД MySQL. В этом руководстве укажите значениеp@s$woRd!
.
-
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-