Веб-сайт на базе 1С-Битрикс
1С-Битрикс: Управление сайтом — это система управления веб-проектами от компании 1С-Битрикс. С его помощью вы можете достаточно просто управлять структурой и содержимым вашего веб-сайта, не обладая специальными знаниями программирования и верстки. Техническую часть работы за вас выполнит «1С-Битрикс: Управление сайтом».
В этой инструкции вы развернете и настроите веб-сайт, используя шаблон информационного портала на платформе 1С-Битрикс. В процессе настройки вы создадите виртуальную машину в инфраструктуре Yandex Cloud, на которой развернете образ платформы 1С-Битрикс и требуемые для нее сервисы. В качестве базы данных вами будет развернут кластер управляемой базы данных MySQL с возможностью обеспечения его отказоустойчивости.
Используемые ресурсы для правильной работы 1С-Битрикс:
- ВМ на базе Ubuntu 20.04 LTS с доступом во внешнюю сеть, на которой будет установлен 1С-Битрикс.
- Кластер MySQL, являющийся базой данных для веб-сайта 1С-Битрикс.
Чтобы развернуть и настроить 1С-Битрикс:
- Подготовьте облако к работе.
- Создайте ВМ в облаке.
- Создайте кластер баз данных MySQL.
- Настройте сервер для работы с 1C-Битрикс.
- Настройте 1С-Битрикс.
Если сайт вам больше не нужен, удалите все используемые им ресурсы.
Также инфраструктуру для веб-сайта на Битрикс можно развернуть через Terraform с помощью готового файла конфигурации.
Подготовьте облако к работе
Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:
- Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
- На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки сервера для 1С-Битрикс и базы данных входит:
- плата за диски Yandex Compute Cloud и постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud);
- плата за использование управляемой базы данных (см. тарифы Managed Service for MySQL).
Для текущего сценария используется пробная версия 1С-Битрикс с ознакомительным периодом в 30 дней. Стоимость электронных версий продукта вы можете уточнить на официальном ресурсе «1С-Битрикс».
Создайте виртуальную машину в облаке
Чтобы создать ВМ:
-
В консоли управления выберите каталог, в котором будет создана виртуальная машина.
-
В списке сервисов выберите Compute Cloud.
-
Нажмите кнопку Создать ВМ.
-
В поле Имя введите имя ВМ, например
bitrixwebsite
. -
Зону доступности оставьте выбранной по умолчанию.
-
В блоке Cloud Marketplace выберите образ операционной системы Ubuntu 20.04 lts.
-
В блоке Диски выберите жесткий диск
SSD
размером20 ГБ
. -
В блоке Вычислительные ресурсы:
- Выберите платформу ВМ.
- Для корректной работы системы 1С-Битрикс укажите конфигурацию:
- Платформа -
Intel Ice Lake
. - Гарантированная доля vCPU —
20%
. - vCPU —
2
. - RAM —
4 ГБ
.
- Платформа -
-
В блоке Сетевые настройки:
- Выберите Сеть и Подсеть, к которым нужно подключить ВМ. Если нужной сети или подсети еще нет, вы можете создать их прямо на странице создания ВМ.
- В поле Публичный адрес оставьте значение Автоматически, чтобы назначить ВМ случайный внешний IP-адрес из пула Yandex Cloud, или выберите статический адрес из списка, если вы зарезервировали его заранее.
-
В блоке Доступ укажите данные для доступа к ВМ:
- В поле Логин введите предпочтительное имя пользователя, который будет создан на ВМ, например
ubuntu
. - В поле SSH-ключ скопируйте ваш открытый SSH-ключ. Пару ключей для подключения по SSH необходимо создать самостоятельно.
- В поле Логин введите предпочтительное имя пользователя, который будет создан на ВМ, например
-
Нажмите кнопку Создать ВМ.
В процессе работы вам может потребоваться сохранять снимки диска ВМ. Они содержат копию файловой системы ВМ на момент создания снимка.
Вы можете использовать снимки для различных целей, например:
- перенос данных с одного диска на другой — например, на диск в другой зоне доступности;
- создание резервной копии диска перед операциями, которые могут повлечь повреждение данных;
- версионирование диска путем регулярного создания снимков диска.
См. раздел Как создать инфраструктуру с помощью Terraform.
Создайте кластер баз данных MySQL
Чтобы создать кластер баз данных MySQL:
-
На странице каталога в консоли управления выберите сервис Managed Service for MySQL.
-
Нажмите кнопку Создать ресурс и выберите пункт Кластер MySQL.
-
В поле Имя введите имя кластера, например
BitrixMySQL
. -
В блоке Класс хоста выберите
s2.micro
. Данных характеристик хватит для работы системы 1С-Битрикс. -
В блоке Размер хранилища выберите тип хранилища —
network-ssd
размером 10 ГБ. -
В блоке База данных укажите:
- Имя БД. В этой инструкции оставьте значение по умолчанию
db1
. - Имя пользователя, которое является логином для подключения к базе данных. В этой инструкции оставьте значение по умолчанию
user1
. - Пароль, будет использоваться для доступа системой 1С-Битрикс к базе данных MySQL, например
p@s$woRd!
.
- Имя БД. В этой инструкции оставьте значение по умолчанию
-
В блоке Хосты, при необходимости, поменяйте Зону доступности, в которой должна находиться база данных. Для этого нажмите значок
в строке с деталями о хосте. В открывшемся окне выберите нужную зону доступности и нажмите кнопку Сохранить.Рекомендуется выбрать ту же зону доступности, которую вы выбрали при создании ВМ. Это позволит уменьшить задержку (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/7.4/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"
Совет
Чтобы найти нужный параметр в редакторе
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.
- В таблице выберите созданную вами базу данных.
- В меню слева выберите вкладку Хосты.
- Подведите курсор к Имени хоста (вида
rc1c-cfazv1dbzv02u4qk
) и скопируйте полное доменное имя базы данных, нажав появившийся значок . К имени хоста добавится полное доменное имя, в результате в поле Сервер должно быть указано имя видаrc1c-cfazv1dbzv02u4qk.mdb.yandexcloud.net
.
- В полях Имя пользователя и Пароль укажите данные, с которыми вы создавали базу данных в разделе Создайте кластер баз данных MySQL.
- В поле Имя базы данных укажите имя созданной базы данных (
db1
). - Нажмите кнопку Далее.
- В поле Сервер укажите полное доменное имя созданной вами базы данных. Чтобы его узнать:
-
Дождитесь инициализации базы данных MySQL.
-
Создайте аккаунт администратора, который сможет вносить изменения в вашу систему. Заполните все поля и нажмите кнопку Далее.
-
Выберите шаблон Информационный портал и нажмите кнопку Далее.
-
Подтвердите выбор единственного шаблона оформления, нажав кнопку Далее.
-
Выберите цветовое оформление и нажмите кнопку Далее.
-
Заполните все поля в соответствии с требованиями к веб-сайту и нажмите кнопку Установить. Начнется установка и настройка всех компонентов системы. Дождитесь ее окончания.
-
Через некоторое время появится страница, уведомляющая о том, что система установлена и настроена. Для начала работы с веб-сайтом нажмите кнопку Перейти на сайт.
-
Вы попали в веб-интерфейс полностью готовой для дальнейшей эксплуатации системы и находитесь в режиме редактирования содержимого.
-
Чтобы увидеть главную страницу сайта глазами пользователя, нажмите Выйти из панели администрирования вашим сайтом, в правом верхнем углу страницы, затем перейдите по адресу
http://<публичный-IP-адрес-ВМ>/
. Чтобы вернуться обратно в режим редактирования, авторизуйтесь на сайте с теми учетными данными, которые вы указали для администратора 1С-Битрикс.
Как удалить созданные ресурсы
Чтобы перестать платить за развернутый сервер:
-
Удалите виртуальную машину
bitrixwebsite
.Если вы зарезервировали статический публичный IP-адрес специально для этой ВМ:
- Выберите сервис VPC в вашем каталоге.
- Перейдите на вкладку IP-адреса.
- Найдите нужный адрес, нажмите значок
-
Удалите кластер баз данных
BitrixMySQL
.
Как создать инфраструктуру с помощью Terraform
Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Чтобы разместить веб-сайт на Битрикс с помощью Terraform:
-
Установите Terraform, получите данные для аутентификации и укажите источник для установки провайдера Yandex Cloud (раздел Настройте провайдер, шаг 1).
-
Подготовьте файлы с описанием инфраструктуры:
Готовый архивСоздание вручную- Создайте папку для файлов.
- Скачайте архив (1 КБ).
- Разархивируйте архив в папку. В результате в ней должны появиться конфигурационный файл
bitrix.tf
.
-
Создайте папку для файлов.
-
Создайте в папке конфигурационный файл
bitrix.tf
:bitrix.tfterraform { required_providers { yandex = { source = "yandex-cloud/yandex" version = ">= 0.47.0" } } } provider "yandex" { zone = "ru-central1-a" } 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 { initialize_params { image_id = "fd8kdq6d0p8sij7h5qe3" type = "network-ssd" size = "20" } } network_interface { subnet_id = yandex_vpc_subnet.subnet-1.id security_group_ids = ["${yandex_vpc_security_group.sg-1.id}"] nat = true } metadata = { ssh-keys = "<имя_пользователя>:<содержимое_SSH-ключа>" } } 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-1.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 } } 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 = "user1" password = "p@s$woRd!" permission { database_name = yandex_mdb_mysql_database.bitrix-db.name roles = ["ALL"] } } resource "yandex_vpc_security_group" "sg-1" { name = "wordpress" description = "Description for security group" network_id = yandex_vpc_network.network-1.id 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 } ingress { protocol = "TCP" description = "ext-msql" v4_cidr_blocks = ["0.0.0.0/0"] port = 3306 } egress { protocol = "ANY" description = "any" v4_cidr_blocks = ["0.0.0.0/0"] } } 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-c" network_id = yandex_vpc_network.network-1.id v4_cidr_blocks = ["192.168.3.0/24"] }
Более подробную информацию о параметрах используемых ресурсов в Terraform см. в документации провайдера:
-
В блоке
metadata
укажите имя пользователя и содержимое SSH-ключа. Подробнее см. в разделе Метаданные виртуальной машины. -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-