Bitrix VM — бесплатное ПО, созданное на основе CentOS
, разработанное специально для CMS 1С-Битрикс
.
На данный момент существует две версии Bitrix VM
:
- 5.x — окружение настроено для работы со старыми версиями CMS, используется PHP 5.6 и MySQL 5.5.
- 7.х — актуальная ветка для последних версий CMS, используется PHP 7.1 и MySQL 5.7.
Стоит отметить, что установка панелей управления на Bitrix VM не предусмотрена.
Начальная настройка окружения
При подключении к серверу под пользователем root появляется список интерфейсов и меню управления.
- Для выхода из меню нужно нажать
0
. - Для его повторного запуска выполнить скрипт:
/root/menu.sh
Для начала работы с сервисами необходимо создать и настроить пул сервера.
- Выбираем пункт главного меню
1. Create Management pool of server
и вводим название сервера (чтобы оставить по умолчанию нажимаемEnter
)
Enter new name for master (default=box-16504.localdomain):
После создания пула можно перейти к настройке одного или нескольких сайтов.
Добавление сайта
Чтобы сайт был доступен в браузере для установки CMS/восстановления, его необходимо добавить с помощью меню управления.
Для этого необходимо:
- В главном меню переходим к управлению сайтами:
6. Manage sites in the pool
- Далее выбираем пункт
1:
1. Create a site.
- Вводим доменное имя сайта. Если домен сайта не разрешается в IP-адрес бокса, нужно предварительно добавить запись в
/etc/hosts:
Enter the site name (e.g. example.org) or 0 to exit: bitrixvm.sh
- Выбираем тип установки:
- kernel — отдельный сайт.
- ext_kernel — отдельный сайт с возможностью мультисайтовости.
- link — новый сайт в рамках мультисайтовости Bitrix (будет работать только при наличии сайта с типом
ext_kernel
):
Enter site type (link|kernel|ext_kernel):
- Выбираем кодировку:
Enter site encoding (UTF-8|windows-1251):
- Разрешаем новому сайту использовать планировщик, введя
y:
Do you want to enable cron for this site? (N|y)
- В следующем пункте вводим N, чтобы оставить имени БД, пользователя, пароля и корневого каталога сайта по умолчанию (путь —
/home/bitrix/ext_www/domain.ru
), или y для ручного ввода:
Do you want to specify them? (N|y)
Установка SSL-сертификата
Для установки SSL-сертификата необходимо:
- Объединяем файлы
domain_ru.ca-bundle
иdomain_ru.crt
в один файл, например,ssl-bundle.crt:
cat domain_ru.ca-bundle domains_ru.crt >> ssl-bundle.crt
- Полученный файл
ssl-bundle.crt
и приватный ключ размещаем в директории/etc/nginx/ssl.
- Создаем конфигурационный файл для сайта, копируя стандартный:
cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/domain_ssl.conf
- Вносим пути к сертификату и ключу в созданный файл domain_ssl.conf:
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/private.key;
- В файле
/etc/nginx/bx/site_avaliable/ssl.s1.conf
указываем путь к сертификату:
# Enable SSL connection include bx/conf/domain_ssl.conf;
- Проверяем конфигурацию
Nginx
на наличие ошибок и перезагружаем веб-сервер, чтобы применить изменения:
nginx -t systemctl restart nginx.service
Инструкция по установке SSL-сертификата также доступна в официальной документации.
Автоматическая установка SSL-сертификата Let's Encrypt на Bitrix VM 7.2
Установка SSL-сертификата Let's Encrypt выполняется с помощью встроенного меню /root/menu.sh
.
- В первом меню выбираем пункт:
8. Manage web nodes in the pool
- Переходим в управление сертификатами:
3. Certificates configuration
- Для установки Let's Encrypt выбираем соответствущий пункт:
1. Configure Let's encrypt certificate
- Вводим имя сайта (выбираем из таблицы выше):
Enter site name (default): site.ru
- Далее вводим домен сайта, для которого нужно установить сертификат (значения указываются через запятую):
Enter DNS name(s): site.ru, www.site.ru
- Указываем адрес электронной почты администратора:
Enter email for Let's encrypt notifications: admin@site.ru
- Подтверждаем установку:
Please confirm update certificate settings for sites (site.ru) (N|y): Y
После этого все необходимые действия будут произведены автоматически. Через несколько минут можно проверять работу сайта по HTTPS.
Обновление Bitrix VM до версии 7.2 (и старше)
В последней версии виртуального окружения Bitrix VM 7.2 выпущена функция установки Let's Encrypt
и другие важные изменения.
Для обновления Bitrix VM выполняем следующие действия:
- Скачиваем
bitrix-env.sh
с официального репозитория Битрикс:
wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh
- Добавляем скрипту права на исполнение:
chmod +x bitrix-env.sh
- Запускаем обновление:
./bitrix-env.sh
- Когда процесс завершен, заходим в меню окружения новой версии:
./menu.sh Bitrix virtual appliance version 7.3.0
Подключение модулей PHP
Предустановленные модули
По умолчанию в Bitrix VM установлено большое количество различных модулей, но некоторые из них отключены за ненадобностью.
Файлы модулей хранятся в /etc/php.d
с расширением .ini
. Те, что с суффиксом .disabled
— отключены.
Пример подключения cURL
- Проверяем, что модуль отключен:
[root@server php.d] php -m | grep -i curl [root@server php.d]
- Переходим в директорию
/etc/php.d
и ищем тамini-файл
с именемcurl:
[root@server ~] cd /etc/php.d [root@server php.d] ls | grep -i curl 20-curl.ini.disabled
- Активируем модуль, убирая из имени файла суффикс
.disabled:
[root@server php.d] mv 20-curl.ini.disabled 20-curl.ini
- Проверяем, что модуль добавлен:
[root@server php.d] php -m | grep -i curl curl
- Для вступления изменений в силу перезагружаем Apache:
[root@server php.d] systemctl restart httpd
Подключение установленных вручную модулей PHP
Для модуля необходимо создать ini-файл
в каталоге /etc/php.d
, добавлять информацию напрямую в php.ini
не рекомендуется.
Пример установки модуля xmlwritter
- Выполняем установку модуля:
[root@server php.d] yum install php-xmlwriter -y
- Создаем файл
/etc/php.d/20-xmlwriter.ini
с путем модулю. Если библиотека собрана из исходников, а не установлена черезyum
, необходимо указать полный путь до.so
файла:
; Enable xmlwriter extension module extension=xmlwriter.so
- Проверяем, что модуль добавлен:
[root@server php.d] php -m | grep xmlwriter xmlwriter
- Для вступления изменений в силу перезагружаем веб-сервер Apache:
[root@server php.d] systemctl restart httpd