Версия 9.0.3, ноябрь 2024
|
---|
Основные исправления:
Обновление ПО:
Список всех изменений:
|
С помощью специальных ВМ-решений вы можете быстро получить оптимально сконфигурированный сервер, не уступающий по производительности VMBitrix, а по масштабируемости — превосходящий виртуальную машину «1С-Битрикс». Пакеты подготовлены специалистами «1С-Битрикс» и доступны для скачивания и использования.
«1С-Битрикс»: Веб-окружение» — Linux служит для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS Stream 9.
Скачать bitrix-env-9.sh
«1C-Битрикс: Виртуальная машина 9.x» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести свои, уже готовые проекты.
Дистрибутивы VMBitrix доступны для:
Скачать образы.
Amazon EC2 — это веб-сервис, предоставляющий масштабируемые вычислительные мощности и созданный для быстрого и простого разворачивания веб-приложений на площадках (в облаках) Amazon. Специалистами «1С-Битрикс» подготовлены предконфигурированные образы VMBitrix (AMI-образы) для быстрого запуска приложений «1С-Битрикс» в Amazon EC2, которые включают:
Список ami-образов по регионам можно посмотреть здесь.
Работа с файлами в BitrixEnv осуществляется по протоколам SSH / SFTP. Протоколы FTP и SCP по умолчанию не поддерживаются.
Глава предназначена для администраторов и пользователей продуктов «1С-Битрикс», устанавливающих для ознакомления либо переносящих готовые проекты на виртуальную машину VMBitrix. Аналогичным способом можно переносить проекты с удаленного сайта на виртуальную машину, между виртуальными машинами и т.д. В документе рассматриваются процедуры установки всех необходимых приложений для работы продукта на виртуальной машине VMBitrix.
Описание установки ПО виртуализации не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации соответствующего ПО.
Если у вас возникнут вопросы по процессу установки продуктов компании «1С-Битрикс», вы можете обратиться в службу Технической поддержки. Обсуждение работы VMBitrix доступно на специализированном форуме или в группе Виртуальные машины Битрикс социальной сети компании «1С-Битрикс».
/path/to/openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.key
Список изменений в актуальной версии BitrixVM 9.0.x.
Версия 9.0.3, ноябрь 2024
|
---|
Основные исправления:
Обновление ПО:
Список всех изменений:
|
Версия 9.0.2, сентябрь 2024
|
---|
Основные исправления:
|
Версия 9.0.1, сентябрь 2024
|
---|
Обновление ПО:
Основные исправления:
|
Версия 9.0.0, август 2024
|
---|
В этой версии большой пакет изменений:
Обновление ПО:
Софт:
Версии:
RPM список:
Убрано, в сравнении с версией 7.5.x:
|
Оставить обратную связь о виртуальной машине версии 9.0.x можно на форуме.
«1С-Битрикс: Веб-окружение» — Linux (BitrixEnv) будет полезно:
«1С-Битрикс: Веб-окружение» — Linux позволяет быстро и с минимальными затратами развернуть оптимальное окружение для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS Stream 9:
Рассмотрим установку «1С-Битрикс: Веб-окружение» — Linux на оборудовании с уже установленной CentOS Stream 9.
dnf clean all && dnf update
Если на сервере нет утилиты для загрузки файлов wget — установите ее командой dnf install wget
.
Загрузите скрипт «1С-Битрикс: Веб-окружение» — Linux и запустите его командами:
wget http://repo.bitrix.info/dnf/bitrix-env-9.sh && chmod +x bitrix-env-9.sh && ./bitrix-env-9.sh
reboot
:
После перезагрузки сервера снова продолжите установку BitrixEnv:
./bitrix-env-9.sh
/root/menu.sh
Если пул не создан, то открыты только 22, 80 и 443 порты.
Внутри машины могут использоваться дополнительные порты для служб и сервисов, но они не открываются наружу.
Установить окружение можно в «тихом» режиме с указанием ключей. Такой способ позволит после установки окружения VMBitrix сразу создать пул с нужным именем хоста, запустить Push сервер и установить пароль для root MySQL.
Синтаксис команды запуска скрипта со всеми ключами:
./bitrix-env-9.sh [-h] [-s] [-p [-H hostname]] [-P] [-t] [-M mysql_root_password]где:
-s
— Использовать тихий режим установки. Не запрашивать информацию (Use silent mode. don't query for information)-p
— Создать пул после установки окружения (Create management pool after installing bitrix-env package)-H
— Установить имя хоста для создания пула (Set server name for management pool creation procedure)-P
— Запустить Push сервис после установки окружения и создания пула (Run push server after installing bitrix-env package and create management pool)-t
— Использовать тестовую версию окружения Bitrix (Use alpha/test version of Bitrix Environment)-M
— Установить пароль root для MySQL (Set root password for MySQL service)-h
— Вывести список всех ключей запуска скрипта (print help messager)Пример использования:
Задача:
./bitrix-env-9.sh -s -p -H server1 -P -M 'BX123bx@#MYSQL'
-P
) при установке окружения сработает только в связке с созданием пула (-p
). Управление осуществляется с помощью меню:
Для перехода к выполнению любого действия в меню виртуальной машины введите число и нажмите Enter. Например, для просмотра фоновых задач в главном меню наберите 10 (Background pool tasks) и нажмите Enter.
Из меню можно полностью выйти в обычную консоль операционной системы. Для этого необходимо выполнить команду 0. Exit или нажать Ctrl+C.
Чтобы вновь запустить меню VMBitrix, введите в консоли команду:
/root/menu.sh
Работа с файлами в VMBitrix осуществляется по протоколам SSH / SFTP. Протоколы FTP и SCP по умолчанию не поддерживаются.
Загрузите подходящий вам дистрибутив настроенной виртуальной машины BitrixVM.
Начнется процесс загрузки операционной системы, установленной на виртуальной машине. В конце загрузки откроется [dw]окно[/dw][di] [/di] с IP-адресом и текущим паролем суперпользователя root.
Для смены пароля суперпользователя root заполните поля:
root
Аналогично смените пароль пользователя bitrix:
Обновите все пакеты операционной системы и виртуальной машины BitrixVM до последней стабильной версии. Для этого введите команду dnf clean all && dnf update -y
:
Процесс обновления займет продолжительное время. После установки обновлений [dw]введите команду[/dw][di]
[/di] /root/menu.sh
, чтобы перейти в меню виртуальной машины.
Придумайте и укажите имя сервера [dw]master server name[/dw][di] [/di]. После создания пула управления сервером вернитесь в меню, нажав любую кнопку.
В открывшемся меню выберите пункт [dw]1. Install/Update NodeJS RTC service[/dw][di]
[/di], укажите [dw]имя хоста сервера[/dw][di]
[/di] и подтвердите свои действия, введя y
.
Виртуальный сервер готов для дальнейшего использования. Чтобы запустить процесс установки продуктов компании 1С-Битрикс или открыть уже установленный сайт, перейдите в браузере по пути, указанному в поле bitrix url.
После выполнения всех настроек не забудьте в целях безопасности выйти из учетной записи root:
Чтобы выполнить любое действие меню виртуальной машины, введите число и нажмите Enter. Например, для настройки локального виртуального сервера наберите в строке 2 (Configure localhost settings) и нажмите Enter.
Чтобы вернуться из командной строки (если нажали 0. Exit) обратно в меню виртуальной машины, введите в консоли команду:
/root/menu.sh
Если при работе с BitrixVM возникли ошибки работы мастеров, логи можно просмотреть в папке /opt/webdir/temp/
.
Если вы запускаете несколько хостов в одной BitrixVM на локальном компьютере или в пределах вашей локальной сети, можно указать для этих сайтов вместо IP произвольные домены. Для этого предварительно пропишите их в файле hosts операционной системы или на сервере DHCP вашей сети. Тогда вы сможете обращаться к сайтам по доменным именам, но только в пределах вашего компьютера или вашей локальной сети.
В главе рассказываем как установить или перенести продукты «1С-Битрикс».
Для установки продукта «1С-Битрикс»:
Пример: как разместить скрипт с помощью программы WinSCP
|
---|
Подключиться по SFTP протоколу можно с помощью программы WinSCP. Заполните данные для подключения:
Нажмите «Войти» для подключения. Теперь вы увидите окно программы, разделенное на 2 части. Слева — файлы вашего ПК, а справа — файлы виртуальной машины. В левой части откройте папку, в которую вы скачали скрипт установки (обычно, это «Загрузки»). А в правой части откройте папку /home/bitrix/www/. Cкопируйте bitrixsetup.php c ПК в корневую папку сайта. |
cd /home/bitrix/www/ // переходим в корневую папку сайта wget https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php // скачиваем скрипт chown bitrix:bitrix bitrixsetup.php // меняем владельца файла на пользователя bitrix
cd /home/bitrix/www/ // переходим в корневую папку сайта wget https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php // скачиваем скрипт
Выбирайте интересующий вас продукт. После загрузки запустится мастер установки продукта.
Подробную информацию о всех шагах мастера вы найдете в учебном курсе Установка и настройка:
Что должно быть готово перед переносом?
Для переноса сайта с хостинга (облака) или локального сервера на виртуальную среду BitrixVM или BitrixEnv необходимы:
После успешного создания, бекап сайта будет доступен на странице [dw]Список резервных копий[/dw][di][/di] (Настройки > Инструменты > Список резервных копий) .
Воспользуйтесь командой [dw]Получить ссылку для переноса[/dw][di][/di] в меню действий (ссылка доступна только для локально размещенной копии) и в появившемся окне скопируйте её в буфер обмена:
Также можно скачать архив сайта на локальный компьютер с помощью пункта меню Скачать.
В адресной строке браузера введите http://адрес_виртуальной_машины/ (домен или ip-адрес из [dw]bitrix url[/dw][di][/di]).
cd /home/bitrix/www/ // переходим в корневую папку сайта wget https://www.1c-bitrix.ru/download/scripts/restore.php // скачиваем скрипт chown bitrix:bitrix restore.php // меняем владельца файла на пользователя bitrix
cd /home/bitrix/www/ // переходим в корневую папку сайта wget https://www.1c-bitrix.ru/download/scripts/restore.php // скачиваем скрипт
Откроется страница с инструкцией как подготовить архив и ссылкой на документацию:
Настройки подключения к MySQL по умолчанию в BitrixVM/BitrixEnv берутся из /home/bitrix/www/bitrix/php_interface/dbconn.php
.
Можно указать собственные параметры подключения к MySQL. В этом случае необходимо выбрать опцию Создать базу данных, если не существует.
После переноса продукта «1C-Битрикс» с помощью скрипта restore.php:
Возможные проблемы и их решение |
При установке BitrixVM могут возникать ошибки, связанные с особенностями вашего ПК или с дистрибутивом.
Ниже список типовых проблем и способы их решения:
Не нашли свою проблему в списке? Переустановка часто помогает: удалите виртуальную машину, затем снова ее установите и скачайте дистрибутив продукта.
Программа для виртуальных машин (например, VMWare или VirtualBox) не поддерживает оборудование компьютера и выдает ошибку о несовместимости с процессором «Unsupported CPU detected. The host CPU does not support the necessary hardware requirements».
Как решить:
При запуске виртуальной машины появляется черный экран и сразу пропадает, а BitrixVM не стартует. Или появляется ошибка включающая слова [dw]VT-x, AMD-V, virtualization[/dw][di]Формулировка может быть вида «This host does not support "Intel EPT" hardware assisted MMU virtualization» или «This host supports Intel VT-x, but Intel VT-x is disabled».[/di].
Как решить:
Вы запускаете виртуальную машину и появляются ошибки, связанные с адаптером (adapter). Или сайт не открывается по IP и отображает сообщение «Не удается получить доступ к сайту».
Как решить:
Поле [dw]bitrix url[/dw][di][/di] отсутствует и IP4 имеет статус undefined.
Как решить:
При попытке открыть сайт по [dw]bitrix url[/dw][di][/di] после установки BitrixVM появляется ошибка «[dw]502 Bad Gateway/Bitrix Environment[/dw][di][/di]» или сообщение о том, что «Время ожидания ответа истекло».
Как решить:
Во время скачивания дистрибутива с сервера:
Как решить:
Процесс скачивания дистрибутива не быстрый и иногда файл скачивается с ошибками. Это может проявиться по-разному: ошибками в мастере установки или символами �. Пример пользователя:
Как решить: удалите виртуальную машину, вновь установите её и скачайте дистрибутив продукта.
Разработка виртуальной машины — процесс долгий и возможны ситуации, когда версии PHP или MySQL отстают от требований дистрибутива. В этом случае мастер установки обязательно подскажет вам, что их нужно обновить:
Как решить: обновите PHP и MySQL через меню BitrixVM. Подробно об этом написано в уроке 6. Обновление PHP и MySQL (6. Update PHP and MySQL).
Для начала работы с сервисами нужно создать и настроить пул сервера. Для этого нужно выбрать пункт главного меню 1. Create Management pool of server и ввести название сервера в данном пуле.
Мастер создания пула откроет все необходимые порты в CentOS для корректной работы сервисов продуктов «1С-Битрикс»:
После создания пула в основном меню добавятся новые пункты в главном меню:
Перезагрузка хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage servers in the pool > 1. Reboot host.
Задайте имя хоста (в данном примере — bx1) и согласитесь на перезапуск сервера:
С помощью менеджера пула можно удаленно обновлять Веб-окружение и компоненты системы на хосте.
/opt/webdir/temp
.Смена пароля для пользователя bitrix осуществляется через пункт меню 1. Manage servers in the pool > 3. Change 'bitrix' user password on host.
Будет выдан запрос имени хоста, на котором нужно сменить старый пароль пользователя bitrix, указать новый и дать согласие на смену:
passwd
.Настройка таймзоны – очень важный параметр, который обязательно нужно проверить и при необходимости настроить правильно. Параметр влияет на синхронизацию с 1С, календари, заказы и многое другое, где требуется дата и время.
Дата и время на сервере – это не одна конкретная дата и время, а фактически три различных времени:
Каждое из них – со своим часовым поясом.
Europe/Moscow (MSK, UTC+03)
. Смена таймзоны происходит через пункт меню веб-окружения 1. Manage servers in the pool > 4. Configure pool timezone, и меняет дату и время в трёх местах сразу. Это очень важный момент, чтобы все три места работали с одинаковыми параметрами.
Удаление конфигурации пула осуществляется с помощью меню 1. Manage servers in the pool > 5. Remove pool configuration. После подтверждения конфигурация пула будет удалена:
Меню же вернется к своему первоначальному состоянию:
/opt/webdir/temp
.Обновлять версии PHP и MySQL необходимо, исходя из рекомендуемых системных требований продуктов «1С-Битрикс».
В процессе обновления VMBitrix они автоматически не обновляются. Обновить их нужно в ручном режиме с помощью соответствующего пункта меню виртуальной машины 1. Manage servers in the pool - 6. Update PHP and MySQL.
Укажите для обновления машину с конкретным именем хоста hostname:
Далее можно выбрать варианты, что именно обновить. В версии BitrixVM 9.0.0 доступно обновление версий только для PHP.
Для обновления версии выберите подходящий пункт Update PHP to version х.х:
Аналогичным способом можно и понизить версию PHP, выбрав нужную с помощью пункта меню Downgrade PHP to version х.х.
/opt/webdir/temp
.Чтобы задать имя хоста локального сервера, нужно перейти в главном меню 2. Configure localhost settings - 1. Configure hostname.
Здесь будет указано текущее имя сервера. Например, current: server1
, где server1 — имя сервера.
Введите новое название сервера (Enter hostname), например, bx1 и подтвердите изменения:
Будет запущена задача на изменение. После чего системе будет присвоено новое имя:
При первом старте BitrixVM получение IP-адреса сервером происходит автоматически, если в сети есть настроенный DHCP-сервер.
Чтобы с помощью него сменить или обновить IP-адрес локального сервера, нужно:
Для задания IP-адреса в ручном режиме необходимо:
Чтобы перезапустить сервер виртуальной машины BitrixVM, нужно перейти в главном меню 2. Configure localhost settings - 4. Reboot server.
Далее согласиться на перезапуск сервера:
Чтобы выключить сервер виртуальной машины BitrixVM, нужно перейти в главном меню 2. Configure localhost settings - 5. Shutdown server.
Далее согласиться на остановку сервера:
Для обновления локальной виртуальной машины необходимо выбрать в административном меню пункт 2. Configure localhost settings - 6. Update server и согласиться на обновление.
Скрипт автоматически проверит обновления компонентов и произведет их установку:
Этот пункт меню запускает обновление компонентов BitrixVM/BitrixEnv и CentOS. Если вы хотите обновить только пакеты BitrixVM/BitrixEnv, то целесообразно производить обновление пакетов на хосте.
/opt/webdir/temp
.Чтобы обновить настройки для всех MySQL-серверов, нужно перейти в главном меню 3. Configure MySQL service for the pool - 1. Update settings for all MySQL servers:
Опция обновляет конфигурацию одного или нескольких MySQL-серверов в пуле (если такое имеется) и приводит их к дефолтным настройкам для виртуальной машины.
/opt/webdir/temp
.Если вам понадобилось сменить пароль root MySQL-сервера, нужно перейти в главном меню 3. Configure MySQL service for the pool - 2.Change password for MySQL root user.
Далее выбрать нужный сервер (имя хоста), согласиться на изменение и ввести новый пароль.
Остановить или запустить MySQL-сервер можно в главном меню 3. Configure MySQL service for the pool - 3. Stop/Start MySQL service on the server .
Далее выбрать нужный сервер (имя хоста), согласиться на остановку или старт:
Продукты «1С-Битрикс» позволяют использовать пул серверов memcached для работы с кешем данных.
Это обеспечивает:
Для создания memcached сервера нужно:
/opt/webdir/temp
.Чтобы обновить настройки memcached-сервера, нужно перейти в главном меню 4. Configure memcached servers for the pool > 2. Update settings for all memcached servers:
Эта опция запускает проверку текущей конфигурации memcached-сервера в пуле.
/opt/webdir/temp
.Для удаления memcached сервера необходимо:
/opt/webdir/temp
.Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.
Для установки Sphinx на сервер необходимо:
server1
.
/opt/webdir/temp
.Ручная настройка поискового механизма Sphinx описана в учебном курсе Администратор. Базовый.
Чтобы обновить настройки Sphinx-инстанса, нужно перейти в главном меню 5. Configure Sphinx service for the pool > 2. Update sphinx instance on the server (add index):
server1
.
Опция запускает проверку текущей конфигурации Sphinx-инстанса и принудительную переиндексацию.
/opt/webdir/temp
.Ручная настройка поискового механизма Sphinx описана в учебном курсе Администратор. Базовый.
Для удаления Sphinx-инстанса с сервера необходимо:
server1
.
В результате выполнения задачи виртуальная машина удалит:
/opt/webdir/temp
.Для работы Push&Pull подключите модуль NodeJS RTC:
Y
:
В новых версиях виртуальной машины могут быть более свежие версии NodeJS-PushServer. Чтобы обновить Push сервер:
/opt/webdir/temp
.Чтобы удалить сервис NodeJS RTC:
y
и подождите пока задача по удалению Push&Pull сервиса будет выполнена:
/opt/webdir/temp
.Сервис Конвертер файлов:
Для работы роли необходимо, чтобы в «1С-Битрикс24» были установлены модули:
Настраивать модули после установки не нужно. Роль сама настроит необходимые опции для вашего сайта после активации.
Чтобы настроить роль выполните следующие шаги:
Если у вас нет подходящих сайтов для роли, отобразится сообщение «No suitable sites were found to configure the transformer service».
default
.
Y
.
configure_transformer_***
, которая:
/opt/webdir/temp
.Чтобы удалить роль Конвертер файлов, нужно:
remove_transformer_***
, которая:
/opt/webdir/temp
.Мастер создания дополнительных сайтов, позволяет развернуть на одной виртуальной машине несколько сайтов, как на независимых установках «1С-Битрикс», так и в рамках многосайтовости.
Для добавления дополнительного сайта необходимо:
/etc/hosts
на виртуальной машине, а также на всех компьютерах, с которых будет осуществляться доступ к данному сайту. y
(для ядра типа kernel и ext_kernel)./home/bitrix/ext_www/{название_хоста}
, в которой будут:
Для установки или восстановления сайта необходимо скачать соответствующий скрипт, положить в корневую папку созданного сайта и запустить:
Если был выбран вариант ядра ext_kernel и установлено ядро в /home/bitrix/ext_www/{название_хоста}
, то в списке сайтов виртуальной машины данное ядро не появится до тех пор, пока не будет создан хотя бы один сайт (link) на это ядро.
/opt/webdir/temp
.Для удаления записи о дополнительном сайте необходимо в административном меню выбрать пункт 8. Configure pool sites > 2. Delete a site и выбрать директорию удаляемого сайта (Enter site directory):
/opt/webdir/temp
.По умолчанию в виртуальной машине cron уже включен. Для сайта по умолчанию настройки Cron хранятся в файле /etc/crontab
. Для сайтов, созданных из меню, — в /etc/cron.d/bx_dbName
, где dbName — имя базы данных сайта.
Если по каким-либо причинам нужно отключить эту службу или включить заново, то для этого необходимо:
Информацию о том, как настроить в продуктах «1С-Битрикс» обработку всех агентов на cron, можно прочитать здесь.
Для настройки SMTP-клиента выполните следующее:
y
и введите логин и пароль для доступа к SMTP-серверу, в противном случае — n
.auto
, plain
, scram-sha-1
, cram-md5
, gssapi
, external
, digest-md5
, login
, ntlm
(например для yandex.ru достаточно auto
, а для mail.ru - plain
).y
, в противном случае — n
.Дождаться пока задача по настройке SMTP будет закончена.
В логах msmtp можно всегда посмотреть ошибки отправки писем. Находятся логи в директории /home/bitrix/.
Для каждого сайта свой лог msmtp, в названии лога будет указано имя сайта — msmtp_{SiteName}.log. Например для сайта по умолчанию лог будет иметь имя msmtp_default.log.
/opt/webdir/temp
.Здесь представлены настройки некоторых почтовых сервисов.
Доступно подключение как через обычный пароль, так и через пароль приложения (рекомендуемый).
Доступно подключение как через обычный пароль (с подтверждением аккаунта), так и через пароль приложения (рекомендуемый).
Доступно подключение как через обычный пароль, так и через пароль приложения (рекомендуемый).
Дополнительно
Настройки для других smtp сервисов можно взять по ссылкам:
В логах msmtp можно всегда посмотреть ошибки отправки писем. Находятся логи в директории /home/bitrix/.
Для каждого сайта свой лог msmtp, в названии лога будет указано имя сайта – msmtp_{SiteName}.log. Например для сайта по умолчанию лог будет иметь имя msmtp_default.log.
Например, у Яндекса и Google по умолчанию лимит на отправку – 500 писем в сутки. Если в письме несколько получателей, то письмо каждому из них считается отдельным письмом. Этот ежесуточный лимит может изменяться на основании их собственных алгоритмов подсчета благонадежности пользователя.
По умолчанию в виртуальной машине включена поддержка доступа к сайтам через протоколы HTTP и HTTPS.
Если необходимо оставить доступ к сайту только по защищенному протоколу HTTPS, то для этого нужно:
Аналогичным способом осуществляется возврат доступа к сайту по протоколу HTTP:
/opt/webdir/temp
.Управление настройками композитного кеша для NGINX находятся в меню виртуальной машины: 8. Configure pool sites > 6. Configure nginx to use composite cache:
Эта настройка выполняет следующие действия:
/etc/nginx/bx/maps
. Например, включен или выключен композит для https-запросов.Для включения или обновления настроек:
/opt/webdir/bin/bx-sites -o json -a composite --enable --site=default
Для отключения настроек:
/opt/webdir/bin/bx-sites -o json -a composite --disable --site=default
/opt/webdir/temp
.После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.
Заголовки при использовании Композита в BitrixVM могут быть такие:
X-Bitrix-Composite:Nginx (file)
- отдача страниц - NGINX, хранение - файлы;X-Bitrix-Composite:Nginx (memcached)
- отдача страниц - NGINX, хранение - memcached;X-Bitrix-Composite:Cache (200)
- отдача страниц - PHP, хранение - файлы.Условия разделены на две группы:
Настройки определяются в файле: /etc/nginx/bx/maps/composite_settings.conf
. NGINX не использует технологию Композитный сайт, если соблюдается хотя бы одно условие:
BX_ACTION_TYPE
,BX_AJAX
,ncc
,bxajaxid
,sessid
,Определение условий сделано через http_ngx_map_module:
$http_bx_action_type
содержит данные, то композитный ключ $not_bx_action_type
будет содержать 0.
map $http_bx_action_type $not_bx_action_type { default "0"; '' "1"; }
# test all global conditions map "${not_bx_action_type}${not_bx_ajax}${is_get}${non_arg_ncc}${non_arg_bxajaxid}${non_arg_sessid}${is_modern}${is_good_uri}${non_cookie_ncc}${is_storedAuth}" $is_global_composite { default "1"; ~0 "0"; }
Если хоть одно из условий содержало 0, то итоговое значение переменной $is_global_composite
будет равно 0.
Персональные проверки NGINX для сайта, определяются в момент включения или обновления композита из консольного меню. Для таких настроек создается и обновляется файл в каталоге: /etc/nginx/bx/maps/
. Имя файла имеет специальный формат: <ID>.cache_<SITE_NAME>.conf, где:
NGINX не будет использовать композитный кеш, если выполняется хотя бы одно из условий:
~EXCLUDE_PARAMS
в .config.php),DOMAINS
в .config.php),~INCLUDE_MASK
в .config.php),~EXCLUDE_MASK
в .config.php).Определение условий сделано через http_ngx_map_module:
INCLUDE_MASK
для запроса, будет создана следующая структура:
# test include uri for site map $uri $is_include_uri_02 { default "0"; "~*^.*?\.php$" "1"; "~*^.*?/$" "1"; }
Если переменная $uri
содержит одно из следующих регулярных выражений, то $is_include_uri_02
будет содержать 1, в остальных случая переменная будет равна 0.
# variable $is_site_composite_02 used in site config map "${config_domain_02}${is_include_uri_02}${not_exclude_uri_02}${not_https_schema_02}" $is_site_composite_02 { default "1"; ~0 "0"; }Если хоть одна из переменных получит значение 0, переменная
$is_site_composite_02
будет содержать 0, в остальных случаях 1.Ключ - это файл, который NGINX будет искать в композитном кеше (ключ для memcached хранилища, файл в случае хранения на файлах). Он нужен для того, чтобы привести запрос на сайт (uri) к универсальному виду.
Данный ключ определяется в глобальных настройках в файле /etc/nginx/bx/maps/composite_settings.conf
. Так же, как для условий, используется модуль nginx ngx_map_module:
map $uri $composite_key { default $uri; ~^(?P.+)/$ $non_slash; ~^(?P .+)/index.php$ $non_index; ~^(?P .+)/index.html$ $non_index; }
Действуют следующие правила:
Проверки для включения технологии на стороне NGINX используются в конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled
. В случае стандартной конфигурации, файл обычно содержит следующие настройки:
# Include parameters common to all websites include bx/conf/bitrix.conf;
При включенной технологии Композитный сайт, настройки зависят от выбранного хранилища.
Указанные в этом подразделе настройки производить не нужно. Здесь для ознакомления дано описание того, что происходит при включении настроек NGINX на технологию Композитный сайт в BitrixVM.
/bitrix/html_pages/.config.php
опция STORAGE содержит значение files
./etc/nginx/bx/site_enabled
, должно быть прописано:
# определяем ключ композита и файл на диске set $composite_cache "bitrix/html_pages/${host}${composite_key}/index@${args}.html"; set $composite_file "${docroot}/${composite_cache}"; # файл, который определяет включен ли композит на сайте или нет set $composite_enabled "${docroot}/bitrix/html_pages/.enabled"; # переменная, которая используется для композитной проверки set $use_composite_cache ""; # если переменная глобальных условий содержит 1, добавляем признак в use_composite_cache if ($is_global_composite = 1) {set $use_composite_cache "A";} # если переменная персональных условий сайта содержит 1, добавляем признак use_composite_cache if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";} # Подключаем конфиг, который содержит наши стандартные настройки, без location по умолчанию include bx/conf/bitrix_general.conf; # Основной location location / { # если файл включения композита существует, добавляем признак в use_composite_cache if (-f $composite_enabled) { set $use_composite_cache "${use_composite_cache}C"; } # если файл кеша существует, добавляем признак в use_composite_cache if (-f $composite_file) { set $use_composite_cache "${use_composite_cache}D"; } # если все четыре условия выполняются, отправляем запрос в location c кешем if ($use_composite_cache = "ABCD") { rewrite .* /$composite_cache last; } # по дефолту отправляем в apache proxy_pass $proxyserver; }
/bitrix/html_pages/.config.php
опция STORAGE содержит значение memcached
или memcached_cluster
.
/etc/nginx/bx/site_enabled
, должно быть прописано:
# устанавливаем параметры подключения для memcached memcached_connect_timeout 1s; memcached_read_timeout 1s; memcached_send_timeout 1s; memcached_gzip_flag 65536; # ключ поиска set $memcached_key "/${host}${composite_key}/index@${args}.html"; # включен ли композитный кеш set $composite_enabled "${docroot}/bitrix/html_pages/.enabled"; # переменная, которая используется для проверки работы с композитом при запросе пользователя set $use_composite_cache ""; # учитываем глобальные условия if ($is_global_composite = 1) {set $use_composite_cache "A";} # учитываем персональные условия if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";} # подключаем общие параметры для bitrix окружения, без использования default location include bx/conf/bitrix_general.conf; # основной location location / { # если данные не найдены в кеше проксируем запрос на apache error_page 404 405 412 502 504 = @apache; # учитываем наличие .enabled файла if (-f $composite_enabled) { set $use_composite_cache "${use_composite_cache}C"; } default_type text/html; # если все совпало, отправляем запрос в memcached if ($use_composite_cache = "ABC") { add_header X-Bitrix-Composite "Nginx (memcached)"; memcached_pass localhost:11211; } proxy_pass $proxyserver; } location @apache { proxy_pass $proxyserver; }
После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.
Заголовки при использовании Композита в BitrixVM могут быть такие:
X-Bitrix-Composite:Nginx (file)
- отдача страниц - NGINX, хранение - файлы;X-Bitrix-Composite:Nginx (memcached)
- отдача страниц - NGINX, хранение - memcached;X-Bitrix-Composite:Cache (200)
- отдача страниц - PHP, хранение - файлы.Для работы роли используется пакет bx-mod_auth_ntlm_winbind версии 0.0.0. Пакет содержит модуль mod_auth_ntlm_winbind для Apache.
Настройки NTLM выполняются в разделе меню 8. Configure pool sites > 7. Configure NTLM auth for sites.
Дополнительную информацию о настройке NTLM авторизации вы найдете в учебном курсе Администратор. Модули.
Откройте административный раздел сайта. Обновите модуль AD/LDAP интеграция до версии 24.100.0.
Перейдите в раздел Настройки > AD/LDAP и добавьте новое подключение к AD серверу. В настройках отметьте Активен и укажите:
Нажмите кнопку Проверить подключение. Если подключение к AD серверу успешно установлено, продолжите настройки. Заполните:
Откройте меню виртуальной машины и перейдите в 8. Configure pool sites > 7. Configure NTLM auth for sites.
Запустите мастер 1. Configure NTLM settings for the site и укажите:
server1
TEST22
TEST22.LOCAL
DC.TEST22.LOCAL
AdministratorX / ************
b24.vmx37.vms.local
BitrixVM запустит задачу ntlm_create_***
, которая:
Дополнительно настраивать модуль AD/LDAP в административной части сайта не нужно. Мастер:
/opt/webdir/temp
.Механизм NTLM авторизации работает следующим образом:
8890
для протокола http8891
для протокола https80
для протокола http443
для протокола httpsРабота по https для SSL Let's Encrypt сертификатов или для самоподписанных SSL сертификатов поддерживается в случаях:
Возможность использовать существующие настройки NTLM для сайта появится в меню виртуальной машины, если NTLM авторизация уже включена и настроена хотя бы для одного сайта.
На следующем сайте нужно настроить подключение к AD в административном разделе. Инструкция в уроке 1. Настроить NTLM-авторизацию для сайта.
Когда подключение готово, вернитесь в меню машины в раздел 8. Configure pool sites > 7. Configure NTLM auth for sites. Чтобы подключить сайт к настроенной NTLM авторизации выберите пункт меню 2. Use existing NTLM settings for the site.
Укажите имя сайта.
BitrixVM запустит задачу ntlm_update_***
. Она добавит настройки NTLM авторизации в модуле LDAP для указанного сайта.
/opt/webdir/temp
.Как работает механизм авторизации, описано в уроке 1. Настроить NTLM-авторизацию для сайта.
Если NTLM авторизация больше не нужна, ее можно удалить через меню виртуальной машины.
Перейдите в раздел меню 8. Configure pool sites > 7. Configure NTLM auth for sites. Выберите пункт 3. Delete NTLM settings. Он запустит мастер, который удалит настройки NTLM для всех сайтов и для машины.
Мастер запросит те же данные, которые указывали при подключении NTLM, за исключением имени сайта:
server1
TEST22
TEST22.LOCAL
DC.TEST22.LOCAL
AdministratorX / ************
BitrixVM запустит задачу ntlm_delete_***
. Задача выполнит следующее:
После выполнения задачи на все сайты вернется обычный механизм авторизации.
Если по каким-либо причинам на сайтах появились серьезные ошибки: отсутствие модулей на сайте или нет подключения к БД (не получается подключиться с данными настроек сайта), то в меню виртуальной машины появляется пункт меню 8. Configure pool sites > 8. Show sites with errors.
Выбрав этот пункт меню, отобразится список сайтов с кратким описанием ошибки (в данном примере у двух сайтов нет соединения с базой данных):
В разделе 9. Manage pool web servers > 1. Manage PHP extensions можно включить дополнительные модули PHP, которые могут понадобится в продуктах «1C-Битрикс».
На данный момент можно включить:
После выбора расширения, запускается задача на его включение или отключение.
/opt/webdir/temp
.Начиная с версии BitrixVM 7.2.0, добавилась возможность подключения SSL-сертификатов как бесплатного Let's Encrypt, так и своего собственного, выпущенного любым авторизованным центром сертификации.
Центр сертификации Let’s Encrypt выдает SSL-сертификаты с проверкой домена (DV, Domain-validated certificate) бесплатно, срок их действия – 90 дней. Они начального уровня и подтверждают домен, а также шифруют и защищают данные при передаче с помощью протокола https. Установить его себе на сайт могут как физические лица, так и организации. Подойдут для небольших сайтов и маленьких проектов, когда нет необходимости в большом доверии со стороны клиентов и посетителей сайта. В BitrixVM SSL-сертификаты Let’s Encrypt выпускаются в течение нескольких минут, а продление производится автоматически, примерно за месяц до истечения срока действия.
SSL-сертификаты, предполагающие более высокое доверие к вашим продуктам, компании и сервисам, выпускают центры сертификации. При этом проводится более тщательная проверка:
SSL-сертификаты с проверкой компании (OV, Organization validation) – кроме защиты информации гарантируется принадлежность домена конкретной организации. Выдается только юридическим лицам с подтвержденным номером телефона. На сайте с таким сертификатом посетитель может найти информацию об организации-владельце сайта, обычно, просто щелкнув по иконке замочка.
SSL-сертификаты с расширенной проверкой (EV, Extended validation) – то же, что и OV, только проверяется уже налоговая и коммерческая деятельность компании, причем более тщательно. На сайте рядом с замочком появляется название компании. Чаще всего встречаются у банков и онлайн-систем с большим количеством посетителей.
Собственные SSL-сертификаты, выпущенные авторизованными центрами, нужно выпускать и продлевать самостоятельно. В BitrixVM их нужно подключать каждый раз, когда происходит их перевыпуск в центре сертификации.
Для создания SSL-сертификата Let’s Encrypt нужно:
и подтвердить ввод:
Проверить выпущенный сертификат можно в браузере. Перейдите на ваш сайт по протоколу https. У валидного сертификата будет замочек:
Срок действия – 90 дней. Перевыпуск происходит автоматически за 20 дней до окончания срока действия.
В версии BitrixVM 9.0.0 проверка сертификатов автоматически производится еженедельно в субботу в 2 часа ночи по cron-у.
Если вам нужно вручную обновить сертификат, запустите его получение для существующего домена. Система проверит и при необходимости обновит сертификаты.
Также вы можете вручную командой:
/home/bitrix/dehydrated/dehydrated -c
Система проверит сроки действия и при необходимости запустит обновление.
Лог обновления можно посмотреть по пути: /home/bitrix/dehydrated_update.log.
Подробнее о лимитах Let’s Encrypt читайте в статье Rate Limits.
Если у вас есть свой сертификат, выпущенный любым авторизованным центром, то можно также его подключить к сайту в BitrixVM.
У вас должны быть следующие файлы: приватный ключ (private key), цепочка сертификатов (certificate chain) и сам сертификат (certificate). Цепочка сертификатов может быть указана внутри файла сертификата, а не отдельным файлом.
Требования к импортируемым сертификатам:
/etc/nginx/certs
.Для подключения своего SSL-сертификата нужно:
Пути получились такие:
/home/bitrix/ssl/example.org_privkey.pem
/home/bitrix/ssl/example.org_cert.pem
/home/bitrix/ssl/example.org_chain.pem
Проверить выпущенный сертификат можно в браузере. Перейдите на ваш сайт по протоколу https. У валидного сертификата будет замочек:
Поддерживается ввод нескольких сайтов, через запятую. Следить за сроком действия своего сертификата вы должны сами. Перевыпуск осуществляется также владельцем сайта. После перевыпуска нового сертификата нужно будет заново его импортировать.
Если что-то пошло не так или вы хотите восстановить самоподписанный сертификат, который создается при первом запуске BitrixVM, то для этого нужно:
Все изменения в виртуальной машине – настройки, запуск каких-либо служб, синхронизация и др. осуществляются с помощью скриптов – задач.
Просмотреть историю, а также выполняемые в данный момент задачи, можно с помощью пункта меню 10. Background pool tasks:
Просмотреть запущенную в данный момент задачу можно с помощью пункта меню 10. Background pool tasks > 1. View running tasks:
Для её остановки нужно перейти в пункт меню 10. Background pool tasks > 1. View running tasks > 1. Stop task и ввести идентификатор задачи:
Чтобы очистить историю нужно выбрать пункт меню 10. Background pool tasks > 2. Delete history.
Далее указать:
После этого будут выведены все задачи, удовлетворяющие заданному интервалу и фильтру, и запрошено подтверждение на очистку истории:
/opt/webdir/temp
.При запуске виртуальной машины BitrixVM или физического сервера с установленным пакетом BitrixEnv сервисом bvat автоматически настраиваются основные параметры Apache, PHP, MySQL и nginx в зависимости от количества доступной памяти. Это позволяет обеспечивать оптимальные настройки сервера.
Но в ряде случаев возникает необходимость изменения некоторых параметров без отключения сервиса bvat. Для внесения таких изменений в настройки сервера предусмотрены специальные конфигурационные файлы, позволяющие переопределять параметры, устанавливаемые сервисом bvat. Они имеют свое название и хранятся в директориях:
MySQL: /etc/mysql/conf.d/z_bx_custom.cnf
Apache: /etc/httpd/bx/custom/z_bx_custom.conf
/etc/nginx/bx/site_ext_enabled/
- конфигурационные файлы своих дополнительных сайтов для всего сервера (например, bx_ext.conf, bx_ext_custom1.conf, ext_custom_site.com.conf и т.п) /etc/nginx/bx/settings/
- конфигурационные файлы настроек для уровня http всего сервера (например, z_bx_custom.conf, z_bx_custom1.conf и т.п)/etc/nginx/bx/site_settings/<SITE_NAME>/
- персональные настройки конкретного сайта, начиная с версии BitrixVM 7.5 или бета версии 7.4.10 (например, /etc/nginx/bx/site_settings/site.com/myconfig.conf).PHP: /etc/php.d/z_bx_custom.ini
В случае, если в этих директориях нет конфигурационных файлов, то их можно создать самостоятельно.
Пример изменения параметров в файле z_bx_custom.cnf
|
---|
Пример из практики: У пользователя CRM Битрикс24 возникла ошибка при попытке конвертировать лида в сделку с большим количеством пользовательских полей. Сообщение об ошибке выдавалось такое: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. Проблема решилась и конвертация заработала корректно после внесения в файл /etc/mysql/conf.d/z_bx_custom.cnf таких настроек: innodb_file_format = Barracuda innodb_file_per_table = ON innodb_strict_mode = OFF |
При использование виртуальной машины BitrixVM или ami-образа BitrixVM, со временем может возникнуть проблема нехватки свободного места.
Решить эту проблему можно двумя способами:
Так как основной объем дискового пространства потребляется контентом сайтов и их резервными копиями, расположенными в /home/bitrix
, а также БД, расположенной в /var/lib/mysql
, то на отдельные диски следует выносить именно эти разделы.
Рассмотрим данную задачу на примере переноса на отдельный диск папки /home
с контентом сайтов и их резервными копиями.
fdisk -l
/dev/sdb
:
fdisk /dev/sdb
И командой n создаем новый раздел:
Partition number (1-4): 1
;Для сохранения изменений на диск и выхода из fdisk введите команду w.
После сохранения таблицы разделов, форматируем новый раздел и переносим на него информацию из /home
:
mkfs.ext4 /dev/sdb1 mount /dev/sdb1 /mnt systemctl stop httpd.service systemctl stop nginx.service mv -f /home/* /mnt umount /mnt
blkid /dev/sda1: UUID="99066558-ba04-465c-9962-e827aa2928ec" TYPE="ext4" /dev/sda2: UUID="8ea38ef9-1ee5-423b-a013-15fd603a678e" TYPE="swap" /dev/sda3: UUID="08ec5c65-8fd8-47ac-a998-d81195c8f964" TYPE="ext4" /dev/sdb1: UUID="b2e58731-b621-4bd5-909a-afe3bb5dd8a1" TYPE="ext4"
и добавляем запись (в данном примере: UUID=b2e58731-b621-4bd5-909a-afe3bb5dd8a1
) о нем в /etc/fstab
(вместо UUID можно также использовать имя устройства /dev/sdb
):
Остается только примонтировать новый диск и запустить остановленные ранее службы:
mount /home systemctl start httpd.service systemctl start nginx.service
Добавление дисков в других средах виртуализации или непосредственно на физическом сервере проходит аналогично.
/home/bitrix/www
вручную, то убедитесь, чтобы она имела права bitrix:bitrix
- 755 для директории и 644 - для файлов.
Чтобы увеличить диск, выполните четыре шага:
Измените размер системного диска в программе виртуализации: VirtualBox, VMWare или HyperV. Подробности смотрите в документации соответствующей программы.
Пример для VirtualBox:
После того как вы увеличили размер системного диска в плеере, запустите виртуальную машину BitrixVM. Авторизуйтесь под пользователем root и перейдите в режим командной строки. Для этого выберите пункт меню 0. Exit.
Проверить текущие параметры диска можно с помощью команды.
df -Th
Размер диска не изменился. Раздел на диске /dev/sda1 размером 47 Гб, остальное место из текущих 50 Гб занимают временные tmpfs.
swapon --show
Swap может быть как в виде отдельного раздела, так и в виде файла. В нашем случае это partition — раздел.
swapoff -v /dev/sda2
Swap отключен, но он остался в таблице разделов /etc/fstab. Это можно проверить командой.
cat /etc/fstab
mcedit /etc/fstab
Закомментируйте строку swap символом #
. Должно получиться так: # UUID=b2028b1a-d0d1-463e-8b6e-31e40af16322 none swap defaults 0 0
.
Закройте редактор mcedit клавишей F10. Редактор уточнит, сохранить ли изменения — выберите пункт Yes.
fdisk -c -u -l
Здесь sda — название диска, sda1 — первый раздел, sda2 — второй раздел swap. Перейдите в утилиту для управления разделами жесткого диска fdisk и откройте /dev/sda.
fdisk -c -u /dev/sda
Поочередно введите команды:
d
— удалить2
— раздел 2w
— записать измененияmcedit /etc/default/grub
В строке GRUB_CMDLINE_LUNUX удалите resume=UUID
. Результат должен быть таким:
Закройте редактор mcedit клавишей F10, сохранив изменения.
grub2-mkconfig -o /etc/grub2.cfg
Сгенерирован новый операционный файл.
dracut --regenerate-all --force
Дождитесь завершения процесса регенерации. Когда он закончится, снова появится строка ввода команд.
Просмотрите информацию обо всех имеющихся версиях ядра.
grubby --info=ALL
Удалите идентификатор swap.
grubby --update-kernel=ALL --remove-args='resume=UUID=b2028b1a-d0d1-463e-8b6e-31e40af16322'
Проверьте, что идентификаторы swap удалены.
grubby --info=ALL
reboot
Для увеличения места на диске пересоздайте раздел.
fdisk -c -u /dev/sda
Поочередно введите команды:
d
— удалитьw
— записать измененияfdisk -c -u /dev/sda
Поочередно введите команды:
n
— создатьp
— основной1
— раздел с номером 1+78G
— размер нового дискаY
— удалить сигнатуруw
— записать измененияreboot
xfs_growfs /dev/sda1
df -Th
fdisk -c -u /dev/sda
Создайте новый раздел. Поочередно введите команды:
n
— создатьp
— основной2
— раздел с номером 2t
— изменить тип раздела2
— раздел с номером 282
— присвоить hex-код 82, который соответствует swapw
— записать измененияmkswap /dev/sda2
swapon -v /dev/sda2
Осталось сделать так, чтобы при перезагрузке система не теряла созданный swap.
blkid
В нашем случае у нового swap идентификатор UUID=e8f52632-dd10-43dc-9c75-8981fe11684d. Этот идентификатор нужно разместить там, где ранее удалили старый идентификатор.
mcedit /etc/fstab
mcedit /etc/default/grub
Полная строка будет выглядеть так: GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=e8f52632-dd10-43dc-9c75-8981fe11684d selinux=0"
grub2-mkconfig -o /etc/grub2.cfg
dracut --regenerate-all --force
grubby --update-kernel=ALL --args='resume=UUID=e8f52632-dd10-43dc-9c75-8981fe11684d'
Проверьте, что идентификаторы успешно добавлены.
grubby --info=ALL
reboot
Пусть размер системного диска был увеличен с 20 ГБ до 100Гб, как было сделано ранее в VMWare или VirtualBox (пункт 1).
Тогда действия по изменению размера LVM-раздела будут такими:
fdisk -l
df -h
Здесь мы также видим и запоминаем имя группы томов и имя тома – centos_vb1-root
(у вас они будут другие):
8e
) на неразмеченной области. Для этого начинаем работу с устройством sda c помощью команды:
fdisk /dev/sda
Partition number (1-3, default 3): 3
(так как у нас было 2 логических раздела sda1 и sda2 – см. п.1);Partition number (1-3, default 3): 3
;8e
;reboot
pvcreate /dev/sda3
vgextend /dev/centos_vb1 /dev/sda3
lvextend -l+100%FREE /dev/centos_vb1/root
vgscan vgchange -ay
file -s /dev/sda1
Видим, что файловая система XFS.
xfs_growfs /dev/centos_vb1/root
centos_vb1
– имя группы томов и root
– имя тома из п.2):
resize2fs /dev/centos_vb1/root
– для ext4; resize_reiserfs /dev/centos_vb1/root
– для reiserfs; df -h
Виртуальная машина BitrixVM поставляется с swap-разделом 256 МБ, а в образе ami он по умолчанию не подключен. Поэтому в процессе эксплуатации может возникнуть необходимость в расширении раздела подкачки.
Как и в случае с увеличением свободного места, наиболее простой способ - добавить дополнительный диск и разместить раздел подкачки на нем, либо создать файл подкачки.
Для этого:
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /dev/sdb1или в файле swap-раздел:
mkswap /swapfile
swapon /dev/sdb1или файл подкачки:
chmod 600 /swapfile swapon /swapfile
/etc/fstab
, чтобы не включать после каждой перезагрузки вручную:
/dev/sdb1 none swap sw 0 0или о файле подкачки:
/swapfile none swap sw 0 0
Если некорректно настроен Memcached (доступен снаружи), то этим могут воспользоваться злоумышленники для взлома сайта.
Необходимо проверить опцию -l <ip>
в его настройках. Обращение к Memcached должно быть разрешено только c вашего сайта.
В случае, если в проекте планируется использовать memcached, необходимо произвести его настройку в соответствии с предполагаемой нагрузкой.
Для этого необходимо:
/etc/sysconfig/memcached
задать следующие параметры:
MAXCONN = "1024"
- количество одновременных подключений (по умолчанию 1024);CACHESIZE="1024"
- объем выделяемой памяти для кеша (по умолчанию 64MB);OPTIONS="-t 8"
- количество потоков memcached (по умолчанию 4).MAXCONN
, CACHESIZE
и OPTIONS
подбираются экспериментальным путем в зависимости от характера нагрузки и от имеющихся ресурсов.
Оценить объем памяти, необходимой для кеширования (параметр CACHESIZE
), можно по размеру вашего файлового кеша. Если у вас на проекте файловый кеш занимает 3 GB, то использование memcached c 256МБ памяти не будет эффективным за счет частого вытеснения.
CentOS Stream 9:
systemctl restart memcached.service
/bitrix/php_interface/dbconn.php
:
define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "127.0.0.1"); define("BX_MEMCACHE_PORT", "11211");
И в файле /bitrix/.settings_extra.php
(если его нет, то создать):
<?php return array( 'cache' => array( 'value' => array( 'type' => 'memcache', 'memcache' => array( 'host' => '127.0.0.1', 'port' => '11211', ), 'sid' => $_SERVER["DOCUMENT_ROOT"]."#01" ), ), ); ?>
В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcached через сокет:
В файле /etc/sysconfig/memcached задать параметры:
USER="bitrix"
- пользователь, от которого будет запущен memcached; OPTIONS="-t 8 -s /tmp/memcached.sock"
- количество потоков и путь к сокету.CentOS Stream 9:
systemctl restart memcached.service
/bitrix/php_interface/dbconn.php
:
define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "unix:///tmp/memcached.sock"); define("BX_MEMCACHE_PORT", "0");
И в файле /bitrix/.settings_extra.php
(если его нет, то создать):
<?php return array( 'cache' => array( 'value' => array( 'type' => 'memcache', 'memcache' => array( 'host' => 'unix:///tmp/memcached.sock', 'port' => '0', ), 'sid' => $_SERVER["DOCUMENT_ROOT"]."#01" ), ), ); ?>
Особенности при многосайтовости
Если используется многосайтовость, то в примере указывается статичный [dw]sid[/dw][di]Идентификатор сайта, поле ID в параметрах настроек сайта[/di], без $_SERVER["DOCUMENT_ROOT"
]. Например, для двух сайтов при многосайтовости на одном ядре, кеш будет отличаться, так как папки у сайтов разные.
<?php return array( 'cache' => array( 'value' => array( 'type' => 'memcache', 'memcache' => array( 'host' => 'unix:///tmp/memcached.sock', 'port' => '0', ), 'sid' => "#01" ), ), ); ?>
На больших и не очень проектах часто возникает вопрос с переносом исполнения некоторых особо тяжелых агентов на Cron. Агент считается "тяжёлым", если время его выполнения более 10 минут.
COption::SetOptionString("main", "agents_use_crontab", "N"); echo COption::GetOptionString("main", "agents_use_crontab", "N"); COption::SetOptionString("main", "check_agents", "N"); echo COption::GetOptionString("main", "check_agents", "Y");
В результате выполнения должно быть NN
.
/bitrix/php_interface/dbconn.php
определение следующих констант:
define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true);
И заменяем:
if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);
*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.phpЗамените
/home/bitrix/www/
на свой путь к корню сайта.
После этого все агенты и отправка системных событий будут обрабатывается из-под cron, раз в 1 минуту.
Чтобы не увеличивалась очередь отправки почтовых сообщений, нужно изменить параметр, отвечающий за количество почтовых обрабатываемых за раз событий. Для этого выполняем в php-консоли следующую команду:
COption::SetOptionString("main", "mail_event_bulk", "20"); echo COption::GetOptionString("main", "mail_event_bulk", "5");
Если очередной запуск cron_events.php произошёл до завершения работы ранее запущенного скрипта, то запуска агентов не произойдет и скрипт завершит свою работу (т.к. агенты блокируются на время выполнения). В данном случае обработка ничем не отличается от обработки на хите, новый хит может произойти в тот момент, когда еще не отработали агенты на предыдущем.
Как правило, скрипты, выполненные из под cron, не имеют ограничения на время исполнения. Но если в скриптах используются методы для работы с БД, то можно столкнуться с ошибкой выполнения вложенных скриптов. Для избежания этой ошибки можно подправить значение в /bitrix/php_interface/dbconn.php
:
// если скрипт выполняется кроном, то лимит подключения к БД - 600 секунд, иначе - 60 @set_time_limit(php_sapi_name() == "cli" ? 600 : 60);
Для обеспечения более высокой производительности файловой системы рекомендуем отключать изменение метки времени при чтении файлов и директорий: noatime
, nodiratime
.
Для этого в /etc/fstab нужно отредактировать (добавить в текущую строку) параметры в строке со своим UUID:
UUID=4556d97d-9e18-4152-a1ac-7bf7a609582c / xfs defaults,noatime,nodiratime 1 1
UUID=4556d97d-9e18-4152-a1ac-7bf7a609582c / ext4 defaults,noatime,nodiratime 1 1
UUID=4556d97d-9e18-4152-a1ac-7bf7a609582c
-— уникальный идентификатор диска, который можно узнать в консоли по команде blkid
.
После перезагрузки новые настройки начнут действовать.
Чтобы применить новые настройки, не перезагружая сервер, можно выполнить перемонтирование разделов командой:
mount -o remount,noatime,nodiratime /
commit
. Для установки его в 120 секунд, например, необходимо добавить commit=120
. То есть набор опций монтирования будет defaults,noatime,commit=120
.
По умолчанию сброс данных и метаданных на диск происходит каждые 5 сек. Откладывание времени сброса, так же может уменьшить фрагментацию файлов на диске, если есть файлы, в которые часто происходит дописывание данных. Например логи.
Для упрощения работы с Bitrix Framework
в виртуальную машину включён Xdebug. Работает он по схеме:
Перед изменением настроек надо переименовать файл 15-xdebug.ini.disabled в 15-xdebug.ini и перезапустить httpd.
Для настройки машины воспользуйтесь следующим примером:
$ cat /etc/php.d/15-xdebug.ini ; Enable xdebug extension module zend_extension=/usr/lib64/php/modules/xdebug.so xdebug.remote_enable=on xdebug.remote_host=192.168.205.1 xdebug.remote_port=9000
При разработке своих решений на основе виртуальной машины BitrixEnv/VMBitrix, может понадобиться отслеживание изменений в версиях файлов. Для этого вы можете подключить репозиторий исходников виртуальной машины.
Добавляем файл для репозитория /etc/yum.repos.d/bitrix-source-9.repo
с содержимым:
[bitrix-source-9] name=Bitrix Packages Source for Enterprise Linux 9 - x86_64 baseurl=https://repo.bitrix.info/dnf/SRPMS enabled=1 gpgcheck=1 priority=1 failovermethod=priority gpgkey=https://repo.bitrix.info/dnf/RPM-GPG-KEY-BitrixEnv-9
dnf clean all && dnf install -y dnf-utils yum-utils
yumdownloader --source bitrix-env bx-nginx bx-ansible-core bx-push-server
Примерный ответ в консоли для VMBitrix
|
---|
[root@server1 ~]# yumdownloader --source bitrix-env bx-nginx bx-ansible-core bx-push-server enabling baseos-source repository enabling appstream-source repository enabling crb-source repository enabling extras-common-source repository enabling centos-kmods-source repository enabling centos-kmods-userspace-source repository enabling epel-source repository enabling epel-cisco-openh264-source repository enabling epel-next-source repository CentOS Stream 9 - BaseOS - Source 299 kB/s | 509 kB 00:01 CentOS Stream 9 - AppStream - Source 670 kB/s | 1.2 MB 00:01 CentOS Stream 9 - CRB - Source 124 kB/s | 170 kB 00:01 CentOS Stream 9 - Extras packages - Source 13 kB/s | 14 kB 00:01 CentOS 9 - Kmods - Source 12 kB/s | 13 kB 00:01 CentOS 9 - Kmods - User Space - Source 3.1 kB/s | 3.5 kB 00:01 Extra Packages for Enterprise Linux 9 - x86_64 2.9 MB/s | 4.3 MB 00:01 Extra Packages for Enterprise Linux 9 openh264 675 B/s | 1.2 kB 00:01 Extra Packages for Enterprise Linux 9 - Next - 6.7 kB/s | 58 kB 00:08 (1/4): bx-push-server-3.0.0-0.el9.src.rpm 394 kB/s | 104 kB 00:00 (2/4): bx-ansible-core-2.14.2-4.el9.src.rpm 1.9 MB/s | 12 MB 00:06 (3/4): bitrix-env-9.0-0.el9.src.rpm 830 kB/s | 7.0 MB 00:08 (4/4): bx-nginx-1.26.1-0.el9.ngx.src.rpm 2.4 MB/s | 84 MB 00:35 [root@server1 ~]# |
Помимо [ds]включения некоторых php-расширений из меню BitrixEnv[/ds][di]В разделе 7. Manage web nodes in the pool > 1. Manage PHP extensions можно включить дополнительные модули PHP, которые могут понадобится в продуктах «1C-Битрикс».
Подробнее ...[/di] можно включать нужные расширения вручную.
Конфигурационные ini-файлы доступных php-расширений находятся в директории /etc/php.d/
:
Чтобы вручную включить нужное расширение, нужно файл {имя_расширения}.ini.disabled переименовать в {имя_расширения}.ini и перезапустить сервис Apache – httpd.
Например, нам нужно включить расширение xmlreader.
Переходим в директорию сервера /etc/php.d/
:
cd /etc/php.d/
Выводим список файлов в директории:
ls
Видим в списке файл 30-xmlreader.ini.disabled. Переименуем его в 30-xmlreader.ini и сохраним с заменой текущего:
mv 30-xmlreader.ini.disabled 30-xmlreader.ini
/etc/php.d/
, то при обновлении PHP или виртуальной машины расширение будет деактивировано. Чтобы этого не произошло, нужно оставлять только один файл 30-xmlreader.ini с активированным расширением.Далее перезапустим сервис Apache — httpd:
systemctl restart httpd.service
Все готово, расширение xmlreader работает:
Также вы можете установить любое php-расширение самостоятельно.
Например установим расширение php-imap.
Сначала нужно найти его имя с помощью команды:
dnf list php-imap*
Далее установить командой:
dnf install php-imap
При установке будет создан файл /etc/php.d/20-imap.ini.
Затем нужно перезапустить сервис httpd.
systemctl restart httpd.service
Все готово, php-расширение imap работает:
Очень частая ситуация, когда BitrixVM располагают внутри локальной сети офиса и проксируют запросы на нее из внешней сети Интернет.
Под проксированием будем понимать http-прокси, который имеет внешний адрес и позволяет организовать подключение пользователей к сайту, расположенному на виртуальной машине BitrixVM, а также сетевое оборудование, которое позволяет на уровне TCP/IP организовать подключение.
Основная особенность в данном случае – это организация работы web-сокетов (ws/wss протоколов), так как бывают ситуации, когда требуются дополнительные настройки для того, чтобы сетевое оборудование не прерывало соединение по таймауту.
Настройку сетевого оборудования мы обсуждать не будем – предположим, что уже все настроено, поддержка web-сокетов включена.
Опишем ситуацию, когда понадобилось для работы перенести порт для ws/wss протоколов.
Создаем конфигурационный файл rtc_ext.conf в директории /etc/nginx/bx/site_ext_enabled/:
server { listen 1137; listen 1139 default_server ssl; #access_log off; server_name _; # ssl settings include bx/conf/ssl.conf; # Include im subscrider handlers include bx/conf/im_subscrider.conf; location / { deny all; } }
Не забываем перезапустить nginx после того, как внесли все коррективы:
systemctl restart nginx.service
Открываем порты в виртуальной машине BitrixVM:
firewall-cmd --permanent --add-port=1137/tcp firewall-cmd --permanent --add-port=1139/tcp firewall-cmd --reload
Добавляем выбранные порты в конфигурационный файл bitrix/.settings.php:
'pull_s1' => 'BEGIN GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!', 'pull' => Array( 'value' => array( ... 'path_to_websocket' => 'ws://#DOMAIN#:1137/bitrix/subws/', 'path_to_websocket_secure' => 'wss://#DOMAIN#:1139/bitrix/subws/', ... ), ), 'pull_e1' => 'END GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!',
И затем проверяем работу через браузер.
Предположим, что в качестве внешнего прокси выступает nginx сервер.
При желании можно данные настройки адаптировать и для других прокси-сервисов.
Вне зависимости от того, как организована у вас работа балансера — единственная точка входа или он обслуживает только запросы клиентов из внешних сетей, а BitrixVM запросы внутренней сети — на него нужно перенести настройки Push-server.
Переносим настройки проксирования запросов push на балансер — можно взять конфигурационный файл виртуальной машины /etc/nginx/bx/conf/im_subscrider.conf за основу (можно прям его скопировать на балансер):
location ~* ^/bitrix/subws/ { access_log off; proxy_pass http://nodejs_sub; # http://blog.martinfjordvald.com/2013/02/websockets-in-nginx/ # 12h+0.5 proxy_max_temp_file_size 0; proxy_read_timeout 43800; proxy_http_version 1.1; proxy_set_header Upgrade $replace_upgrade; proxy_set_header Connection $connection_upgrade; } location ~* ^/bitrix/sub/ { access_log off; rewrite ^/bitrix/sub/(.*)$ /bitrix/subws/$1 break; proxy_pass http://nodejs_sub; proxy_max_temp_file_size 0; proxy_read_timeout 43800; } location ~* ^/bitrix/rest/ { access_log off; proxy_pass http://nodejs_pub; proxy_max_temp_file_size 0; proxy_read_timeout 43800; }
Данный файл подключаем к серверу, на котором настроено проксирование запросов на виртуальную машину.
Верхний конфигурационный файл зависит от /etc/nginx/bx/settings/rtc-im_settings.conf, в котором определяются следующие параметры:
Upgrade
и Connection
через переменные:
# if connection ti not set map $http_upgrade $connection_upgrade { default upgrade; '' 'close'; } map $http_upgrade $replace_upgrade { default $http_upgrade; '' "websocket"; }
upstream nodejs_sub { ip_hash; keepalive 1024; server push:8010; server push:8011; server push:8012; server push:8013; server push:8014; server push:8015; } upstream nodejs_pub { ip_hash; keepalive 1024; server push:9010; server push:9011; }
Данный файл /etc/nginx/bx/settings/rtc-im_settings.conf тоже можно скопировать и подключить на уровне http
-секции на балансере.
Далее на push-server необходимо открыть порты 8010-8015 и 9010-9011 для доступа с балансера.
firewalld:
firewall-cmd --permanent --add-port=8010-8015/tcp firewall-cmd --permanent --add-port=9010-9011/tcp firewall-cmd --reload
Предположим, мы проксируем http и https сайта test.example.org на 80 порт виртуальной машины BitrixVM.
Включим модуль real_ip в BitrixVM — создаем конфигурационный файл bx/settings/real_ip.conf:
set_real_ip_from BALANCER_IP; real_ip_header X-Forwarded-For;
В качестве real_ip_header
нужно указать заголовок балансера, который он передает на бэкенд (виртуальную машину BitrixVM). В set_real_ip_from
— IP-адрес балансера.
Перезапускаем nginx.
systemctl restart nginx.service
Далее настраиваем передачу протокола, по которому клиент работает с сервером.
Нам нужно, чтобы балансер передавал на бэкенд-сервер информацию о протоколе:
proxy_set_header X-Forwarded-Proto $scheme;
На бэкенде (виртуальная машина BitrixVM) делаем конфигурацию для настройки переменных в файле /etc/nginx/bx/settings/schema.conf:
map $http_x_forwarded_proto $balancer_port { default 80; "https" 443; } map $http_x_forwarded_proto $balancer_https { default "NO"; "https" "YES"; }
Тогда на бэкенде переменная $http_x_forwarded_proto
будет содержать значение http
или https
в зависимости от протокола подключения.
Далее нам потребуется конфигурационный файл сайта:
сайт по умолчанию — /etc/nginx/bx/site_enabled/s1.confВ конфигурационном файле сайта нас интересует часть:
proxy_set_header Host $host:80;
Меняем указанную выше часть на:
proxy_set_header Host $host:$balancer_port; proxy_set_header HTTPS $balancer_https;
Перезапускаем nginx:
systemctl restart nginx.service
Все готово.
Для настройки проксирования телефонии можно использовать правило:
location ~* ^/(pub/imconnector/|pub/imbot.php|services/telephony/info_receiver.php|bitrix/tools/voximplant/) { proxy_ignore_client_abort on; proxy_pass $proxyserver; }
О других настройках локальной сети при использовании телефонии рассказывается в соответствующем уроке курса Администратор сервиса Битрикс24.
В главе описывается API, помощью которого можно подключить процедуру заказа/создания машины в управлении пулом в продуктах «1С-Битрикс».
Вся работа с провайдерами осуществляется с помощью плагинов, расположенных в определенном каталоге (на текущий момент всё управление сделано на файлах): /opt/webdir/providers.
Для каждого провайдера предусмотрены:
Скрипт плагина, который будет использован в web-интерфейсе продуктов «1С-Битрикс», должен быть раcположен по адресу:
/opt/webdir/providers/{provider_name}/bin/{provider_name}Для подключения в пул плагин провайдера должен поддерживать следующие аргументы командной строки:
{ "options": [ "help", "configs", "order", "order_status" ], "status": "enabled" }
Массив options должен содержать список поддерживаемых опций (например, в данном случае отсутствует опция init, которая позволяет подключиться на этапе создания мастер сервера).
Опция status может содержать следующие значения: disabled
или enabled
, что позволяет определить включен или выключен провайдер на конкретном сервере.
{ "configurations": [ { "id": "1", "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb" } ], "status": "enabled" }
configurations
- содержит список сервисов/конфигураций, которые может заказать пользователь, используя web интерфейс «1С-Битрикс».
На текущий момент поддерживается два параметра по каждой конфигурации:
{"task_id":"24"}
task_id должен содержать номер задания, который используется для дальнейшего опроса и старта добавления машины по завершению.
{ "server_password": "XXXXXXXXXXXXXX", "status": "finished", "server": "xxx.xxx.xxx.xxx", "task_id": "24" }где:
in_progress
- находится на обработке со стороны провайдера/хостера;finished
- обработка завершена, можно добавлять машину в пул; error
- во время выполнения произошла ошибка. Любое из действий может сообщить об ошибке с помощью значений в полях error и error_message. Например:
{ "error_message": "get_task error N102, No task found", "error": 1 }
Данный скрипт нужен для встраивания плагинов провайдеров в web- интерфейс продуктов «1C-Битрикс».
На текущий момент реализованы следующие методы:
{ "params": { "providers": { "superprovider": { "status": "enabled" }, "amazon": { "error": 1, "message": "bxProvider::optionsProvider: Provider amazon not exist on the host" } } } }
В данном случае, это только включено или выключено, а так же ошибки, который возникли при запросе статуса.
В случае если провайдеров нет на хосте, список будет пустым:
{ "params": { "providers": { } } }
/opt/webdir/bin/bx-provider -a status --provider superprovider -o json { "params": { "provider_options": { "superprovider": { "options": { "order_status": 1, "order": 1, "help": 1, "configs": 1, "init": 0 }, "status": "enabled", "files": { "execute": "/opt/webdir/providers/superprovider/bin/superprovider", "holder": "/opt/webdir/providers/superprovider", "config": "/opt/webdir/providers/superprovider/etc/superprovider.conf" }, "name": "superprovider", "config": "exists" } } } }
В данном случае печатает внутреннюю информацию (используется как есть внутри обработчика), по сути, такой статус больше подходит для отладки работы провайдера, чем для использования в web-интерфейсе.
/opt/webdir/bin/bx-provider -a install --provider amazon --archive /tmp/amazon-v01.tar.gz
/opt/webdir/bin/bx-provider -a configs --provider superprovider -o json { "params": { "provider_configs": { "superprovider": { "configurations": [ { "id": "1", "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb" } ], "status": "enabled" } } } }
/opt/webdir/bin/bx-provider -a order --provider superprovider --config_id 1 -o json { "params": { "provider_order": { "superprovider": { "task_id": "25" } } } }
/opt/webdir/bin/bx-provider -a order_status --provider superprovider --task_id 25 -o json { "params": { "provider_order": { "superprovider": { "server_password": "XXXXXXXXXXXXXXX", "status": "complete", "server": "xxx.xxx.xxx.xxx" "task_id": "25" } } } }
/opt/webdir/bin/bx-provider -a orders_list --provider superprovider -o json { "params": { "provider_order_list": { "superprovider": { "25": { "status": "finished", "mtime": 1403445981, "error": 0, "message": "" }, "22": { "status": "error", "mtime": 1403441000, "error": 1, "message": "cannot add ssh key to the server" }, "21": { "status": "complete", "mtime": 1403440979, "error": 0, "message": "" }, "23": { "status": "finished", "mtime": 1403441229, "error": 0, "message": "" } } } } }
Тут добавлен еще один статус по задаче: complete - это значит, что сервер из данного задания был добавлен в пул.
/opt/webdir/bin/bx-provider -a order_to_host --provider superprovider --task_id 25 -o json
В этой главе будет описано, как сделать образ виртуальной машины BitrixVM для клонирования.
Это пригодится специалистам, которые делают минимальную настройку виртуальной машины BitrixVM и потом клонируют ее, а полученный клон используют дальше для развертывания.
Рассмотрим установку часто используемых сервисов виртмашины:
Существует 2 способа перенести виртуальную машину BitrixVM – ручное создание клона существующей машины с необходимыми сервисами и автоматическое развертывание готового образа (рекомендуемый).
План создания клона виртуальной машины BitrixVM выглядит примерно так:
Данный шаг необходим, чтобы получить доступ к настройкам сервера, установки push-server и memcached.
Если на чистом сервере в меню выбрать пункт 1. Create Management pool of server, то он как раз проведет по необходимым настройкам.
Либо можно выполнить следующую команду:
/opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACEгде:
-H SERVER_NAME
– это имя сервера, которое будет использовано в настройках.-I NET_INTERFACE
– это сетевой интерфейс, чей IP-адрес будет использован в настройках пула.
Данная команда вернет ID задания, завершения которого нужно дождаться, чтобы продолжить дальше:
message ... Run configuration pool job task_id=common_7874274840 All operations complete
Дождаться завершения можно, отслеживая состояние лог-файла:
tailf /opt/webdir/temp/common_7874274840/status ... srv1 : ok=75 changed=30 unreachable=0 failed=0
Если в полях unreachable
и failed
будут нулевые значения, значит все хорошо и можно продолжать.
/opt/webdir/bin/bx-sites -a push_configure_nodejs -H SERVER_NAME
Дожидаемся завершения задания.
info:bxDaemon:pushserver_2042054462:7097:1594650283::running:::
По умолчанию сценарий виртуальной машины настроит сервис на использование на рабочем IP-адресе, чтобы в случае подключения других машины в пул они могли использовать его.
Предполагается, что образ будет использован для копирования виртуальной машины, поэтому адрес на новой установке, скорее всего, будет другой и указанные настойки не сработают. Чтобы это обойти, мы меняем адрес сервиса на localhost
, который есть на любом Linux-хосте.
Для этого в файле /etc/sysconfig/push-server-multi меняем параметр на:
WS_HOST=127.0.0.1
И пересоздаем конфиги push-server:
systemctl stop push-server /etc/init.d/push-server-multi reset
Nginx проксирует запросы на push-server на основание имени хоста. Чтобы он правильно определил, куда и как проксировать, меняем запись в /etc/hosts:
127.0.0.1 SERVER_NAME
Устанавливаем memcached сервер:
/opt/webdir/bin/bx-mc -a create -s SERVER_NAME
Тут про адрес при копировании можно не задумываться, т.к. сервис слушает все и доступ ограничивается настройками firewalld.
Чтобы на новой машине создать заново ssh-ключи и другие настройки безопасности нужно удалить файлы и каталоги конфигурации для ansible:
rm -rf /etc/ansible/{host_vars,group_vars,hosts,ansible-roles}
Или выполнить команду ansible:
/opt/webdir/bin/wrapper_ansible_conf -a delete_pool
Удаляем правила Udev для интерфейсов:
/bin/rm -f /etc/udev/rules.d/70*
Очищаем записи MAC-адресов и UUID устройств:
/bin/sed -i ‘/^(HWADDR|UUID)=/d’ /etc/sysconfig/network-scripts/ifcfg-eth0
Удаляем ssh-ключи. При старте новая машина создаст для себя новые ключи:
/bin/rm –f /etc/ssh/*key*
Очищаем логи сценариев:
/bin/rm -fr /opt/webdir/temp/* /bin/rm -fr /opt/webdir/logs/*
При разворачивании клонированного образа на новом месте рекомендуется настроить пул управления, чтобы иметь возможность дальнейшего управления виртуальной машиной.
Если копия (образ) делается для бэкапа и воссоздание из нее будет всегда той же самой машины, т.е. нет смены адреса, нет смены ключей, пул остается там, где был, то можно не выполнять вышеописанные действия.
Можно настраивать чистый образ автоматически. Для этого просто добавьте приведенные выше команды в свой сценарий или bash-скрипт:
# создание пула /opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACE # настройка пуш-сервера /opt/webdir/bin/bx-sites -a push_configure_nodejs -H SERVER_NAME # настройка memcached сервиса /opt/webdir/bin/bx-mc -a create -s SERVER_NAME
Вы получаете работоспособную установку без необходимости решать проблемы смены адреса при копировании шаблона.
Каждый запуск – это будет фоновое задание, статус которого можно отслеживать, как показано выше.
В этом разделе рассматривается более углубленное описание виртуальной машины BitrixVM.
Для работы «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходимо:
«1C-Битрикс: Виртуальная машина» поставляется в 2 вариантах:
Это специальный скрипт bitrix-env-9.sh для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS Stream 9 (x86_64).
Установка выполняется на железный или виртуальный сервер несколькими командами. Подробнее про установку можно прочитать в уроке Установка «1С-Битрикс: Веб-окружение» — Linux (BitrixEnv).
«1C-Битрикс: Виртуальная машина» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести уже готовые проекты.
Образы VMBitrix доступны для гипервизоров: VMWare, VirtualBox, HyperV и OVA (VMWare ESXi).
Скачать их можно на странице загрузки.
Список AMI-образов для различных регионов Amazon EC2 можно взять в специальном разделе.
Оба варианта очень похожи — готовые образы VMBitrix собираются на основе того же скрипта bitrix-env-9.sh, только в каждый образ включаются дополнительные драйверы для работы со своим гипервизором и скрипты для сервиса Amazon EC2.
Пакеты bitrix-env-9.sh обновляются чаще, чем образы BitrixVM. Поэтому при первом запуске образа, желательно запустить обновление BitrixVM через меню виртуальной машины.
Для установки bitrix-env используется операционная система CentOS Stream 9. Выбор в пользу CentOS был сделан из-за распространенности данной ОС, большого сообщества, а также из-за опыта использования в рамках инфраструктуры Битрикс24.
Репозиторий — это файловое хранилище, организованное определенным образом. В нем хранятся пакеты программ, доступных для дальнейшего распространения.
Пакеты виртуальной машины BitrixVM содержатся в специальном yum-репозитории Bitrix, расположенном в CloudFront (AmazonCDN).
Пакет bitrix-env — полная виртуальная машина BitrixVM, подходит под любую установку продуктов «1С-Битрикс». Скачиваются пакеты необходимых сервисов, создаются настройки сервера в зависимости от конфигурации оборудования, создается директория сайта по умолчанию /home/bitrix/www/
с необходимыми скриптами и конфигурационными файлами для выбора установки продуктов «1С-Битрикс».
В составе bitrix-env используются стандартные пакеты из репозиториев, но с дополнительными настройками.
В пакет bx-nginx, помимо самого nginx (stable), входят дополнительные модули:
При установке bitrix-env создаются для nginx:
В настройках главного модуля в продуктах 1С-Битрикс есть опция Быстрая отдача файлов через Nginx, при активации которой c помощью заголовка X-Accel-Redirect
формируется специальная ссылка. Эта ссылка обрабатывается сервером nginx, а он уже проксирует запрос в подключенное хранилище и отдает запрошенный файл клиенту. Таким образом, освобождаются ресурсы backend-службы, которая обрабатывает php-запросы, а сама отдача файла выполняется обычно быстрее.
Также есть варианты дополнительных настроек из сценариев через меню виртуальной машины:
В качестве backend-а используется Apache — стандартный пакет, актуальная версия из EPEL-репозитория.
PHP — стандартные пакеты из REMI-репозитория. Виртуальная машина BitrixVM поддерживает переключение версий 8.1 – 8.2 – 8.3 и обратно. Минимальная версия PHP для работы продуктов «1С-Битрикс» — 8.1.
При установке bitrix-env создаются Apache конфигурации:
Варианты донастройки из сценариев меню виртуальной машины:
В виртуальной машине BitrixVM в качестве MySQL используется стандартный пакет Percona Server. Не запрещено устанавливать другие варианты. В BitrixVM v9.x входит percona server 8.0.
При установке bitrix-env создаются для mysqld конфигурации:
Варианты донастройки из сценариев меню виртуальной машины:
Ansible – система управления конфигурациями, с использованием декларативного языка разметки для описания конфигураций для автоматизации настройки и развертывания программного обеспечения.
Он легок в настройке. Всё, что нужно для его работы, это ssh-доступ к серверу. Также имеется простая точка входа, как в плане конфигурации – сценарии (ini-, yml- и json-форматы), шаблоны (jinja2), так и в написании плагинов на достаточном количестве языков (bash и др). Имеет понятную документацию и крупное сообщество с большой базой примеров.
В виртуальной машине BitrixVM сделано следующем образом: в меню виртуальной машины можно выбрать, что хотите сделать (настроить ssl-сертификат, создать сайт, включить cron-задания для сайта и т.п), затем из интерфейса стартует задача (task) на изменение через API – это и есть ansible-сценарий со всеми необходимыми опциями.
Через интерфейс консольного меню командной строки.
Наиболее полный и рекомендуемый интерфейс управления виртуальной машиной BitrixVM. Все новинки функционала отражаются именно в этом варианте.
Все конфигурационные файлы, сценарии и прочее для работы ansible хранятся в директории /etc/ansible/
.
Самое главное – это описание хостов, которыми управляет виртуальная машина. В самом простом случае – это локальный сервер, на котором установлено Bitrix-окружение.
В инвентарь входят:
В случае виртуальной машины BitrixVM мы храним только группы и хосты, которые входят в эти группы.
Внутри этого файла есть разделение по группам. Группам соответствуют роли, которые выполняют серверы. Один и тот же сервер может находится в нескольких группах.
Пример:
# Bitrix VM default configuration group [bitrix-hosts] vm03 ansible_ssh_host=192.168.1.215 vm04 ansible_connection=local ansible_ssh_host=192.168.1.227 .. [bitrix-push] vm03 ansible_ssh_host=192.168.1.215
Группа [bitrix-hosts]
содержит все хосты, которыми можно управлять.
Группа [bitrix-push]
содержит хосты, которые выполняют роль push-сервера. В данном примере: сервер vm03 выполняет роль сервера мгновенных сообщений.
Пример:
bx_connect: ipv4 bx_host: vm04 bx_hostname: vm04 bx_netaddr: 192.168.1.227
Cервер настраивается с помощью сценариев.
Сценарий – набор действий, который нужно выполнить на сервере или группе. Сценарии сгруппированы по ролям.
Роль – это способ организации хранения сценариев. Позволяет хранить все необходимые файлы в отдельном каталоге.
Основные роли:
Дополнительные роли:
API ansible-сценариев используется для запуска сценариев, получения их статуса и возврата его в удобном формате (json, txt).
Сценарии запускаются через API в фоновом режиме, чтобы любая текущея веб-сессия или ssh-сессия не влияла на процесс настройки. Также при этом сохраняется статус запущенного задания, а в случае ошибки есть возможность получить ее лог.
Запускается сценарий командой:
ansible-playbook /etc/ansible/<PLAY>.yml -e ansible_playbook_file=/opt/webdir/temp/<TASK_ID>/opts.yml
Команда ansible-playbook
запускает yml-сценарий, а дополнительные опции собираются из меню и передаются через файл opts.yml в параметре ansible_playbook_file
.
Перед запуском ansible-сценария API создает директорию задания /opt/webdir/temp/<TASK_ID>
и затем в нее помещаются файлы:
Просмотреть статусы задач можно с помощью пункта меню виртуальной машины 8. Background pool tasks:
В главе описаны планы конфигурации служб виртуальной машины BitrixVM.
Конфигурация nginx в виртуальной машине:
Конфигурационные файлы сайта настраиваются в момент его создания и могут изменяться в зависимости от выбранного действия.
BX_TEMPORARY_FILES_DIRECTORY
) и отдачи этих файлов через nginx.Все изменения стандартных конфигурационных файлов nginx могут быть утрачены во время обновления или изменения настроек виртуальной машины BitrixVM. Поэтому, чтобы этого не произошло, для персональных настроек есть свои файлы и места их хранения.
Изменить глобальные настройки nginx всего сервера – в файле /etc/nginx/bx/settings/z_bx_custom.conf, а также в /etc/nginx/bx/site_ext_enabled/.
Персональные настройки конкретного сайта – в директории /etc/nginx/bx/site_settings/<SITE_NAME>/.
Конфигурация Apache в виртуальной машине:
Настройки для сайтов хранятся в файлах:
Все изменения стандартных конфигурационных файлов apache могут быть утрачены во время обновления или изменения настроек виртуальной машины BitrixVM. Поэтому, чтобы этого не произошло, для персональных настроек есть свои файлы и места их хранения.
Изменить глобальные настройки apache всего сервера – в файлах /etc/httpd/bx/custom/*.conf.
Конфигурация MySQL в виртуальной машине:
Настройки для сайтов хранятся в файлах:
Все изменения стандартных конфигурационных файлов mysql могут быть утрачены во время обновления или изменения настроек виртуальной машины BitrixVM. Поэтому, чтобы этого не произошло, для персональных настроек есть свои файлы и места их хранения.
Изменить глобальные настройки mysql всего сервера можно здесь: /etc/mysql/conf.d/z_bx_custom.cnf.
Пул – это группа серверов, которой можно управлять посредством ansible-сценариев. По сути пул – это все сервера в группе bitrix-hosts в ansible-инвентаре.
В самом простом случае в пуле будет единственный сервер, на котором настроено Bitrix-окружение.
Первый сервер – используется всегда для управления, то есть при подключении дополнительных серверов в пул, именно он будет управлять всеми остальными. На текущий момент времени роль управления перенести нельзя.
После установки bitrix-env рекомендуется настроить пул:
Без создания пула вы не сможете осуществлять управление сайтами и серверами через меню, будут доступны только сетевые настройки локального хоста (настройка имени и IP-адреса, обновление сервера).
При создании пула для сервера:
Данная операция нужна в редких случаях ручного вмешательства в файлы инвентаря.
Особенности удаления пула:
Для подключения сервера в пул нужно знать следующие данные:
Подключение разбито на два этапа:
Если дополнительный сервер больше не нужен, его можно удалить из пула.
При удалении сервера из пула происходит:
С помощью специальных ВМ-решений вы можете быстро получить оптимально сконфигурированный сервер, не уступающий по производительности VMBitrix, а по масштабируемости - превосходящий виртуальную машину «1С-Битрикс». Пакеты подготовлены специалистами «1С-Битрикс» и доступны для скачивания и использования.
«1С-Битрикс»: Веб-окружение» - Linux служит для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS 7 (x86_64).
Скачать bitrix-env.sh.
«1C-Битрикс: Виртуальная машина 7.x» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести свои, уже готовые проекты.
Дистрибутивы VMBitrix доступны для:
Скачать образы.
Amazon EC2 - это веб-сервис, предоставляющий масштабируемые вычислительные мощности и созданный для быстрого и простого разворачивания веб-приложений на площадках (в облаках) Amazon. Специалистами «1С-Битрикс» подготовлены предконфигурированные образы VMBitrix (AMI-образы) для быстрого запуска приложений «1С-Битрикс» в Amazon EC2, которые включают:
Список ami-образов по регионам можно посмотреть на странице VMBitrix.
Работа с файлами в BitrixEnv осуществляется по протоколам SSH / SFTP. Протоколы FTP и SCP по умолчанию не поддерживаются.
Глава предназначена для администраторов и пользователей продуктов «1С-Битрикс», устанавливающих для ознакомления либо переносящих готовые проекты на виртуальную машину VMBitrix. Аналогичным способом можно переносить проекты с удаленного сайта на виртуальную машину, между виртуальными машинами и т.д. В документе рассматриваются процедуры установки всех необходимых приложений для работы продукта на виртуальной машине VMBitrix.
Описание установки ПО виртуализации не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации соответствующего ПО.
Если у вас возникнут вопросы по процессу установки продуктов компании «1С-Битрикс», вы можете обратиться в службу Технической поддержки. Обсуждение работы VMBitrix доступно на специализированном форуме или в группе Виртуальные машины Битрикс социальной сети компании «1С-Битрикс».
/path/to/openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.key
Изменения в актуальной версии BitrixVM.
Список изменений v 7.5.5 (декабрь 2023)
|
---|
Обновление ПО: php 8.1 Основные исправления: - PHP 8.1 используется по умолчанию. - Добавлена возможность обновить PHP до версии 8.3. - Добавлена возможность понизить версию PHP с 8.3 на версии ниже. |
Список изменений v 7.5.4 (октябрь 2023)
|
---|
Исправлена ошибка отображения пункта меню Upgrade PHP если используется PHP 8.1. |
Список изменений v 7.5.3 (октябрь 2023)
|
---|
- PHP 8.0 теперь версия по умолчанию, - реализована возможность повысить версию PHP до 8.2, - реализована возможность понизить версию PHP с 8.2 на 8.1 или на 8.0 и т.д., - доработаны правила для облачных хранилищ, - изменена логика dehydrated, - усилена безопасность.ю - исправлены ошибки, - Подняты версии nginx до 1.24.0, nodejs до 16. |
Список изменений v 7.5.2 (апрель 2022)
|
---|
Исправлена ошибка добавления slave MySQL. |
Список изменений v 7.5.1 (апрель 2022)
|
---|
- PHP 7.4 теперь версия по умолчанию, - реализована возможность повысить версию PHP до 8.1, - версия nginx поднята до 1.20.2, - реализована возможность понизить версию PHP с 8.1 на 8.0 и т.д., - изменен основной адрес репозитория, - исправлены ошибки. |
Обсуждение стабильной версии 7.5.x на форуме.
История стабильных версий VMBitrix v 7.*.*
Список изменений v7.4.4 (ноябрь 2020)
|
---|
Основные исправления: – Удалена устаревшая опция PHP mbstring.func_overload .Обновления главного модуля (main 20.100.0) требует удаления опции mbstring.func_overload . Эта опция более не требуется и не поддерживается платформой.На данный момент эту версию можно получить только через обновление виртуальной машины
|
Список изменений v7.4.3 (ноябрь 2019)
|
---|
Обновление ПО: – php 7.2 – nginx 1.16.1 Основные исправления: – PHP 7.2 используется по умолчанию. – В сборку nginx добавлен модуль Brotli (только для CentOS 7). – Исправлена ошибка обновления образов для VirtualBox (процесс зависал из-за ошибки в MySQL). – Исправлена ошибка в фразе при попытке установить окружение sh-скриптом на CentOS 8. |
Список изменений v7.4.2 (октябрь 2019)
|
---|
Основные исправления: – Изменен сервер выдачи сертификатов для Let's Encrypt, переход на версию API v2. API v1 будет окончательно отключен Let's Encrypt-ом 31 октября 2019. |
Список изменений v7.4.1 (август 2019)
|
---|
Основные исправления: – Исправлена ошибка определения статуса службы mysql на CentOS 6 в случае, если init.d-скрипт называется mysql. – Исправлена ошибка обновления ssl-сертификата в случае предоставления цепочки. – Исправлена ошибка обновления файла ssl_options.conf для службы nginx при обновлении пакета. |
Список изменений v7.4.0 (июль 2019)
|
---|
Обновление ПО: – nginx 1.16.0 Основные исправления: – nginx обновлен до версии 1.16.0, добавлена поддержка TLS 1.3. – В сборку nginx добавлен модуль PageSpeed (только для CentOS 7). – Обновлены настройки сайтов в связи с deprecated-опцией ssl on для nginx версии 1.16.0 и выше.– Для отдачи через nginx добавлены svg и woff2. – Исправлено автоматической определение смены IP-адреса для сетевого интерфейса. – Исправлена работа push-сервера после изменения IP-адреса машины. – Исправлено поведение, при котором файл resolv.conf очищался при конфигурации сетевого интерфейса, если указать DNS-сервер.– Исправлены некоторые фразы в меню виртуальной машины. – Добавлена возможность обновить PHP до версии 7.2. – Добавлено включение и выключение дополнительных модулей PHP в меню (curl, zip, dom, phar, xdebug, imagick). – Исправлены конфигурационные файлы окружения - заменена устаревшая опция mbstring.internal_encoding для версии PHP 7.0 и выше.– OpenVZ: исправлена установка и настройка виртуальной машины на OpenVZ-окружении. – OpenVZ: исправлена ошибка запуска сервисов роли мониторинг на OpenVZ-окружении. – Исправлена установка и настройка виртуальной машины на ОС, где полностью или частично отсутствуют iptables-модули. – Добавлена возможность выбора межсетевого экрана для CentOS 7 при первоначальной установке с помощью sh-скриптов. Добавлены опции: -F будет использоваться firewalld, -I будет использоваться iptables. По умолчанию используется iptables.– Исправлена ошибка пакета percona-release, возникающая при установке окружения sh-скриптом на чистый CentOS 6 или 7. – Исправлена ошибка при обновлении машин, возникающая при обновлении пакета percona-release. – Исправлена ссылка на пакет percona-release в задачах раздела MySQL. – Добавлена возможность настроить и откатить ssl-сертификаты для push-сервера, настроенного с помощью nginx-push-stream-module. – Исправлена процедура отката Lets Encrypt сертификата к начальному: сертификат удаляется для всех сайтов, на которых используется; удаляется его упоминание из настроек dehydrated. – Исправлена процедура автопродления Lets Encrypt сертификатов. – Исправлена работа NodeJS Push сервера для VMBitrix.CRM. – Добавлена возможность включить и выключить мониторинг через меню в VMBitrix.CRM. – Исправлены ошибки конфигурирования nagios и munin при включении мониторинга. – Исправлено отображение данных и графиков нагрузки сервера для сервиса munin на CentOS 7. – NTLM-настройки сайта теперь используют ssl-сертификат сайта в случаях: NTLM настроен, настраиваем ssl-сертификат сайта; ssl-сертификат сайта настроен, настраиваем NTLM. – Исправлена процедура введения хоста в ActiveDirectory. – Добавлена возможность использовать существующие NTLM-настройки для новых сайтов. – Уменьшили максимальное количество ядер ОС с 5 до 3. – Исправлено обновление конфигурации httpd при удаленном сайте по умолчанию. – Исправлен запуск сервиса crond при установке окружения sh-скриптом на CentOS 6. – Исправлена ошибка рассинхронизации времени в случае отсутствия файла /etc/localtime .– Исправлена ошибка отсутствия меню настройки localhost в случае отсутствия настроенного сетевого интерфейса (IP-адреса). – Исправлены ошибки в мастере включения Sphinx. – Для сайта типа link наличие папки images у сайта типа ext_kernel теперь не обязательно.– Virtual Hardware Version поднята до 12-ой версии в образах для VMWare и ESXi/vSphere. – Исправлена ошибка работы образа для 5-го поколения машин в Amazon EC2. Примечание: iptables теперь будет всегда использоваться по умолчанию для новых установок и образов. Если же у вас старый образ или установка до версии 7.4.0, то ничего не изменится: на CentOS 6 – iptables, на CentOS 7 – firewalld. Если же у вас новая установка или образ:
|
Обсуждение стабильной версии 7.4.x на форуме.
Список изменений v7.3.4 (декабрь 2018)
|
---|
Основные исправления: - Пакет push-server обновлен для корректной работы на CentOS 7.6. Исправлена ошибка запуска службы push-server через systemd. |
Список изменений v7.3.3 (сентябрь 2018)
|
---|
Основные исправления: - Добавлено автоматическое включение PHP-расширений zip и dom. Они стали обязательными, так как необходимы для работы модуля Генератор документов (documentgenerator). |
Список изменений v7.3.2 (август 2018)
|
---|
Основные исправления: - Добавлена возможность включить и выключить yum-репозиторий, хранящий бета версии пакетов виртуальной машины. - Исправлена опечатка в фразе меню, из-за которой не работало восстановление сертификата по умолчанию для сайта. |
Список изменений v7.3.1 (июль 2018)
|
---|
Обновление ПО: - push-server 2.0.0 Основные исправления: - Исправлено отображение пунктов обновления MySQL и PHP, если версия MySQL сервера 5.5 и PHP обновлен до 7.0. - Добавлено копирование цепочки сертификатов при настройке собственного ssl сертификата. - Облегчена генерация dhparam. - Исправлена блокировка работы меню при запущенном сценарии настройки. - Исправлен выход из меню для нескольких пунктов. - Исправлено поведение меню при включение мониторинга. |
Список изменений v7.3.0 (май 2018)
|
---|
Обновление ПО: - php 7.1 (устанавливается по умолчанию на новой виртмашине) - nginx 1.14.0 - hostname 1.0.0 Основные исправления: - Добавлено использование php версии 7.1 по умолчанию. - Исправлена настройка сертификатов при настроенном https доступе к сайту. - Исправления по настройкам пакета (опция в dbconn.php и зависимости от ethtool). |
Обсуждение стабильной версии 7.3.x на форуме.
Список изменений v7.2.2 (декабрь 2017)
|
---|
Основные исправления: -- Исправили ошибку дублирования настроек ntlm для сервиса httpd-scale. |
Список изменений v7.2.1 (декабрь 2017)
|
---|
Основные исправления: -- Ошибка при создание сайта с указанием расширенных параметров (bitrix_utils.sh: line 160: read: `-r': not a valid identifier). -- Фраза в настройках почты для сайта. |
Список изменений v7.2.0 (декабрь 2017)
|
---|
Обновление ПО: - nginx 1.12.2 Основные исправления: WEB01: Добавлена поддержка установки сертификатов (собственных и Lets Encrypt) для сайтов типа kernel и link. WEB02: Добавлена возможность вернуть "дефолтный" ssl сертификат сайта. WEB03: Исправлены ошибки настройки web-кластера. HOST01: Добавлена возможность изменения имени хоста после создания пула серверов. MYSQL01: Исправлена процедура обновления настроек MySQL серверов в пуле. SITE01: Фиксы безопасности для конфигурационных файлов nginx и httpd. SITE02: Исправлены ошибки создания сайтов в случае, если на сервере нет ни одного рабочего сайта. MONITOR01: Добавлено удаление серверов с мониторинга при их удаление из пула серверов. |
Обсуждение версии 7.2.x на форуме.
«1С-Битрикс: Веб-окружение» - Linux (BitrixEnv) будет полезно:
«1С-Битрикс: Веб-окружение» - Linux позволяет быстро и с минимальными затратами развернуть оптимальное окружение для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS 7 (x86_64):
Рассмотрим установку «1С-Битрикс: Веб-окружение» - Linux на оборудовании с уже установленной CentOS 7 (Minimal) (x86_64).
yum clean all && yum update
Загружаем скрипт «1С-Битрикс: Веб-окружение» - Linux и запускаем его командами:
wget https://repo.bitrix.info/yum/bitrix-env.sh && chmod +x bitrix-env.sh && ./bitrix-env.sh
yum install wget
reboot
:
После перезагрузки сервера снова продолжите установку BitrixEnv:
./bitrix-env.sh
exit
С версии 7.1 появилась возможность создания пула в «тихом» режиме, когда после установки окружения VMBitrix запускается сразу создание пула с нужным именем хоста и паролем для root MySQL.
./bitrix-env.sh [-s] [-p [-H hostname]] [-F] [-m mysql_version] [-M mysql_root_password]где:
-s
– Тихий режим установки. Не задавать вопросы (Silent or quiet mode. Don't ask any questions). -p
– Создать пул после установки окружения (Create pool after installation of bitrix-env). -H
– Имя хоста (Hostname for for pool creation procedure). -F
– Будет использоваться в качестве файрвола firewalld. -I
– Будет использоваться в качестве файрвола iptables (по умолчанию). -M
– Пароль root для MySQL (Mysql password for root user).-m 5.7
– установить MySQL 5.7 (по умолчанию).-m 8.0
– установить MySQL 8.0.Пример использования:
Запустить установку окружения в «тихом» режиме, использовать файрвол firewalld, создать пул с именем хоста server1, MySQL 8.0 и задать пароль root пользователя MySQL - 111111.
./bitrix-env.sh -s -p -H server1 -F -m 8.0 -M '111111'
Узнать список всех ключей запуска установки можно командами для VMBitrix и VMBitrix.CRM соответственно:
./bitrix-env.sh -h ./bitrix-env-crm.sh -h
Для перехода к выполнению любого действия в меню виртуальной машины введите число и нажмите Enter. Например, для настройки локального виртуального сервера в строке наберите 2 (Manage localhost) и нажмите Enter.
Чтобы вернуться из командной строки (если нажали 0. Exit или Ctrl+C) обратно в меню VMBitrix, введите в консоли команду:
/root/menu.sh
Работа с файлами в VMBitrix осуществляется по протоколам SSH / SFTP. Протоколы FTP и SCP по умолчанию не поддерживаются.
Каждая платформа имеет свои термины, используемые в работе. Чтобы без проблем ориентироваться в документации, учебных курсах, в помощь вам приведен словарь терминов системы.
Загрузите подходящий вам дистрибутив настроенной виртуальной машины BitrixVM.
С:\BitrixVM\
и запустите виртуальную машину с помощью подходящего ПО:
Linux
CentOS 64-bit
root
, а в поле Password пароль: bitrix
.
bitrix
) и нажмите Enter. Аналогично происходит смена пароля пользователя bitrix:
Виртуальный сервер готов для дальнейшего использования.
exit
Посмотреть краткий процесс установки BitrixVM для запуска сайта на «1С-Битрикс: Управление сайтом» можно в видеороликах на нашем Youtube канале:
Для перехода к выполнению любого действия меню виртуальной машины введите число и нажмите Enter. Например, для настройки локального виртуального сервера в строке наберите 2 (Manage localhost) и нажмите Enter.
Чтобы вернуться в вашу ОС, нажмите Ctrl+Alt (VMWare Player).
Чтобы вернуться из командной строки (если нажали 0. Exit) обратно в меню виртуальной машины, введите в консоли команду:
/root/menu.sh
Если вы запускаете несколько хостов в одной BitrixVM на локальном компьютере или в пределах вашей локальной сети, то можно указать для этих сайтов вместо IP свои выдуманные домены, предварительно прописав в файле hosts операционной системы или на сервере DHCP вашей сети. Тогда вы сможете обращаться к сайтам по доменным именам, но только в пределах вашего компьютера или вашей локальной сети.
Если при работе с BitrixVM возникли ошибки работы мастеров, то логи мастеров можно просмотреть в папке /opt/webdir/temp/
.
VMBitrix.CRM собирается на базе BitrixVM. Это готовое решение для CRM – внутри машины тоже самое, что и в основной машине BitrixVM.
Но у него есть отличия:
При старте сразу:
Далее нужно только установить Битрикс24.CRM (или восстановить копию), настроить почту и ssl-сертификат. И у вас готовый Битрикс24 с CRM!
Для отдельного сервера на базе CentOS 7 можно загрузить скрипт установки VMbitrix.CRM через консоль и запустить его командами:
wget http://repo.bitrix.info/yum/bitrix-env-crm.sh && chmod +x bitrix-env-crm.sh && ./bitrix-env-crm.sh
Также для VMBitrix.CRM есть вариант поставки exe-файла для тех, кто хочет в пару кликов познакомиться с Битрикс24.CRM и не обладает достаточными техническими знаниями. Совместим с Windows 7, 8, 10, Windows Server 2008 2012 2016.
Этот инсталлятор:
После останется установить Битрикс24.CRM или восстановить копию проекта.
Установка и перенос продуктов «1С-Битрикс» может быть осуществлена несколькими способами.
Для установки продукта «1С-Битрикс»:
Введите в адресной строке браузера адрес [dw]bitrix url[/dw][di][/di], указанный в BitrixVM или BitrixEnv. В конце добавьте к нему bitrixsetup.php, например, https://192.168.1.245/bitrixsetup.php. Откроется окно выбора продукта:
Выбирайте интересующий вас продукт. После загрузки запустится мастер установки продукта.
Подробнее рассказываем в учебном курсе Виртуальная машина BitrixVM.
Что должно быть готово перед переносом?
Для переноса сайта с хостинга (облака) или локального сервера на виртуальную среду BitrixVM или BitrixEnv необходимы: архив сайта и настроенная виртуальная среда BitrixVM или BitrixEnv.
После успешного создания архива сайта он будет доступен на странице [dw]Список резервных копий[/dw][di][/di] (Настройки > Инструменты > Список резервных копий) .
Также можно скачать архив сайта на локальный компьютер с помощью пункта меню Скачать.
Перенос сайта в виртуальную среду BitrixVM/BitrixEnv
Запустить предварительно настроенную виртуальную среду BitrixVM или BitrixEnv.
В адресной строке браузера ввести http://адрес_виртуальной_машины/ (можно указать домен или ip-адрес).
Настройки подключения к MySQL по умолчанию в BitrixVM/BitrixEnv берутся из /home/bitrix/www/bitrix/php_interface/dbconn.php
.
Можно указать собственные параметры подключения к MySQL - в этом случае необходимо еще выбрать опцию Создать базу данных, если не существует.
Ошибка "Call to undefined function mysqli_init()"
При переходе на новую версию платформы BitrixVM/BitrixEnv может возникнуть ошибка - "Call to undefined function mysqli_init()". Причина ошибки в том, что раньше в БД MySQL использовалось расширение mysql (объявлено устаревшим в PHP 5.5.0), а в новых версиях - mysqli.
Решение проблемы:
\bitrix\php_interface\dbconn.php
добавить:
define("BX_USE_MYSQLI", true);
\bitrix\.settings.php
:
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',поменять на:
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
/etc/php.d/30-mysqli.ini
(или в подобном):
extension=mysqli.so
Cделать рестарт httpd:
service httpd restart
systemctl restart httpd.service
Возможные проблемы и их решение |
При установке BitrixVM могут возникать ошибки, связанные с особенностями вашего ПК или с дистрибутивом.
Ниже список типовых проблем и способы их решения:
Не нашли свою проблему в списке? Переустановка часто помогает: удалите виртуальную машину, затем снова ее установите и скачайте дистрибутив продукта.
Программа для виртуальных машин (например, VMWare или VirtualBox) не поддерживает оборудование компьютера и выдает ошибку о несовместимости с процессором «Unsupported CPU detected. The host CPU does not support the necessary hardware requirements».
Как решить:
При запуске виртуальной машины появляется черный экран и сразу пропадает, а BitrixVM не стартует. Или появляется ошибка включающая слова [dw]VT-x, AMD-V, virtualization[/dw][di]Формулировка может быть вида «This host does not support "Intel EPT" hardware assisted MMU virtualization» или «This host supports Intel VT-x, but Intel VT-x is disabled».[/di].
Как решить:
Вы запускаете виртуальную машину и появляются ошибки, связанные с адаптером (adapter). Или сайт не открывается по IP и отображает сообщение «Не удается получить доступ к сайту».
Как решить:
Поле [dw]bitrix url[/dw][di][/di] отсутствует и IP4 имеет статус undefined.
Как решить:
При попытке открыть сайт по [dw]bitrix url[/dw][di][/di] после установки BitrixVM появляется ошибка «[dw]502 Bad Gateway/Bitrix Environment[/dw][di][/di]» или сообщение о том, что «Время ожидания ответа истекло».
Как решить:
Во время скачивания дистрибутива с сервера:
Как решить:
Процесс скачивания дистрибутива не быстрый и иногда файл скачивается с ошибками. Это может проявиться по-разному: ошибками в мастере установки или символами �. Пример пользователя:
Как решить: удалите виртуальную машину, вновь установите её и скачайте дистрибутив продукта.
Разработка виртуальной машины — процесс долгий и возможны ситуации, когда версии PHP или MySQL отстают от требований дистрибутива. В этом случае мастер установки обязательно подскажет вам, что их нужно обновить:
Как решить: обновите PHP и MySQL через меню BitrixVM.
Сначала необходимо выполнить подготовительные работы:
Подготовительные работы по настройке сервера выполнены и стало доступно [dw]меню виртуальной машины[/dw][di][/di]. Теперь можно обновить PHP и MySQL. Подробно об этом написано в уроке 8. Обновление PHP и MySQL (8. Update PHP and MySQL) отдельного курса по виртуальной машине.
Для начала работы с сервисами нужно создать и настроить пул сервера. Для этого нужно выбрать пункт главного меню 1. Create Management pool of server и ввести название сервера в данном пуле.
Мастер создания пула откроет все необходимые порты в CentOS для корректной работы сервисов продуктов «1С-Битрикс»:
Для большинства проектов достаточно всего лишь одного сервера в пуле, который создается на начальном этапе установки BitrixEnv (см выше). Добавление дополнительных может понадобится для масштабирования системы и распределения нагрузки между несколькими физическими серверами. Это делается назначением специальных ролей каждому серверу в пуле. Если у вас нет дополнительных физических машин, то необходимости добавления их в пул нет.
После создания пула в основном меню добавятся новые пункты в главном меню:
Добавление нового сервера в пул (кластер) осуществляется с помощью меню 1. Manage servers in the pool > 1. Add new host to the pool.
Для этого необходимо задать ip-адрес или DNS-имя сервера, выбрать короткое имя (в примере - server2) и ввести пароль root для подключаемого сервера:
Таким образом, можно добавлять любое количество серверов в пул:
Теперь можно управлять любым сервером пула с одной машины.
/opt/webdir/temp
.Удаление хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage servers in the pool > 2. Remove host from the pool . Если на хосте есть хоть какие-то роли, то удаление хоста невозможно.
Для этого необходимо задать ip-адрес или DNS-имя хоста удаляемого из пула сервера:
После подтверждения сервер будет удален из пула:
/opt/webdir/temp
.Перезагрузка хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage servers in the pool > 3. Reboot host.
Для этого необходимо задать имя хоста (в данном примере - server2) и согласиться на перезапуск сервера:
С помощью менеджера пула можно удаленно обновлять Веб-окружение и компоненты системы на любом хосте, входящем в пул.
Например, в пул добавлена виртуальная машина версии 7.4.0, нам нужно обновить ее до 7.4.х.
Таким же образом можно обновлять включенные в пул виртуальные машины ранних версий.
/opt/webdir/temp
.Смена пароля для пользователя bitrix осуществляется через пункт меню 1. Manage servers in the pool > 5. Change 'bitrix' user password on host.
Будет выдан запрос имени хоста, на котором нужно сменить старый пароль пользователя bitrix, указать новый и дать согласие на смену:
passwd
.Настройка таймзоны – очень важный параметр, который обязательно нужно проверить и при необходимости настроить правильно. Параметр влияет на синхронизацию с 1С, календари, заказы и многое другое, где требуется дата и время.
Дата и время на сервере – это не одна конкретная дата и время, а фактически три различных времени:
Каждое из них – со своим часовым поясом.
Europe/Moscow (MSK, UTC+03)
. Смена таймзоны происходит через пункт меню веб-окружения 1. Manage servers in the pool > 6. Configure pool timezone, и меняет дату и время в трёх местах сразу. Это очень важный момент, чтобы все три места работали с одинаковыми параметрами.
Удаление конфигурации пула осуществляется с помощью меню 1. Manage servers in the pool > 7. Remove pool configuration. После подтверждения конфигурация пула будет удалена:
Меню же вернется к своему первоначальному состоянию:
/opt/webdir/temp
.Обновлять версии PHP и MySQL необходимо, исходя из рекомендуемых системных требований продуктов «1С-Битрикс».
В процессе обновления VMBitrix они автоматически не обновляются. Обновить их нужно в ручном режиме с помощью соответствующего пункта меню виртуальной машины 1. Manage servers in the pool - 8. Update PHP and MySQL.
Укажите для обновления машину с конкретным именем хоста hostname:
Далее можно выбрать варианты, что именно обновить:
Для обновления версии выберите подходящий пункт Update PHP to version х.х:
Аналогичным способом можно и понизить версию PHP, выбрав нужную с помощью пункта меню Downgrade PHP to version х.х. Для VMbitrix.CRM минимальная версия – 7.0.
Если вы обновили VMBitrix до версии 7.1 и выше, то у вас появится возможность обновить версию MySQL до 5.7 Percona DB. Сделать это можно, выбрав пункт Upgrade MySQL to 5.7 version:
После обновления MySQL до версии 5.7 появится возможность обновить MySQL до версии 8.0 – Upgrade MySQL to 8.0 version:
/opt/webdir/temp
.
Если обновления объёмные
|
---|
Чтобы избежать проблем при обновлении нескольких версий самой Виртуальной машины (BitrixVM), а также PHP или SQL, сделайте это в пошаговом режиме. Примерно в таком порядке:
|
Смена имени хоста в пуле осуществляется через пункт меню 1. Manage servers in the pool > 9. Change hostname.
Будет выдан запрос имени хоста, на котором нужно сменить его старое имя, указать новое и дать согласие на смену:
После успешного выполнения задачи, будет сохранено новое название:
При разработке своих решений на основе виртуальной машины BitrixEnv/VMBitrix.CRM, может понадобиться отслеживание изменений в ее версиях файлов и новых возможностей. Для этого вы можете включить репозиторий бета-версии BitrixEnv/VMBitrix.CRM или подключить репозиторий исходников виртуальной машины и отслеживать все изменения.
Если у вас стабильный вариант, вам нужно обновить BitrixEnv/VMBitrix.CRM до 7.3.2 или выше.
Затем необходимо обязательно обновить пакеты через меню машины либо командой:
yum clean all && yum update
Выполнить команду:
yum clean allВ строке со списком репозиториев для беты будет
bitrix-beta
, для стабильной bitrix
. Например:
Cleaning repos: base bitrix-beta bitrix-source epel ...
Чтобы задать имя хоста локального сервера, нужно перейти в главном меню 2. Manage localhost - 1. Configure hostname.
Далее согласиться на изменение и ввести название Input hostname, например, server1 (по умолчанию это localhost.localdomain):
После чего системе будет присвоено новое имя:
При первом старте BitrixVM получение IP-адреса сервером происходит автоматически, если в сети есть настроенный DHCP-сервер.
Чтобы с помощью него сменить или обновить IP-адрес локального сервера, нужно:
Для задания IP-адреса в ручном режиме необходимо:
Чтобы перезапустить сервер виртуальной машины BitrixVM, нужно перейти в главном меню 2. Manage localhost - 4. Reboot server.
Далее согласиться на перезапуск сервера:
Чтобы выключить сервер виртуальной машины BitrixVM, нужно перейти в главном меню 2. Manage localhost - 5. Shutdown server.
Далее согласиться на остановку сервера:
Для обновления локальной виртуальной машины необходимо выбрать в административном меню пункт 2. Manage localhost - 6. Update server и согласиться на обновление.
Скрипт автоматически проверит обновления компонентов и произведет их установку.
Failing package is: Percona-Server-Client-57-5.7.25-28.1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PerconaТо нужно выполнить команду обновления пакета Percona:
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
И далее запустить обновление заново через меню.
Если после обновления, что-то перестанет работать, то можно вернуть полностью или частично старые файлы настроек соответствующей службы, т.к. конфигурационные файлы при обновлении не перезаписываются, а сохраняются в файлах *.ori.(метка времени).
mv -f /etc/php.d/(имя модуля).ini.disabled /etc/php.d/(имя модуля).ini service httpd restart
Если в процессе обновления появится ошибка, что недостаточно места в загрузочном разделе /boot:
At least 26MB more space needed on the /boot filesystem.То нужно в /etc/yum.conf установить
installonly_limit=2
. package-cleanup --oldkernels --count=2
/opt/webdir/temp
.При разработке своих решений на основе виртуальной машины BitrixEnv/VMBitrix.CRM, может понадобиться отслеживание изменений в ее версиях файлов и новых возможностей. Для этого вы можете включить репозиторий бета-версии BitrixEnv/VMBitrix.CRM или подключить репозиторий исходников виртуальной машины и отслеживать все изменения.
Если у вас стабильная версия машины, вам нужно обновить BitrixEnv/VMBitrix.CRM до 7.3.2 или выше.
Затем необходимо обязательно обновить пакеты через меню машины либо командой:
yum clean all && yum update
Выполнить команду:
yum clean allВ строке со списком репозиториев для беты будет
bitrix-beta
, для стабильной bitrix
. Например:
Cleaning repos: base bitrix-beta bitrix-source epel ...
Чтобы обновить настройки для всех MySQL-серверов, нужно перейти в главном меню 3. Configure MySQL service for the pool - 1. Update settings for all MySQL servers:
Опция обновляет конфигурацию одного или нескольких MySQL-серверов в пуле (если такое имеется) и приводит их к дефолтным настройкам для виртуальной машины.
/opt/webdir/temp
.Если вам понадобилось сменить пароль root MySQL-сервера, нужно перейти в главном меню 3. Configure MySQL service for the pool - 2.Change password for MySQL root user.
Далее выбрать нужный сервер (имя хоста), согласиться на изменение и ввести новый пароль.
Остановить или запустить MySQL-сервер можно в главном меню 3. Configure MySQL service for the pool - 3. Stop/Start MySQL service on the server .
Далее выбрать нужный сервер (имя хоста), согласиться на остановку или старт:
В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластерную конфигурацию master-slave «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».
Ключевые особенности:
Схема «master - slave» реализуется средствами MySQL. Платформа «1С-Битрикс» позволяет гибко балансировать нагрузку между серверами, участвующими в репликации.
Для создания slave сервера MySQL нужно:
/opt/webdir/temp
.Для переноса master сервера MySQL на другую машину необходимо:
Таким образом, мы перенесли master сервер MySQL с машины server1 на server2.
/opt/webdir/temp
.Для удаления slave сервера MySQL необходимо:
Таким образом, мы освободили ресурсы машины server1 под другие роли.
/opt/webdir/temp
.Продукты «1С-Битрикс» позволяют использовать пул серверов memcached для работы с кешем данных.
Это обеспечивает:
Для создания memcached сервера нужно:
/opt/webdir/temp
.Чтобы обновить настройки для всех memcached -серверов, нужно перейти в главном меню 4. Configure memcached servers - 2. Update settings on all memcached servers:
Эта опция запускает проверку текущей конфигурации одного или нескольких memcached-серверов в пуле (если такие имеются).
/opt/webdir/temp
.Для удаления memcached сервера необходимо:
/opt/webdir/temp
.При разворачивании проектов на базе BitrixVM/BitrixEnv необходимо следить за состоянием сервера и отдельных его компонентов.
В составе BitrixVM/BitrixEnv уже имеются системы мониторинга - Munin и Nagios, которые имеют большое количество различных компонентов по отслеживанию функционирования всех систем сервера или нескольких серверов в составе кластера.
Для начала работы систем мониторинга необходимо:
Логины / пароли по умолчанию (рекомендуется сменить на свои):
Nagios: nagiosadmin / nagiosBitrixMon
Munin: admin / muninBitrixMon
Далее нужно будет указать e-mail для системных уведомлений Nagios и данные почтового сервера для отправки e-mail. Если отказаться, будет по умолчанию использоваться e-mail root-пользователя:
y
и введите логин и пароль для доступа к SMTP-серверу, в противном случае - n
.auto
, plain
, scram-sha-1
, cram-md5
, gssapi
, external
, digest-md5
, login
, ntlm
.y
, в противном случае - n
.Затем мастер сделает необходимые настройки и запустит сервисы мониторинга сервера.
/opt/webdir/temp
.Для мониторинга сервера из браузера нужно зайти по адресам и авторизоваться под учетными записями мониторинга:
Проверить работу нотификаций можно легко:
CentOS 6:
service mysqld stop
CentOS 7:
systemctl stop mysqld.service
По умолчанию Nagios будет записывать в лог 3 сообщения со статусом CRITICAL;SOFT каждую минуту, а 4-му сообщению даст статус CRITICAL;HARD:
В итоге сообщение примерно такого содержания должно прийти на почту, указанную в п.3 настройки уведомлений для админа (поле from address):
Subject: ** PROBLEM Service Alert: server2/MySQL: connection to 3306 is CRITICAL ** ***** Nagios ***** Notification Type: PROBLEM Service: MySQL: connection to 3306 Host: server2 Address: 192.168.1.246 State: CRITICAL Date/Time: Wed Jul 5 14:12:46 MSK 2017 Additional Info: connect to address 192.168.1.246 and port 3306: Connection refused
После запуска службы MySQL командой # service mysqld start
(CentOS 6) или # systemctl start mysqld.service
(CentOS 7) в логе Nagios-а появится запись со статусом OK;HARD:
И должно прийти сообщение на почту:
Subject: ** RECOVERY Service Alert: server2/MySQL: connection to 3306 is OK ** ***** Nagios ***** Notification Type: RECOVERY Service: MySQL: connection to 3306 Host: server2 Address: 192.168.1.246 State: OK Date/Time: Wed Jul 5 14:22:46 MSK 2017 Additional Info: TCP OK - 0.001 second response time on 192.168.1.246 port 3306
Для выключения сервисов мониторинга Nagios и Munin необходимо:
/opt/webdir/temp
.Если запущены системы мониторинга серверов и был добавлен новый хост в кластер, то система сама отследит новую машину и запустит задачу на добавление этой машины в мониторинг.
Пункт меню 5. Configure pool monitoring > 3. Add new host(s) on monitoring позволяет вручную запустить добавление нового хоста в систему мониторинга, если по каким-либо причинам он не добавился в мониторинг:
/opt/webdir/temp
.Мастер создания дополнительных сайтов, позволяет развернуть на одной виртуальной машине несколько сайтов, как на независимых установках «1С-Битрикс», так и в рамках многосайтовости.
Для добавления дополнительного сайта необходимо:
/etc/hosts
на виртуальной машине, а также на всех компьютерах, с которых будет осуществляться доступ к данному сайту. UTF-8
или windows 1251
(для ядра типа kernel и ext_kernel).y
(для ядра типа kernel и ext_kernel)./home/bitrix/ext_www/{название_хоста}
, в которой будут:
/home/bitrix/ext_www/{название_хоста}
, то в списке сайтов виртуальной машины данное ядро не появится до тех пор, пока не будет создан хотя бы один сайт (link) на это ядро./opt/webdir/temp
.Для удаления записи о дополнительном сайте необходимо в административном меню выбрать пункт 6. Configure pool sites > 2. Delete site и выбрать директорию удаляемого сайта (Enter site directory):
/opt/webdir/temp
.По умолчанию в виртуальной машине cron уже включен. Если по каким-либо причинам нужно отключить эту службу, то для этого необходимо:
Аналогичным способом осуществляется и включение службы:
Для настройки SMTP-клиента выполните следующее:
y
и введите логин и пароль для доступа к SMTP-серверу, в противном случае - n
.auto
, plain
, scram-sha-1
, cram-md5
, gssapi
, external
, digest-md5
, login
, ntlm
(например для yandex.ru достаточно auto
, а для mail.ru - plain
).y
, в противном случае - n
.Дождаться пока задача по настройке SMTP будет закончена.
В логах msmtp можно всегда посмотреть ошибки отправки писем. Находятся логи в директории /home/bitrix/.
Для каждого сайта свой лог msmtp, в названии лога будет указано имя сайта – msmtp_{SiteName}.log. Например для сайта по умолчанию лог будет иметь имя msmtp_default.log.
/opt/webdir/temp
.Здесь представлены настройки некоторых почтовых сервисов.
Доступно подключение как через обычный пароль, так и через пароль приложения (рекомендуемый).
Доступно подключение через пароль приложения.
Доступно подключение через пароль приложения.
Дополнительно
Настройки для других smtp сервисов можно взять по ссылкам:
В логах msmtp можно всегда посмотреть ошибки отправки писем. Находятся логи в директории /home/bitrix/.
Для каждого сайта свой лог msmtp, в названии лога будет указано имя сайта – msmtp_{SiteName}.log. Например для сайта по умолчанию лог будет иметь имя msmtp_default.log.
Например, у Яндекса и Google по умолчанию лимит на отправку – 500 писем в сутки. Если в письме несколько получателей, то письмо каждому из них считается отдельным письмом. Этот ежесуточный лимит может изменяться на основании их собственных алгоритмов подсчета благонадежности пользователя.
По умолчанию в виртуальной машине включена поддержка доступа к сайтам через протоколы HTTP и HTTPS.
Если необходимо оставить доступ к сайту только по защищенному протоколу HTTPS, то для этого нужно:
Аналогичным способом осуществляется возврат доступа к сайту по протоколу HTTP:
/opt/webdir/temp
.При разворачивании проектов на базе BitrixVM/BitrixEnv, часто встает задача создания резервной копии проекта по расписанию.
В BitrixVM/BitrixEnv есть функционал автоматического резервного копирования сайта и базы данных. Бекап будет создан по расписанию в виде архива .tar.gz и записан в директории /home/bitrix/backup/archive/
.
У данного способа есть как преимущества, так и недостатки в сравнении с встроенным в продукты «1С-Битрикс» механизмом создания резервной копии:
Для создания расписания автоматического резервного копирования средствами BitrixVM/BitrixEnv необходимо:
Если необходимо выполнить более точную настройку бэкапов, можно воспользоваться утилитой командной строки:
/opt/webdir/bin/bx-sites -a backup -d dbcp --enable --minute=10 --hour=18 --day=any --month=any --weekday=any
/etc/crontab
) добавляется задача резервного копирования проекта.
Бэкап делается для ядра (сайта типа kernel и ext_kernel) и всех его link, если такие существуют. Для этого создается задание в crontab-файле. Например:
10 22 * * * bitrix /opt/webdir/bin/bx_backup.sh sitemanager /home/bitrix/backup/archive
В качестве первой опции указывается имя БД, второй опцией указывается каталог, в котором будет создан архив.
В итоге скрипт создаст архив следующего вида: www_backup_
Внутри архива должны присутствовать следующие файлы:
/home/bitrix/mysql_dump__DD.MM.YYYY_.sql
-a|--action
- действие по управлению сайтами, в данном случае это backup-d|--database
- название БД (в бэкапе будут содержаться данные для всех сайтов, которые используют эту БД)--enable|--disable
- включение или отключение бэкапа для сайтов--minute
- параметры записи в crontab файле (минуты)--hour
- параметры записи в crontab файле (часы)--day
- параметры записи в crontab файле (день)--month
- параметры записи в crontab файле (месяц)--weekday
- параметры записи в crontab файле (день недели)В случае успешного выполнения утилита вернет новые опции для сайта:
/opt/webdir/bin/bx-sites -a backup -d sitemanager0 --enable --minute=10 --hour=23 --day=1 --month=any --weekday=any -o json | python -mjson.tool ... "BackupCronFile": "/etc/crontab", "BackupDay": "1", "BackupFolder": "/home/bitrix/backup/archive", "BackupHour": "23", "BackupMinute": "10", "BackupMonth": "*", "BackupTask": "enable", "BackupVersion": "v5", "BackupWeekDay": "*", ...
Ряд файлов/каталогов необходимо исключить из резервной копии. Список таких исключений можно найти в файле /opt/webdir/bin/ex.txt.
По умолчанию, в нем находятся следующие подкаталоги:
bitrix/cache bitrix/managed_cache bitrix/stack_cache bitrix/local_cache bitrix/backup bitrix/tmp upload/tmp upload/resize_cache
Как уже сказано выше, в бэкап включается:
/home/bitrix/mysql_dump_<db>.sql
);Например команда:
/opt/webdir/bin/bx_backup.sh sitemanager /home/bitrix/backup/archive
создает в директории /home/bitrix/backup/archive/ архив www_backup_<DBName>_DD.MM.YYYY_<random_string>.tar.gz, например www_backup_sitemanager_09.03.2023_zJ34ogIj.tar.gz:
Для восстановления нужно распаковать бэкап в DocumentRoot
ядра. В примере рассмотрим директорию для сайта по умолчанию /home/bitrix/www:
tar -xvzf /home/bitrix/backup/archive/www_backup_sitemanager_09.03.2023_zJ34ogIj.tar.gz -C /home/bitrix/www/
После чего нужно восстановить БД:
mysql sitemanager < /home/bitrix/www/home/bitrix/mysql_dump_sitemanager_09.03.2023_zJ34ogIj_after_connect.sql
Аналогичной командой нужно восстановить другой файл с бекапом базы данных сайта:
mysql sitemanager < /home/bitrix/www/home/bitrix/mysql_dump_sitemanager_09.03.2023_zJ34ogIj.sql
Затем восстановите данные дополнительных сайтов типа link, если они есть:
rsync -av /home/bitrix/www/home/bitrix/ext_www/<site_name> /home/bitrix/ext_www/
Далее удалите дамп базы данных и бэкапы дополнительных сайтов в целях безопасности.
rm -fr /home/bitrix/www/home/bitrix/*
Если копия восстанавливается на другом сервере, то сначала нужно создать восстанавливаемые сайты в меню VMBitrix. Также пароль от БД в архиве не подойдет к БД нового сервера, так как пароли генерируются случайным образом после установки новой виртуальной машины.
То есть после восстановления нужно сменить пароль пользователя базы данных. Эти данные можно взять в секции connections
файла /bitrix/.settings.php после распаковки архива бэкапа (для сайта по умолчанию пользователь базы данных – bitrix0
).
Сменить пароль можно SQL запросом в консоли mysql:
SET PASSWORD FOR 'bitrix0'@'localhost' = PASSWORD('new_pass');
Затем восстановить дампы базы данных и бэкапы дополнительных сайтов.
Аналогичные действия нужно провести, если в качестве DocumentRoot
для сайтов использовалась директория /home/bitrix/ext_www.
Настройка NTLM-авторизации...
После включения и настройки механизм начинает работать следующим образом:
Более подробно ознакомиться с работой механизма можно в уроке NTLM-авторизация в стороннем окружении курса Администратор. Базовый.
Рассмотрим настройку NTLM-авторизации на примере:
Продукт «1С-Битрикс» готов к использованию NTLM-авторизации, осталось настроить виртуальную машину.
Для настройки виртуальной машины необходимо подключитьcя к ней под пользователем root, выбрать пункт меню 6. Configure pool sites > 7. Configure NTLM auth for all sites и ввести необходимые данные:
После подтверждения корректности введенных данных мастер настроит и запустит все необходимые службы, а также подключит виртуальную машину в домен.
net ads testjoin
Настройка завершена, для успешной NTLM-авторизации осталось проверить настройки браузеров.
Для успешной работы механизма нужно, чтобы веб-сервер находился в зоне Local Intranet (при необходимости нужно добавить):
Добавить веб-сервер к списку доверенных URI для автоматической NTLM-авторизации (через параметр network.automatic-ntlm-auth.trusted-uris
на странице Firefox: about:config)
Мастер позволяет управлять работой сервисов XMPP и SMTP с помощью Cron. Это может понадобится, если необходимо рассылать jabber- и почтовые сообщения в случае, если на сайте нет активности, т.е если все события на сайте работают на хитах.
Для управления необходимо:
Аналогичным образом отключается данные опции:
/opt/webdir/temp
.Управление настройками композитного кеша для NGINX находятся в меню виртуальной машины: 6. Configure pool sites > 9. Configure nginx for composite:
Эта настройка выполняет следующие действия:
/etc/nginx/bx/maps
. Например, включен или выключен композит для https-запросов.Для включения или обновления настроек:
/opt/webdir/bin/bx-sites -o json -a composite --enable --site=default
Для отключения настроек:
/opt/webdir/bin/bx-sites -o json -a composite --disable --site=default
/opt/webdir/temp
.После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.
Заголовки при использовании Композита в BitrixVM могут быть такие:
X-Bitrix-Composite:Nginx (file)
- отдача страниц - NGINX, хранение - файлы;X-Bitrix-Composite:Nginx (memcached)
- отдача страниц - NGINX, хранение - memcached;X-Bitrix-Composite:Cache (200)
- отдача страниц - PHP, хранение - файлы.Условия разделены на две группы:
Настройки определяются в файле: /etc/nginx/bx/maps/composite_settings.conf
. NGINX не использует технологию Композитный сайт, если соблюдается хотя бы одно условие:
BX_ACTION_TYPE
,BX_AJAX
,ncc
,bxajaxid
,sessid
,Определение условий сделано через http_ngx_map_module:
$http_bx_action_type
содержит данные, то композитный ключ $not_bx_action_type
будет содержать 0.
map $http_bx_action_type $not_bx_action_type { default "0"; '' "1"; }
# test all global conditions map "${not_bx_action_type}${not_bx_ajax}${is_get}${non_arg_ncc}${non_arg_bxajaxid}${non_arg_sessid}${is_modern}${is_good_uri}${non_cookie_ncc}${is_storedAuth}" $is_global_composite { default "1"; ~0 "0"; }
Если хоть одно из условий содержало 0, то итоговое значение переменной $is_global_composite
будет равно 0.
Персональные проверки NGINX для сайта, определяются в момент включения или обновления композита из консольного меню. Для таких настроек создается и обновляется файл в каталоге: /etc/nginx/bx/maps/
. Имя файла имеет специальный формат: <ID>.cache_<SITE_NAME>.conf, где:
NGINX не будет использовать композитный кеш, если выполняется хотя бы одно из условий:
~EXCLUDE_PARAMS
в .config.php),DOMAINS
в .config.php),~INCLUDE_MASK
в .config.php),~EXCLUDE_MASK
в .config.php).Определение условий сделано через http_ngx_map_module:
INCLUDE_MASK
для запроса, будет создана следующая структура:
# test include uri for site map $uri $is_include_uri_02 { default "0"; "~*^.*?\.php$" "1"; "~*^.*?/$" "1"; }
Если переменная $uri
содержит одно из следующих регулярных выражений, то $is_include_uri_02
будет содержать 1, в остальных случая переменная будет равна 0.
# variable $is_site_composite_02 used in site config map "${config_domain_02}${is_include_uri_02}${not_exclude_uri_02}${not_https_schema_02}" $is_site_composite_02 { default "1"; ~0 "0"; }Если хоть одна из переменных получит значение 0, переменная
$is_site_composite_02
будет содержать 0, в остальных случаях 1.Ключ - это файл, который NGINX будет искать в композитном кеше (ключ для memcached хранилища, файл в случае хранения на файлах). Он нужен для того, чтобы привести запрос на сайт (uri) к универсальному виду.
Данный ключ определяется в глобальных настройках в файле /etc/nginx/bx/maps/composite_settings.conf
. Так же, как для условий, используется модуль nginx ngx_map_module:
map $uri $composite_key { default $uri; ~^(?P.+)/$ $non_slash; ~^(?P .+)/index.php$ $non_index; ~^(?P .+)/index.html$ $non_index; }
Действуют следующие правила:
Проверки для включения технологии на стороне NGINX используются в конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled
. В случае стандартной конфигурации, файл обычно содержит следующие настройки:
# Include parameters common to all websites include bx/conf/bitrix.conf;
При включенной технологии Композитный сайт, настройки зависят от выбранного хранилища.
Указанные в этом подразделе настройки производить не нужно. Здесь для ознакомления дано описание того, что происходит при включении настроек NGINX на технологию Композитный сайт в BitrixVM.
/bitrix/html_pages/.config.php
опция STORAGE содержит значение files
./etc/nginx/bx/site_enabled
, должно быть прописано:
# определяем ключ композита и файл на диске set $composite_cache "bitrix/html_pages/${host}${composite_key}/index@${args}.html"; set $composite_file "${docroot}/${composite_cache}"; # файл, который определяет включен ли композит на сайте или нет set $composite_enabled "${docroot}/bitrix/html_pages/.enabled"; # переменная, которая используется для композитной проверки set $use_composite_cache ""; # если переменная глобальных условий содержит 1, добавляем признак в use_composite_cache if ($is_global_composite = 1) {set $use_composite_cache "A";} # если переменная персональных условий сайта содержит 1, добавляем признак use_composite_cache if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";} # Подключаем конфиг, который содержит наши стандартные настройки, без location по умолчанию include bx/conf/bitrix_general.conf; # Основной location location / { # если файл включения композита существует, добавляем признак в use_composite_cache if (-f $composite_enabled) { set $use_composite_cache "${use_composite_cache}C"; } # если файл кеша существует, добавляем признак в use_composite_cache if (-f $composite_file) { set $use_composite_cache "${use_composite_cache}D"; } # если все четыре условия выполняются, отправляем запрос в location c кешем if ($use_composite_cache = "ABCD") { rewrite .* /$composite_cache last; } # по дефолту отправляем в apache proxy_pass $proxyserver; }
/bitrix/html_pages/.config.php
опция STORAGE содержит значение memcached
или memcached_cluster
.
/etc/nginx/bx/site_enabled
, должно быть прописано:
# устанавливаем параметры подключения для memcached memcached_connect_timeout 1s; memcached_read_timeout 1s; memcached_send_timeout 1s; memcached_gzip_flag 65536; # ключ поиска set $memcached_key "/${host}${composite_key}/index@${args}.html"; # включен ли композитный кеш set $composite_enabled "${docroot}/bitrix/html_pages/.enabled"; # переменная, которая используется для проверки работы с композитом при запросе пользователя set $use_composite_cache ""; # учитываем глобальные условия if ($is_global_composite = 1) {set $use_composite_cache "A";} # учитываем персональные условия if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";} # подключаем общие параметры для bitrix окружения, без использования default location include bx/conf/bitrix_general.conf; # основной location location / { # если данные не найдены в кеше проксируем запрос на apache error_page 404 405 412 502 504 = @apache; # учитываем наличие .enabled файла if (-f $composite_enabled) { set $use_composite_cache "${use_composite_cache}C"; } default_type text/html; # если все совпало, отправляем запрос в memcached if ($use_composite_cache = "ABC") { add_header X-Bitrix-Composite "Nginx (memcached)"; memcached_pass localhost:11211; } proxy_pass $proxyserver; } location @apache { proxy_pass $proxyserver; }
После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.
Заголовки при использовании Композита в BitrixVM могут быть такие:
X-Bitrix-Composite:Nginx (file)
- отдача страниц - NGINX, хранение - файлы;X-Bitrix-Composite:Nginx (memcached)
- отдача страниц - NGINX, хранение - memcached;X-Bitrix-Composite:Cache (200)
- отдача страниц - PHP, хранение - файлы.proxy_ignore_client_abort
нужно делать в крайних случаях, обычно это делать не требуется. Лучше это делать вручную и для конкретных location
, а не глобально на весь сервер. В следующих версиях BitrixVM/BitrixEnv этот пункт меню будет переработан. Включение параметра nginx proxy_ignore_client_abort
может быть полезным при неполадках в работе Телефонии, Открытых линиях. Данный параметр определяет, закрывать ли соединение с проксированным сервером в случае, если клиент закрыл соединение, не дождавшись ответа.
Для управления необходимо:
proxy_ignore_client_abort
:
Аналогичным образом отключается данный параметр:
/opt/webdir/temp
.Если по каким-либо причинам на сайтах появились серьезные ошибки: отсутствие модулей на сайте или нет подключения к БД (не получается подключиться с данными настроек сайта), то в меню виртуальной машины появляется пункт меню 6. Manage sites in the pool > 11. Show sites with errors:
Выбрав этот пункт меню, отобразится список сайтов с кратким описанием ошибки (в данном примере - нет соединения с базой данных mysql):
Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.
Для установки Sphinx на сервер необходимо:
/opt/webdir/temp
.Чтобы обновить настройки для всех Sphinx-инстансов, нужно перейти в главном меню 7. Configure Sphinx service for the pool > 2. Update sphinx instance on server (add index):
Эта опция запускает проверку текущей конфигурации одного или нескольких Sphinx-инстансов в пуле (если такие имеются) и запускает принудительную переиндексацию.
/opt/webdir/temp
.Для удаления Sphinx-инстанса с сервера необходимо:
/opt/webdir/temp
.В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластеризацию веб-сервера в «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».
При разделении проекта на несколько веб-серверов необходимо решить две задачи:
Для создания роли веб-сервера нужно:
/opt/webdir/temp
.В разделе 8. Manage pool web servers > 2. Manage PHP extensions можно включить дополнительные модули PHP, которые могут понадобится в продуктах «1C-Битрикс».
На данный момент можно включить модуль SSH2 для PHP:
Выключается данный модуль аналогично:
/opt/webdir/temp
.Начиная с версии BitrixVM 7.2.0, добавилась возможность подключения SSL-сертификатов как бесплатного Let's Encrypt, так и своего собственного, выпущенного любым авторизованным центром сертификации.
Центр сертификации Let’s Encrypt выдает SSL-сертификаты с проверкой домена (DV, Domain-validated certificate) бесплатно, срок их действия – 90 дней. Они начального уровня и подтверждают домен, а также шифруют и защищают данные при передаче с помощью протокола https. Установить его себе на сайт могут как физические лица, так и организации. Подойдут для небольших сайтов и маленьких проектов, когда нет необходимости в большом доверии со стороны клиентов и посетителей сайта. В BitrixVM SSL-сертификаты Let’s Encrypt выпускаются в течение нескольких минут, а продление производится автоматически, примерно за месяц до истечения срока действия.
SSL-сертификаты, предполагающие более высокое доверие к вашим продуктам, компании и сервисам, выпускают центры сертификации. При этом проводится более тщательная проверка:
SSL-сертификаты с проверкой компании (OV, Organization validation) – кроме защиты информации гарантируется принадлежность домена конкретной организации. Выдается только юридическим лицам с подтвержденным номером телефона. На сайте с таким сертификатом посетитель может найти информацию об организации-владельце сайта, обычно, просто щелкнув по иконке замочка.
SSL-сертификаты с расширенной проверкой (EV, Extended validation) – то же, что и OV, только проверяется уже налоговая и коммерческая деятельность компании, причем более тщательно. На сайте рядом с замочком появляется название компании. Чаще всего встречаются у банков и онлайн-систем с большим количеством посетителей.
Собственные SSL-сертификаты, выпущенные авторизованными центрами, нужно выпускать и продлевать самостоятельно. В BitrixVM их нужно подключать каждый раз, когда происходит их перевыпуск в центре сертификации.
Для создания SSL-сертификата Let’s Encrypt нужно:
и подтвердить ввод:
Проверить выпущенный сертификат можно легко – перейти на ваш сайт по протоколу https, у валидного сертификата будет замочек:
Срок действия – 90 дней. Перевыпуск происходит автоматически за 20 дней до окончания срока действия.
С версии BitrixVM 7.4.0 проверка сертификатов автоматически производится еженедельно в субботу в 2 часа ночи по cron-у.
Если вам нужно вручную обновить сертификат, запустите его получение для существующего домена. Система проверит и при необходимости обновит сертификаты.
Также вы можете вручную командой:
/home/bitrix/dehydrated/dehydrated -c
Система проверит сроки действия и при необходимости запустит обновление.
Лог обновления можно посмотреть по пути: /home/bitrix/dehydrated_update.log.
Подробнее о лимитах Let’s Encrypt читайте в статье Rate Limits.
Если у вас есть свой сертификат, выпущенный любым авторизованным центром, то можно также его подключить к сайту в BitrixVM.
У вас должны быть следующие файлы: приватный ключ (private key), цепочка сертификатов (certificate chain) и сам сертификат (certificate).
Для подключения своего SSL-сертификата нужно:
Пути получились такие:
/home/bitrix/ssl/test2.b24test.site_privkey.pem
/home/bitrix/ssl/test2.b24test.site_cert.pem
/home/bitrix/ssl/test2.b24test.site_chain.pem
Проверку результата можно выполнить легко – перейти на ваш сайт по протоколу https, у валидного сертификата будет зеленый замочек:
Поддерживается ввод нескольких сайтов, через запятую. Следить за сроком действия своего сертификата вы должны сами. Перевыпуск осуществляется также владельцем сайта. После перевыпуска нового сертификата нужно будет заново его импортировать.
Если что-то пошло не так или вы хотите восстановить самоподписанный сертификат, который создается при первом запуске BitrixVM, то для этого нужно:
/home/bitrix/dehydrated/certs/test2.b24test.site/fullchain.pem
) и подтвердить действие:
Для удаления веб-сервера необходимо:
/opt/webdir/temp
.По умолчанию в VMBitrix для Push&Pull используется модуль Nginx-PushStreamModule. Если сервис падает, недоставленные сообщения теряются, порождая высокую нагрузку на PHP-бэкенд из-за особенностей работы модуля nginx. Новый модуль на NodeJS лишен этих недостатков, а также имеет расширенный функционал. В следующем уроке читайте, как перейти на NodeJS RTC вместо устаревшего Nginx-PushStreamModule.
По умолчанию в VMBitrix.CRM для Push&Pull сервера используется модуль на NodeJS.
Модуль сервера очередей Nginx-PushStreamModule устарел и может работать нестабильно (зависание сообщений, падения). В результате чего сообщения могут не доставляться, это вызывает высокую нагрузку на службу PHP из-за особенностей работы модуля Nginx. Также он ограничен в функционале – в нем нет поддержки protobuf и персональных каналов, которые работают без сервера, нет возможности опроса публичного канала, чтобы узнать, кто в сети, и т.д.
Поэтому крайне рекомендуется использовать вместо устаревшего Nginx-PushStreamModule новый NodeJS-Pushserver.
Чтобы перейти на новый модуль NodeJS RTC вместо Nginx-PushStreamModule, нужно:
/opt/webdir/temp
.
Чтобы перейти с NodeJS RTC обратно на модуль Nginx-PushStreamModule, нужно:
/opt/webdir/temp
.Все изменения в виртуальной машине – настройки, запуск каких-либо служб, синхронизация и др. осуществляются с помощью скриптов – задач.
Просмотреть историю, а также выполняемые в данный момент задачи, можно с помощью пункта меню 10. Background pool tasks:
Просмотреть запущенную в данный момент задачу можно с помощью пункта меню 10. Background pool tasks > 1. View running tasks:
Для её остановки нужно перейти в пункт меню 10. Background pool tasks > 1. View running tasks > 1. Stop task и ввести идентификатор задачи:
Чтобы очистить историю нужно выбрать пункт меню 10. Background pool tasks > 2. Delete history:
Далее выбрать количество дней, за которое нужно оставить историю, и фильтр, по которому выбирать задачи (к примеру, выберем все задачи с TaskID common):
После этого будут выведены все задачи, удовлетворяющие заданному интервалу и фильтру, и далее запрос на очистку истории:
/opt/webdir/temp
. Сервис Конвертер файлов выполняет преобразование документов и видео для просмотра в постах или комментариях ленты Новостей и Задач, в Диске, а также осуществляет генерацию документов по шаблонам в CRM.
Роль Конвертер файлов в VMBitrix доступна начиная с версии 7.5.0.
Для работы роли необходимо, чтобы в «1С-Битрикс24» были установлены модули:
После установки модулей их настройка не требуется, новая роль при ее активации сама настроит нужные опции для вашего сайта.
Для настройки роли выполните следующие шаги:
vm1.local
):
configure_transformer_**********
, которая:
Для дальнейшей эксплуатации могут понадобиться другие учебные материалы:
/opt/webdir/temp
.Чтобы удалить роль Конвертер файлов, нужно:
/opt/webdir/temp
.При запуске виртуальной машины BitrixVM или физического сервера с установленным пакетом BitrixEnv сервисом bvat автоматически настраиваются основные параметры Apache, PHP, MySQL и nginx в зависимости от количества доступной памяти. Это позволяет обеспечивать оптимальные настройки сервера.
Но в ряде случаев возникает необходимость изменения некоторых параметров без отключения сервиса bvat. Для внесения таких изменений в настройки сервера предусмотрены специальные конфигурационные файлы, позволяющие переопределять параметры, устанавливаемые сервисом bvat. Они имеют свое название и хранятся в директориях:
MySQL: /etc/mysql/conf.d/z_bx_custom.cnf
Apache: /etc/httpd/bx/custom/z_bx_custom.conf
/etc/nginx/bx/site_ext_enabled/
- конфигурационные файлы своих дополнительных сайтов для всего сервера (например, bx_ext.conf, bx_ext_custom1.conf, ext_custom_site.com.conf и т.п) /etc/nginx/bx/settings/
- конфигурационные файлы настроек для уровня http всего сервера (например, z_bx_custom.conf, z_bx_custom1.conf и т.п)/etc/nginx/bx/site_settings/<SITE_NAME>/
- персональные настройки конкретного сайта, начиная с версии BitrixVM 7.5 или бета версии 7.4.10 (например, /etc/nginx/bx/site_settings/site.com/myconfig.conf).PHP: /etc/php.d/z_bx_custom.ini
В случае, если в этих директориях нет конфигурационных файлов, то их можно создать самостоятельно.
Пример изменения параметров в файле z_bx_custom.cnf
|
---|
Пример из практики: У пользователя CRM Битрикс24 возникла ошибка при попытке конвертировать лида в сделку с большим количеством пользовательских полей. Сообщение об ошибке выдавалось такое: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. Проблема решилась и конвертация заработала корректно после внесения в файл /etc/mysql/conf.d/z_bx_custom.cnf таких настроек: innodb_file_format = Barracuda innodb_file_per_table = ON innodb_strict_mode = OFF |
При использование виртуальной машины BitrixVM или ami-образа BitrixVM, со временем может возникнуть проблема нехватки свободного места.
Решить эту проблему можно двумя способами:
Так как основной объем дискового пространства потребляется контентом сайтов и их резервными копиями, расположенными в /home/bitrix
, а также БД, расположенной в /var/lib/mysql
, то на отдельные диски следует выносить именно эти разделы.
Рассмотрим данную задачу на примере переноса на отдельный диск папки /home
с контентом сайтов и их резервными копиями.
fdisk -l
/dev/sdb
:
fdisk /dev/sdb
И командой n создаем новый раздел:
Partition number (1-4): 1
;Для сохранения изменений на диск и выхода из fdisk введите команду w.
После сохранения таблицы разделов, форматируем новый раздел и переносим на него информацию из /home
:
mkfs.ext4 /dev/sdb1 mount /dev/sdb1 /mnt service httpd stop service nginx stop mv -f /home/* /mnt umount /mntCentOS 7
mkfs.ext4 /dev/sdb1 mount /dev/sdb1 /mnt systemctl stop httpd.service systemctl stop nginx.service mv -f /home/* /mnt umount /mnt
blkid /dev/sda1: UUID="99066558-ba04-465c-9962-e827aa2928ec" TYPE="ext4" /dev/sda2: UUID="8ea38ef9-1ee5-423b-a013-15fd603a678e" TYPE="swap" /dev/sda3: UUID="08ec5c65-8fd8-47ac-a998-d81195c8f964" TYPE="ext4" /dev/sdb1: UUID="b2e58731-b621-4bd5-909a-afe3bb5dd8a1" TYPE="ext4"
и добавляем запись (в данном примере: UUID=b2e58731-b621-4bd5-909a-afe3bb5dd8a1
) о нем в /etc/fstab
(вместо UUID можно также использовать имя устройства /dev/sdb
):
Остается только примонтировать новый диск и запустить остановленные ранее службы:
CentOS 6mount /home service httpd start service nginx startCentOS 7
mount /home systemctl start httpd.service systemctl start nginx.service
Добавление дисков в других средах виртуализации или непосредственно на физическом сервере проходит аналогично.
/home/bitrix/www
вручную, то убедитесь, чтобы она имела права bitrix:bitrix
- 755 для директории и 644 - для файлов. Вторым способом увеличения дискового пространства в BitrixVM является увеличение размера уже существующего жесткого диска виртуальной машины.
Сначала измените размер системного диска на требуемый, например до 100Гб:
Изменить размер системного диска в VMWare
|
---|
В списке виртуальных машин VMWare Player выберите виртуальную машину BitrixVM и нажмите Edit virtual machine settings: В окне устройств выберите Hard Disk, размер которого нужно увеличить, и активируйте в меню Utilities пункт Expand: В открывшемся окне Expand Disk Capacity в поле Maximum disk size (GB) укажите необходимый объем виртуального диска в гигабайтах (в данном примере - 100Гб): |
Изменить размер системного диска в VirtualBox
|
---|
В меню VirtualBox File выберите Virtual Media Manager: Далее выберите ваш виртуальный диск, нажмите на кнопку Properties и укажите необходимый объем диска: |
Далее необходимо запустить виртуальную машину BitrixVM, авторизоваться под root и перейти в режим командной строки (консоль), выбрав пункт меню 0. Exit в виртуальной машине.
fdisk -c -u -l
где для диска /dev/sda
:
/dev/sda
:
fdisk -c -u /dev/sda
Partition number (1-4): 3
:
Partition number (1-4): 3
; reboot
/dev/sda3
:
resize2fs /dev/sda3
Проверить, что раздел увеличен можно с помощью команды df:
Изменение размера дисков в других средах виртуализации проходит аналогично.
Пусть размер системного диска был увеличен с 20 ГБ до 100Гб, как было сделано ранее в VMWare или VirtualBox (пункт 1).
Тогда действия по изменению размера LVM-раздела будут такими:
fdisk -l
df -h
Здесь мы также видим и запоминаем имя группы томов и имя тома – centos_vb1-root
(у вас они будут другие):
8e
) на неразмеченной области. Для этого начинаем работу с устройством sda c помощью команды:
fdisk /dev/sda
Partition number (1-3, default 3): 3
(так как у нас было 2 логических раздела sda1 и sda2 – см. п.1);Partition number (1-3, default 3): 3
;8e
;reboot
pvcreate /dev/sda3
vgextend /dev/centos_vb1 /dev/sda3
lvextend -l+100%FREE /dev/centos_vb1/root
vgscan vgchange -ay
file -s /dev/sda1
Видим, что файловая система XFS.
xfs_growfs /dev/centos_vb1/root
centos_vb1
– имя группы томов и root
– имя тома из п.2):
resize2fs /dev/centos_vb1/root
– для ext4; resize_reiserfs /dev/centos_vb1/root
– для reiserfs; df -h
Виртуальная машина BitrixVM поставляется с swap-разделом 256 МБ, а в образе ami он по умолчанию не подключен. Поэтому в процессе эксплуатации может возникнуть необходимость в расширении раздела подкачки.
Как и в случае с увеличением свободного места, наиболее простой способ - добавить дополнительный диск и разместить раздел подкачки на нем, либо создать файл подкачки.
Для этого:
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /dev/sdb1или в файле swap-раздел:
mkswap /swapfile
swapon /dev/sdb1или файл подкачки:
chmod 600 /swapfile swapon /swapfile
/etc/fstab
, чтобы не включать после каждой перезагрузки вручную:
/dev/sdb1 none swap sw 0 0или о файле подкачки:
/swapfile none swap sw 0 0
Если некорректно настроен Memcached (доступен снаружи), то этим могут воспользоваться злоумышленники для взлома сайта.
Необходимо проверить опцию -l <ip>
в его настройках. Обращение к Memcached должно быть разрешено только c вашего сайта.
В случае, если в проекте планируется использовать memcached, необходимо произвести его настройку в соответствии с предполагаемой нагрузкой.
Для этого необходимо:
/etc/sysconfig/memcached
задать следующие параметры:
MAXCONN = "1024"
- количество одновременных подключений (по умолчанию 1024);CACHESIZE="1024"
- объем выделяемой памяти для кеша (по умолчанию 64MB);OPTIONS="-t 8"
- количество потоков memcached (по умолчанию 4).MAXCONN
, CACHESIZE
и OPTIONS
подбираются экспериментальным путем в зависимости от характера нагрузки и от имеющихся ресурсов.
Оценить объем памяти, необходимой для кеширования (параметр CACHESIZE
), можно по размеру вашего файлового кеша. Если у вас на проекте файловый кеш занимает 3 GB, то использование memcached c 256МБ памяти не будет эффективным за счет частого вытеснения.
CentOS 6:
service memcached restart
CentOS 7:
systemctl restart memcached.service
/bitrix/php_interface/dbconn.php
:
define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "127.0.0.1"); define("BX_MEMCACHE_PORT", "11211");
И в файле /bitrix/.settings_extra.php
(если его нет, то создать):
<?php return array( 'cache' => array( 'value' => array( 'type' => 'memcache', 'memcache' => array( 'host' => '127.0.0.1', 'port' => '11211', ), 'sid' => $_SERVER["DOCUMENT_ROOT"]."#01" ), ), ); ?>
В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcached через сокет:
В файле /etc/sysconfig/memcached задать параметры:
USER="bitrix"
- пользователь, от которого будет запущен memcached; OPTIONS="-t 8 -s /tmp/memcached.sock"
- количество потоков и путь к сокету.CentOS 6:
service memcached restart
CentOS 7:
systemctl restart memcached.service
/bitrix/php_interface/dbconn.php
:
define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "unix:///tmp/memcached.sock"); define("BX_MEMCACHE_PORT", "0");
И в файле /bitrix/.settings_extra.php
(если его нет, то создать):
<?php return array( 'cache' => array( 'value' => array( 'type' => 'memcache', 'memcache' => array( 'host' => 'unix:///tmp/memcached.sock', 'port' => '0', ), 'sid' => $_SERVER["DOCUMENT_ROOT"]."#01" ), ), ); ?>
Особенности при многосайтовости
Если используется многосайтовость, то в примере указывается статичный [dw]sid[/dw][di]Идентификатор сайта, поле ID в параметрах настроек сайта[/di], без $_SERVER["DOCUMENT_ROOT"
]. Например, для двух сайтов при многосайтовости на одном ядре, кеш будет отличаться, так как папки у сайтов разные.
<?php return array( 'cache' => array( 'value' => array( 'type' => 'memcache', 'memcache' => array( 'host' => 'unix:///tmp/memcached.sock', 'port' => '0', ), 'sid' => "#01" ), ), ); ?>
При обновлении старых сайтов в кодировке Windows-1251, созданных в VMBitrix версии 7.4.3 или ниже, могут быть следующие ошибки:
Не работает Система обновлений продуктов «1С-Битрикс» – требует наличия параметра mb_internal_encoding('Windows-1251');
в dbconn.php.
При включенных предупреждениях Система обновлений не работает из-за предупреждения: «PHP Warning: htmlspecialchars(): charset `latin' not supported, assuming utf-8».
Проверка системы выдает ошибку «Строковые функции strtoupper и strtolower работают некорректно».
При обновлении VMBitrix до версии 7.5 и выше данные ошибки в установленных ранее сайтах в кодировке Windows-1251 автоматически не исправляются, поэтому вам нужно исправить их вручную для каждого такого сайта.
Добавьте в файл /bitrix/php_interface/dbconn.php сайта строку:
mb_internal_encoding('Windows-1251');
В конфигурационном файле Apache для вашего сайта /etc/httpd/bx/conf/bx_ext_[ваш_сайт].conf замените строку:
php_admin_value default_charset latinна такую:
php_admin_value default_charset cp1251
И перезапустите Apache:
systemctl restart httpd.service
Проверьте, есть ли локаль ru_RU.cp1251 в системе. Если ответ 0 – значит локали ru_RU.cp1251 нет, если 1 – есть:
locale -a | grep ru_RU.cp1251 -ic
Если локали ru_RU.cp1251 нет, выполните команду:
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
Далее добавьте в файл /bitrix/php_interface/dbconn.php вашего сайта в кодировке windows-1251 две строки:
setlocale(LC_ALL, 'ru_RU.CP1251' ); setlocale(LC_NUMERIC, 'C' );
И перезапустите Apache:
systemctl restart httpd.service
Все готово. Проделайте эти действия для каждого сайта с кодировкой windows-1251, установленного ранее.
В случае необходимости подключения сетевого диска Windows в качестве хранилища для WebDAV можно воспользоваться следующей командой:
mount.cifs \\\\xxx.xxx.xxx.xxx\\folder /home/bitrix/www/docs/folder/smb -o user=XXXX,password=XXXX,uid=600,gid=600,file_mode=0777,noserverinoгде:
uid
- идентификатор пользователя bitrix;gid
- идентификатор группы bitrix;\\\\xxx.xxx.xxx.xxx\\folder
- путь к сетевому ресурсу \\xxx.xxx.xxx.xxx\folder (\ используется для экранирования символов);/home/bitrix/www/docs/folder/smb
- папка, куда будет смонтирован диск. На больших и не очень проектах часто возникает вопрос с переносом исполнения некоторых особо тяжелых агентов на Cron. Агент считается "тяжёлым", если время его выполнения более 10 минут.
COption::SetOptionString("main", "agents_use_crontab", "N"); echo COption::GetOptionString("main", "agents_use_crontab", "N"); COption::SetOptionString("main", "check_agents", "N"); echo COption::GetOptionString("main", "check_agents", "Y");
В результате выполнения должно быть NN
.
/bitrix/php_interface/dbconn.php
определение следующих констант:
define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true);
И заменяем:
if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);
*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.phpЗамените
/home/bitrix/www/
на свой путь к корню сайта.
После этого все агенты и отправка системных событий будут обрабатывается из-под cron, раз в 1 минуту.
Чтобы не увеличивалась очередь отправки почтовых сообщений, нужно изменить параметр, отвечающий за количество почтовых обрабатываемых за раз событий. Для этого выполняем в php-консоли следующую команду:
COption::SetOptionString("main", "mail_event_bulk", "20"); echo COption::GetOptionString("main", "mail_event_bulk", "5");
Если очередной запуск cron_events.php произошёл до завершения работы ранее запущенного скрипта, то запуска агентов не произойдет и скрипт завершит свою работу (т.к. агенты блокируются на время выполнения). В данном случае обработка ничем не отличается от обработки на хите, новый хит может произойти в тот момент, когда еще не отработали агенты на предыдущем.
Как правило, скрипты, выполненные из под cron, не имеют ограничения на время исполнения. Но если в скриптах используются методы для работы с БД, то можно столкнуться с ошибкой выполнения вложенных скриптов. Для избежания этой ошибки можно подправить значение в /bitrix/php_interface/dbconn.php
:
// если скрипт выполняется кроном, то лимит подключения к БД - 600 секунд, иначе - 60 @set_time_limit(php_sapi_name() == "cli" ? 600 : 60);
Для обеспечения более высокой производительности файловой системы рекомендуем отключать изменение метки времени при чтении файлов и директорий: noatime
, nodiratime
.
Для этого в /etc/fstab нужно отредактировать (добавить в текущую строку) параметры в строке со своим UUID:
UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 / ext4 defaults,noatime,nodiratime 1 1где
UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16
- уникальный идентификатор диска, который можно узнать в консоли по команде blkid
.
После перезагрузки новые настройки начнут действовать.
Чтобы применить новые настройки, не перезагружая сервер, можно выполнить перемонтирование разделов командой:
mount -o remount,noatime,nodiratime /
commit
. Для установки его в 120 секунд, например, необходимо добавить commit=120
. То есть набор опций монтирования будет defaults,noatime,commit=120
.
По умолчанию сброс данных и метаданных на диск происходит каждые 5 сек. Откладывание времени сброса, так же может уменьшить фрагментацию файлов на диске, если есть файлы, в которые часто происходит дописывание данных. Например логи.
Для упрощения работы с Bitrix Framework
в виртуальную машину включён Xdebug. Работает он по схеме:
Перед изменением настроек надо переименовать файл xdebug.ini.disabled в xdebug.ini и перезапустить httpd.
Для настройки машины воспользуйтесь следующим примером:
$ cat /etc/php.d/xdebug.ini ; Enable xdebug extension module zend_extension=/usr/lib64/php/modules/xdebug.so xdebug.remote_enable=on xdebug.remote_host=192.168.205.1 xdebug.remote_port=9000
При разработке своих решений на основе виртуальной машины BitrixEnv/VMBitrix.CRM, может понадобиться отслеживание изменений в версиях файлов. Для этого вы можете подключить репозиторий исходников виртуальной машины.
Добавляем файл для репозитория /etc/yum.repos.d/bitrix-source-stable.repo
с содержимым:
[bitrix-source-stable] name=$OS $releasever - source failovermethod=priority baseurl=https://repo.bitrix.info/yum/SRPMS enabled=1 gpgcheck=1 gpgkey=https://repo.bitrix.info/yum/RPM-GPG-KEY-BitrixEnv
Проверяем, что есть пакет yum-utils:
yum clean all && yum install yum-utils
Скачиваем исходники виртуальной машины:
yumdownloader --source bitrix-env
Примерный ответ в консоли для обычной VMBitrix
|
---|
[root@qa-new ~]# yumdownloader --source bitrix-env Loaded plugins: etckeeper, fastestmirror Enabling epel-source repository Enabling updates-source repository Enabling base-source repository Enabling extras-source repository Loading mirror speeds from cached hostfile epel-source/x86_64/metalink | 14 kB 00:00:00 * base: ftp.heanet.ie * epel: s3-mirror-eu-west-1.fedoraproject.org * epel-source: mirror.sax.uk.as61049.net * extras: ftp.heanet.ie * remi: rpms.remirepo.net * remi-php70: rpms.remirepo.net * remi-safe: rpms.remirepo.net * updates: ftp.heanet.ie base-source | 2.9 kB 00:00:00 epel-source | 3.5 kB 00:00:00 extras-source | 2.9 kB 00:00:00 updates-source | 2.9 kB 00:00:00 (1/5): updates-source/7/primary_db | 17 kB 00:00:01 (2/5): epel-source/x86_64/updateinfo | 921 kB 00:00:01 (3/5): extras-source/7/primary_db | 39 kB 00:00:01 (4/5): base-source/7/primary_db | 1.0 MB 00:00:01 (5/5): epel-source/x86_64/primary_db | 2.3 MB 00:00:02 No source RPM found for bitrix-env-7.1-0.el7.centos.noarch No source RPM found for bitrix-env-7.0-0.el7.centos.noarch No source RPM found for bitrix-env-5.2-1.el7.centos.noarch No source RPM found for bitrix-env-7.2-1.el7.centos.noarch No source RPM found for bitrix-env-7.3-0.el7.centos.noarch No source RPM found for bitrix-env-5.1-6.el7.centos.noarch No source RPM found for bitrix-env-7.2-2.el7.centos.noarch No source RPM found for bitrix-env-5.1-7.el7.centos.noarch No source RPM found for bitrix-env-5.1-8.el7.centos.noarch No source RPM found for bitrix-env-7.0-1.el7.centos.noarch No source RPM found for bitrix-env-7.2-0.el7.centos.noarch No source RPM found for bitrix-env-5.1-9.el7.centos.noarch No source RPM found for bitrix-env-5.2-0.el7.centos.noarch bitrix-env-7.3-0.fc27.src.rpm | 7.8 MB 00:00:01 [root@qa-new ~]# |
yumdownloader --source bitrix-env-crm
Примерный ответ в консоли для VMBitrix.CRM
|
---|
[root@qa-new ~]# yumdownloader --source bitrix-env-crm Loaded plugins: etckeeper, fastestmirror Enabling epel-source repository Enabling updates-source repository Enabling base-source repository Enabling extras-source repository Loading mirror speeds from cached hostfile * base: ftp.heanet.ie * epel: s3-mirror-eu-west-1.fedoraproject.org * epel-source: mirror.sax.uk.as61049.net * extras: ftp.heanet.ie * remi: rpms.remirepo.net * remi-php70: rpms.remirepo.net * remi-safe: rpms.remirepo.net * updates: ftp.heanet.ie No source RPM found for bitrix-env-crm-7.2-1.el7.centos.noarch No source RPM found for bitrix-env-crm-7.2-0.el7.centos.noarch No source RPM found for bitrix-env-crm-7.2-2.el7.centos.noarch No source RPM found for bitrix-env-crm-7.3-0.el7.centos.noarch bitrix-env-crm-7.3-0.fc27.src.rpm | 7.8 MB 00:00:02 [root@qa-new ~]# |
Добавляем файл для репозитория /etc/yum.repos.d/bitrix-source-beta.repo
с содержимым:
[bitrix-source-beta] name=$OS $releasever - source failovermethod=priority baseurl=https://repo.bitrix.info/yum-beta/SRPMS enabled=1 gpgcheck=1 gpgkey=https://repo.bitrix.info/yum/RPM-GPG-KEY-BitrixEnv
Проверяем, что есть пакет yum-utils:
yum clean all && yum install yum-utils
Скачиваем исходники виртуальной машины:
yumdownloader --source bitrix-env
yumdownloader --source bitrix-env-crm
Помимо [ds]включения некоторых php-расширений из меню BitrixEnv[/ds][di]В разделе 8. Manage web nodes in the pool > 2. Manage PHP extensions можно включить дополнительные модули PHP, которые могут понадобится в продуктах «1C-Битрикс».
Подробнее ...[/di] можно включать нужные расширения вручную.
Конфигурационные ini-файлы доступных php-расширений находятся в директории /etc/php.d/
:
Чтобы вручную включить нужное расширение, нужно файл {имя_расширения}.ini.disabled переименовать в {имя_расширения}.ini и перезапустить сервис Apache – httpd.
Например, нам нужно включить расширение dom.
Переходим в директорию сервера /etc/php.d/
:
cd /etc/php.d/
Выводим список файлов в директории:
ls
Находим в списке файл 20-dom.ini.disabled, переименуем его в 20-dom.ini и сохраним с заменой текущего:
mv 20-dom.ini.disabled 20-dom.ini
/etc/php.d/
, то при обновлении PHP или виртуальной машины dom-расширение будет деактивировано. Чтобы этого не произошло, нужно оставлять только один файл 20-dom.ini с активированным расширением.Далее перезапустим сервис Apache – httpd:
CentOS 6:
service httpd restart
CentOS 7:
systemctl restart httpd.service
Все готово, расширение dom работает:
Также вы можете установить любое php-расширение самостоятельно.
Например установим расширение php-imap.
Сначала нужно найти его имя с помощью команды:
yum list php-imap*
Далее установить командой:
yum install php-imap
При установке будет создан файл /etc/php.d/20-imap.ini.
Затем нужно перезапустить сервис httpd.
Все готово, php-расширение imap работает:
Очень частая ситуация, когда BitrixVM располагают внутри локальной сети офиса и проксируют запросы на нее из внешней сети Интернет.
Под проксированием будем понимать http-прокси, который имеет внешний адрес и позволяет организовать подключение пользователей к сайту, расположенному на виртуальной машине BitrixVM, а также сетевое оборудование, которое позволяет на уровне TCP/IP организовать подключение.
Основная особенность в данном случае – это организация работы web-сокетов (ws/wss протоколов), так как бывают ситуации, когда требуются дополнительные настройки для того, чтобы сетевое оборудование не прерывало соединение по таймауту.
Настройку сетевого оборудования мы обсуждать не будем – предположим, что уже все настроено, поддержка web-сокетов включена.
Опишем ситуацию, когда понадобилось для работы перенести порт для ws/wss протоколов.
Создаем конфигурационный файл /etc/nginx/bx/site_ext_enabled/rtc_ext.conf:
server { listen 1137; listen 1139 default_server ssl; #access_log off; server_name _; # ssl settings include bx/conf/ssl.conf; # Include im subscrider handlers include bx/conf/im_subscrider.conf; location / { deny all; } }
Не забываем перезапустить nginx после того, как внесли все коррективы.
CentOS 6:
service nginx restart
CentOS 7:
systemctl restart nginx.service
Открываем порты в виртуальной машине BitrixVM:
iptables:
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1137 -j ACCEPT iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1139 -j ACCEPT iptables-save > /etc/sysconfig/iptables
firewalld:
firewall-cmd --permanent --add-port=1137/tcp firewall-cmd --permanent --add-port=1139/tcp firewall-cmd --reload
Добавляем выбранные порты в конфигурационный файл bitrix/.settings.php:
'pull_s1' => 'BEGIN GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!', 'pull' => Array( 'value' => array( ... 'path_to_websocket' => 'ws://#DOMAIN#:1137/bitrix/subws/', 'path_to_websocket_secure' => 'wss://#DOMAIN#:1139/bitrix/subws/', ... ), ), 'pull_e1' => 'END GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!',
И затем проверяем работу через браузер.
Предположим, что в качестве внешнего прокси выступает nginx сервер.
При желании можно данные настройки адаптировать и для других прокси-сервисов.
Вне зависимости от того, как организована у вас работа балансера – единственная точка входа или он обслуживает только запросы клиентов из внешних сетей, а BitrixVM запросы внутренней сети – на него нужно перенести настройки Push-server.
Переносим настройки проксирования запросов push на балансер – можно взять конфигурационный файл виртуальной машины bx/conf/im_subscrider.conf за основу (можно прям его скопировать на балансер):
location ~* ^/bitrix/subws/ { access_log off; proxy_pass http://nodejs_sub; # http://blog.martinfjordvald.com/2013/02/websockets-in-nginx/ # 12h+0.5 proxy_max_temp_file_size 0; proxy_read_timeout 43800; proxy_http_version 1.1; proxy_set_header Upgrade $replace_upgrade; proxy_set_header Connection $connection_upgrade; } location ~* ^/bitrix/sub/ { access_log off; rewrite ^/bitrix/sub/(.*)$ /bitrix/subws/$1 break; proxy_pass http://nodejs_sub; proxy_max_temp_file_size 0; proxy_read_timeout 43800; } location ~* ^/bitrix/rest/ { access_log off; proxy_pass http://nodejs_pub; proxy_max_temp_file_size 0; proxy_read_timeout 43800; }
Данный файл подключаем к серверу, на котором настроено проксирование запросов на виртуальную машину.
Верхний конфигурационный файл зависит от bx/settings/rtc-im_settings.conf, в котором определяются следующие параметры:
Upgrade
и Connection
через переменные:
# if connection ti not set map $http_upgrade $connection_upgrade { default upgrade; '' 'close'; } map $http_upgrade $replace_upgrade { default $http_upgrade; '' "websocket"; }
upstream nodejs_sub { ip_hash; keepalive 1024; server push:8010; server push:8011; server push:8012; server push:8013; server push:8014; server push:8015; } upstream nodejs_pub { ip_hash; keepalive 1024; server push:9010; server push:9011; }
Данный файл bx/settings/rtc-im_settings.conf тоже можно скопировать и подключить на уровне http
-секции на балансере.
Далее на push-server необходимо открыть порты 8010-8015 и 9010-9011 для доступа с балансера.
iptables:
iptables -I INPUT -p tcp --match multiport --dport 8010:8015 -j ACCEPT iptables -I INPUT -p tcp --match multiport --dport 9010:9011 -j ACCEPT iptables-save > /etc/sysconfig/iptables
firewalld:
firewall-cmd --permanent --add-port=8010-8015/tcp firewall-cmd --permanent --add-port=9010-9011/tcp firewall-cmd --reload
Предположим, мы проксируем http и https сайта test.example.org на 80 порт виртуальной машины BitrixVM.
Включим модуль real_ip в BitrixVM – создаем конфигурационный файл bx/settings/real_ip.conf:
set_real_ip_from BALANCER_IP; real_ip_header X-Forwarded-For;
В качестве real_ip_header
нужно указать заголовок балансера, который он передает на бэкенд (виртуальную машину BitrixVM). В set_real_ip_from
– IP-адрес балансера.
Перезапускаем nginx.
CentOS 6:
service nginx restart
CentOS 7:
systemctl restart nginx.service
Далее настраиваем передачу протокола, по которому клиент работает с сервером.
Нам нужно, чтобы балансер передавал на бэкенд-сервер информацию о протоколе:
proxy_set_header X-Forwarded-Proto $scheme;
На бэкенде (виртуальная машина BitrixVM) делаем конфигурацию для настройки переменных в файле bx/settings/schema.conf:
map $http_x_forwarded_proto $balancer_port { default 80; "https" 443; } map $http_x_forwarded_proto $balancer_https { default "NO"; "https" "YES"; }
Тогда на бэкенде переменная $http_x_forwarded_proto
будет содержать значение http
или https
в зависимости от протокола подключения.
Далее нам потребуется конфигурационный файл сайта:
сайт по умолчанию – /etc/nginx/bx/site_enabled/s1.confВ конфигурационном файле сайта нас интересует часть:
proxy_set_header Host $host:80;
Меняем указанную выше часть на:
proxy_set_header Host $host:$balancer_port; proxy_set_header HTTPS $balancer_https;
Перезапускаем nginx:
CentOS 6:
service nginx restart
CentOS 7:
systemctl restart nginx.service
Все готово.
Для настройки проксирования телефонии можно использовать правило:
location ~* ^/(pub/imconnector/|pub/imbot.php|services/telephony/info_receiver.php|bitrix/tools/voximplant/) { proxy_ignore_client_abort on; proxy_pass $proxyserver; }
О других настройках локальной сети при использовании телефонии рассказывается в соответствующем уроке курса Администратор сервиса Битрикс24.
В главе описывается API, помощью которого можно подключить процедуру заказа/создания машины в управлении пулом в продуктах «1С-Битрикс».
Вся работа с провайдерами осуществляется с помощью плагинов, расположенных в определенном каталоге (на текущий момент всё управление сделано на файлах): /opt/webdir/providers.
Для каждого провайдера предусмотрены:
Скрипт плагина, который будет использован в web-интерфейсе продуктов «1С-Битрикс», должен быть раcположен по адресу:
/opt/webdir/providers/{provider_name}/bin/{provider_name}Для подключения в пул плагин провайдера должен поддерживать следующие аргументы командной строки:
{ "options": [ "help", "configs", "order", "order_status" ], "status": "enabled" }
Массив options должен содержать список поддерживаемых опций (например, в данном случае отсутствует опция init, которая позволяет подключиться на этапе создания мастер сервера).
Опция status может содержать следующие значения: disabled
или enabled
, что позволяет определить включен или выключен провайдер на конкретном сервере.
{ "configurations": [ { "id": "1", "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb" } ], "status": "enabled" }
configurations
- содержит список сервисов/конфигураций, которые может заказать пользователь, используя web интерфейс «1С-Битрикс».
На текущий момент поддерживается два параметра по каждой конфигурации:
{"task_id":"24"}
task_id должен содержать номер задания, который используется для дальнейшего опроса и старта добавления машины по завершению.
{ "server_password": "XXXXXXXXXXXXXX", "status": "finished", "server": "xxx.xxx.xxx.xxx", "task_id": "24" }где:
in_progress
- находится на обработке со стороны провайдера/хостера;finished
- обработка завершена, можно добавлять машину в пул; error
- во время выполнения произошла ошибка. Любое из действий может сообщить об ошибке с помощью значений в полях error и error_message. Например:
{ "error_message": "get_task error N102, No task found", "error": 1 }
Данный скрипт нужен для встраивания плагинов провайдеров в web- интерфейс продуктов «1C-Битрикс».
На текущий момент реализованы следующие методы:
{ "params": { "providers": { "superprovider": { "status": "enabled" }, "amazon": { "error": 1, "message": "bxProvider::optionsProvider: Provider amazon not exist on the host" } } } }
В данном случае, это только включено или выключено, а так же ошибки, который возникли при запросе статуса.
В случае если провайдеров нет на хосте, список будет пустым:
{ "params": { "providers": { } } }
/opt/webdir/bin/bx-provider -a status --provider superprovider -o json { "params": { "provider_options": { "superprovider": { "options": { "order_status": 1, "order": 1, "help": 1, "configs": 1, "init": 0 }, "status": "enabled", "files": { "execute": "/opt/webdir/providers/superprovider/bin/superprovider", "holder": "/opt/webdir/providers/superprovider", "config": "/opt/webdir/providers/superprovider/etc/superprovider.conf" }, "name": "superprovider", "config": "exists" } } } }
В данном случае печатает внутреннюю информацию (используется как есть внутри обработчика), по сути, такой статус больше подходит для отладки работы провайдера, чем для использования в web-интерфейсе.
/opt/webdir/bin/bx-provider -a install --provider amazon --archive /tmp/amazon-v01.tar.gz
/opt/webdir/bin/bx-provider -a configs --provider superprovider -o json { "params": { "provider_configs": { "superprovider": { "configurations": [ { "id": "1", "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb" } ], "status": "enabled" } } } }
/opt/webdir/bin/bx-provider -a order --provider superprovider --config_id 1 -o json { "params": { "provider_order": { "superprovider": { "task_id": "25" } } } }
/opt/webdir/bin/bx-provider -a order_status --provider superprovider --task_id 25 -o json { "params": { "provider_order": { "superprovider": { "server_password": "XXXXXXXXXXXXXXX", "status": "complete", "server": "xxx.xxx.xxx.xxx" "task_id": "25" } } } }
/opt/webdir/bin/bx-provider -a orders_list --provider superprovider -o json { "params": { "provider_order_list": { "superprovider": { "25": { "status": "finished", "mtime": 1403445981, "error": 0, "message": "" }, "22": { "status": "error", "mtime": 1403441000, "error": 1, "message": "cannot add ssh key to the server" }, "21": { "status": "complete", "mtime": 1403440979, "error": 0, "message": "" }, "23": { "status": "finished", "mtime": 1403441229, "error": 0, "message": "" } } } } }
Тут добавлен еще один статус по задаче: complete - это значит, что сервер из данного задания был добавлен в пул.
/opt/webdir/bin/bx-provider -a order_to_host --provider superprovider --task_id 25 -o json
Рассмотрим пул серверов из двух нод:
Созданием веб-кластера, решаются следующие задачи:
Через существующую реализацию кластера не решаются следующие задачи:
В текущих настройках выделяются два типа веб-серверов:
Первый сервер в группе всегда — это роль балансера и веб. Все дополнительные сервера — это роль веб. В случае Виртуальной машины — роль балансера не может быть перенесена. Если ее нужно вынести на отдельный сервер, то читайте следующий урок.
Настройка web-ноды включает в себя следующие шаги:
В BitrixVM представлено два сценария, которые настраивают веб-ноды:
Синхронизация файлов делается через lsyncd.
Принцип работы:
Каталоги, которые синхронизируются (с сервера с ролью балансер на остальные сервера):
- /etc/nginx/bx/conf,Между серверами с ролью веб — синхронизируются каталоги сайтов за исключением следующих подкаталогов:
- bitrix/cacheНастройка включает в себя следующие шаги:
Сервис именуется следующим образом: lsyncd-<HOSTNAME>, где HOSTNAME — это [dw]имя сервера[/dw][di]Уникальный идентификатор сервера в пуле.[/di], на который будут отправлены файлы в случае их изменения, создания или удаления.
Например, если мы создаем web-ноду на сервере vm03, то на сервере vm04 будет создан сервис lsyncd-vm03. А если на сервере vm03 — lsyncd-vm04.
Это делается через сервис systemd-tmpfiles. Конфигурационный файл — /etc/tmpfiles.d/lsyncd.conf
.
/etc/lsyncd-<HOSTNAME>.conf
.
Основное различие между серверами: для сервера с ролью балансера (в нашем примере это vm04) файлы конфигурации будут содержать подкаталоги из /etc
и каталоги сайтов. Для всех остальных дополнительных нод файлы конфигурации содержат только каталоги сайтов.
Посмотрим на примере конфигурации указанной выше. На сервере vm04 файл /etc/lsyncd-vm03.conf
будет содержать следующие каталоги:
sync { default.rsyncssh, host = "vm03", source = "/etc/nginx/bx/", targetdir = "/etc/nginx/bx/", exclude = { "site_enabled/http_balancer*.conf", "site_enabled/https_balancer*.conf", "site_enabled/upstream.conf", "site_enabled/pool_manager.conf", "site_ext_enabled/", "server_monitor.conf", "pool_passwords", } .... } -- httpd sync { default.rsyncssh, host = "vm03", source = "/etc/httpd/bx/conf/", targetdir = "/etc/httpd/bx/conf/", } sync { default.rsyncssh, host = "vm03", source = "/home/bitrix/www/", targetdir = "/home/bitrix/www/", exclude = { "bitrix/cache/", "bitrix/managed_cache/", "bitrix/stack_cache/", "upload/resize_cache/", "*.log", // учтите, что исключая "*.log", исключаются компоненты и модули, например bizproc.log },
А конфигурационный файл на сервере vm03 /etc/lsyncd-vm04.conf
будет содержать каталоги:
sync { default.rsyncssh, host = "vm04", source = "/home/bitrix/www", targetdir = "/home/bitrix/www", exclude = { "bitrix/cache/", "bitrix/managed_cache/", "bitrix/stack_cache/", "upload/resize_cache/", "*.log", // учтите, что исключая "*.log", исключаются компоненты и модули, например bizproc.log "bitrix/.settings.php", "php_interface/*.php", ... }
В сценарий включена проверка завершения синхронизации выбранных каталогов. Делается это через файл статуса для каждого запущенного сервиса: /var/log/lsyncd/daemon-<HOSTNAME>.status
Проверить статус сервиса lsyncd можно так:
systemctl status %lsyncd-host%
где %lsyncd-host%
берется из названия файла конфигурации lsyncd для хоста.
Чтобы найти все конфигурационные файлы для lsync используйте команду:
// ищем на хосте vm04 [root@vm04 ~]# ls -latr /etc | grep lsync // в ответ получаем список файлов: -rw-r--r-- 1 root root 286 Apr 12 2017 lsyncd.conf -rw-r--r-- 1 root root 2546 Jan 17 11:25 lsyncd-vm03.conf
Видим, что наш текущий хост vm04 синхронизируется с хостом vm03 (файл lsyncd-vm03.conf). Статус lsyncd для этой синхронизации проверяем так:
[root@vm04 ~]# systemctl status lsyncd-vm03 // ответ ● lsyncd-vm03.service - Live Syncing (Mirror) Daemon for vm03 Loaded: loaded (/etc/systemd/system/lsyncd-vm03.service; enabled; vendor preset: disable Active: active (running) since Wed 2024-01-17 12:22:33 MSK; 1s ago
Выполните следующие шаги:
Конфигурационные файлы: /etc/nginx/bx/site_enabled/http_balancer.conf
и https_balancer_<SITENAME>.conf
Настройки пула web-серверов содержаться в конфиге: /etc/nginx/bx/site_enabled/upstream.conf
.
Дополнительно на этом шаге в пуле за сервером закрепляется новая роль — web сервера.
Рассмотрим несложную конфигурацию, где:
Между нодами настроена синхронизация файлов в обе стороны, используется lsyncd.
Для этого на каждой ноде поднят дополнительный сервис lsyncd-<имя_сервера>, где имя сервера - это идентификатор хоста в пуле Виртуальной машины с которым выполняется синхронизация. В нашем примере на сервере srv1, можно найти сервис lsyncd-srv2, который будет синхронизировать файлы с сервера srv1 на srv2. Синхронизация файлов выполняется по протоколу SSH+Rsync с авторизацией по ключу пользователем bitrix Виртуальной машины BitrixVM.
Логи сервиса можно найти в каталоге /var/log/lsyncd
. Например, daemon-srv2.log - будет содержать лог синхронизации с серверов srv2, а daemon-srv2.status - текущий статус синхронизации. При этом основной сервер синхронизирует следующие каталоги:
/etc/httpd/bx/conf/ /etc/nginx/bx/ <каталог(и) сайта(ов)>
На дополнительных серверах, синхронизируются только каталоги для сайтов.
Из синхронизации на основном и дополнительных серверах исключены - подкаталоги содержащие кеш для сайтов, на дополнительных еще исключаются конфигурационные файлы:
"bitrix/cache/", "bitrix/managed_cache/", "bitrix/stack_cache/", "upload/resize_cache/", "*.log", "bitrix/.settings.php", "php_interface/*.php",
Какие есть возможности у такой конфигурации:
Теперь рассмотрим, что будет если одна из нод выйдет из строя.
Простой вариант - выходит из строя дополнительный web-сервер.
Есть большая вероятность, что вы этого можете просто не заметить этой поломки потому, что NGINX сервер помечает свои бэкенд-сервера как нерабочие только после нескольких ошибок. NGINX продолжает использовать те сервера, которые отвечают в обычном режиме. Чтобы не пропустить такой выход из строя - настройте внутренний мониторинг Виртуальной машины или любой другой мониторинг.
Если дополнительный сервер рабочий, но необходимо вывести его из эксплуатации, то используйте предусмотренный пункт в меню Виртуальной машины. Если такой возможности нет, то можно отключить вручную, убрав его из upstream серверов NGINX и выключив синхронизацию lsyncd конфигов.
По шагам на нашем примере:
/etc/nginx/bx/site_enabled/upstream.conf
:
upstream bx_cluster { .. server srv2:8080; }
systemctl restart nginx
systemctl stop lsyncd-srv2 systemctl disable lsyncd-srv2
systemctl stop lsyncd-srv1 systemctl disable lsyncd-srv1
Сложный вариант - выход из строя основного web-сервера. Его вы не пропустите скорее всего, но мониторинг тоже лучше настроить.
Ситуация тяжёлая, но не паникуйте: у вас есть все необходимые конфигурационные файлы на дополнительной ноде (не все включены в использование, но это легко поправить).
ln -sf /etc/nginx/bx/site_avaliable/http* /etc/nginx/bx/site_enabled/ ln -sf /etc/nginx/bx/site_avaliable/upstream.conf /etc/nginx/bx/site_enabled/
/etc/nginx/bx/site_enabled/upstream.conf
):
upstream bx_cluster { ip_hash; server srv1:8080; ... keepalive 10; }
nginx -t systemctl restart nginx
В этой главе будет описано, как сделать образ виртуальной машины BitrixVM для клонирования.
Это пригодится специалистам, которые делают минимальную настройку виртуальной машины BitrixVM и потом клонируют ее, а полученный клон используют дальше для развертывания.
Рассмотрим установку часто используемых сервисов виртмашины:
Существует 2 способа перенести виртуальную машину BitrixVM – ручное создание клона существующей машины с необходимыми сервисами и автоматическое развертывание готового образа (рекомендуемый).
План создания клона виртуальной машины BitrixVM выглядит примерно так:
Данный шаг необходим, чтобы получить доступ к настройкам сервера, установки push-server и memcached.
Если на чистом сервере в меню выбрать пункт 1. Create Management pool of server, то он как раз проведет по необходимым настройкам.
Либо можно выполнить следующую команду:
/opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACEгде:
-H SERVER_NAME
– это имя сервера, которое будет использовано в настройках.-I NET_INTERFACE
– это сетевой интерфейс, чей IP-адрес будет использован в настройках пула.
Данная команда вернет ID задания, завершения которого нужно дождаться, чтобы продолжить дальше:
message ... Run configuration pool job task_id=common_7874274840 All operations complete
Дождаться завершения можно, отслеживая состояние лог-файла:
tailf /opt/webdir/temp/common_7874274840/status ... srv1 : ok=75 changed=30 unreachable=0 failed=0
Если в полях unreachable
и failed
будут нулевые значения, значит все хорошо и можно продолжать.
/opt/webdir/bin/bx-sites -a push_configure_nodejs -H SERVER_NAME
Дожидаемся завершения задания.
info:bxDaemon:pushserver_2042054462:7097:1594650283::running:::
По умолчанию сценарий виртуальной машины настроит сервис на использование на рабочем IP-адресе, чтобы в случае подключения других машины в пул они могли использовать его.
Предполагается, что образ будет использован для копирования виртуальной машины, поэтому адрес на новой установке, скорее всего, будет другой и указанные настойки не сработают. Чтобы это обойти, мы меняем адрес сервиса на localhost
, который есть на любом Linux-хосте.
Для этого в файле /etc/sysconfig/push-server-multi меняем параметр на:
WS_HOST=127.0.0.1
И пересоздаем конфиги push-server:
systemctl stop push-server /etc/init.d/push-server-multi reset
Nginx проксирует запросы на push-server на основание имени хоста. Чтобы он правильно определил, куда и как проксировать, меняем запись в /etc/hosts:
127.0.0.1 SERVER_NAME
Устанавливаем memcached сервер:
/opt/webdir/bin/bx-mc -a create -s SERVER_NAME
Тут про адрес при копировании можно не задумываться, т.к. сервис слушает все и доступ ограничивается настройками iptables/firewalld.
Если машина в пуле одна, то это стоит сделать хотя бы для того, чтобы на новой машине создать заново ssh-ключи и другие настройки безопасности.
Если в пуле несколько машин, то не рекомендуется оставлять настройки пула при копирование, т.к. в пуле существуют механизмы распознавания смены адреса и новая машина может взять на себя обязанности мастера.
Для этого нужно удалить файлы и каталоги конфигурации для ansible:
rm -rf /etc/ansible/{host_vars,group_vars,hosts,ansible-roles}
Или выполнить команду ansible:
/opt/webdir/bin/wrapper_ansible_conf -a delete_pool
Удаляем правила Udev для интерфейсов:
/bin/rm -f /etc/udev/rules.d/70*
Очищаем записи MAC-адресов и UUID устройств:
/bin/sed -i ‘/^(HWADDR|UUID)=/d’ /etc/sysconfig/network-scripts/ifcfg-eth0
Удаляем ssh-ключи. При старте новая машина создаст для себя новые ключи:
/bin/rm –f /etc/ssh/*key*
Очищаем логи сценариев:
/bin/rm -fr /opt/webdir/temp/* /bin/rm -fr /opt/webdir/logs/*
При разворачивании клонированного образа на новом месте рекомендуется настроить пул управления, чтобы иметь возможность дальнейшего управления виртуальной машиной.
Если копия (образ) делается для бэкапа и воссоздание из нее будет всегда той же самой машины, т.е. нет смены адреса, нет смены ключей, пул остается там, где был, то можно не выполнять вышеописанные действия.
Можно настраивать чистый образ автоматически. Для этого просто добавьте приведенные выше команды в свой сценарий или bash-скрипт:
# создание пула /opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACE # настройка пуш-сервера /opt/webdir/bin/bx-sites -a push_configure_nodejs -H SERVER_NAME # настройка memcached сервиса /opt/webdir/bin/bx-mc -a create -s SERVER_NAME
Вы получаете работоспособную установку без необходимости решать проблемы смены адреса при копировании шаблона.
Каждый запуск – это будет фоновое задание, статус которого можно отслеживать, как показано выше.
Виртуальная машина сэкономит время и силы на правильное развертывание и администрирование сайта или внутреннего информационного ресурса на базе продуктов «1С-Битрикс».
С помощью специальных ВМ-решений вы можете быстро получить оптимально сконфигурированный сервер, не уступающий по производительности BitrixVM, а по масштабируемости - превосходящий виртуальную машину «1С-Битрикс». Пакеты подготовлены специалистами «1С-Битрикс» и доступны для скачивания и использования.
«1C-Битрикс: Виртуальная машина 5.x» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести свои, уже готовые проекты.
Дистрибутивы BitrixVM доступны для:
«1С-Битрикс»: Веб-окружение» - Linux служит для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформах Fedora 12-15 (i386, x86_64), CentOS 5/6 (i386, x86_64), Red Hat Enterprise Linux 5/6 (i386, x86_64).
Пакет Virtuozzo VZ Application Template для «Битрикс» с использованием решения «1С-Битрикс: Веб-окружение» - Linux 2.0. Шаблон предназначен для установки (создания) Virtuozzo контейнеров на основе Fedora 8-12 32-bit и CentOS 5 32-bit / x86_64 packaged as a Virtuozzo EZ Template.
Amazon EC2 - это веб-сервис, предоставляющий масштабируемые вычислительные мощности и созданный для быстрого и простого разворачивания веб-приложений на площадках (в облаках) Amazon. Специалистами «1С-Битрикс» подготовлены предконфигурированные образы BitrixVM (AMI-образы) для быстрого запуска приложений «1С-Битрикс» в Amazon EC2, которые включают:
Список ami-образов по регионам можно посмотреть на странице BitrixVM.
Глава предназначена для администраторов и пользователей продуктов «1С-Битрикс», устанавливающих для ознакомления либо переносящих готовые проекты на виртуальную машину BitrixVM. Аналогичным способом можно переносить проекты с удаленного сайта на виртуальную машину, между виртуальными машинами и т.д. В документе рассматриваются процедуры установки всех необходимых приложений для работы продукта на виртуальной машине BitrixVM.
Описание установки ПО виртуализации не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации соответствующего ПО.
Если у вас возникнут вопросы по процессу установки продуктов компании «1С-Битрикс», вы можете обратиться в службу Технической поддержки. Обсуждение работы BitrixVM доступно на специализированном форуме или в группе Виртуальные машины Битрикс социальной сети компании «1С-Битрикс».
/path/to/openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.key
.«1С-Битрикс: Веб-окружение» - Linux будет полезно:
«1С-Битрикс: Веб-окружение» - Linux позволяет быстро и с минимальными затратами развернуть оптимальное окружение для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS 5/6 (i386, x86_64):
Рассмотрим установку «1С-Битрикс: Веб-окружение» - Linux на оборудовании с уже установленной CentOS 6 (i386, x86_64).
wget http://repo.bitrix.info/yum/bitrix-env.sh chmod +x bitrix-env.sh ./bitrix-env.sh
yum install wget
iptables -I INPUT -p tcp --dport 25 -j ACCEPT iptables -I INPUT -p tcp --dport 80 -j ACCEPT iptables -I INPUT -p tcp --dport 443 -j ACCEPT iptables -I INPUT -p tcp --dport 5222 -j ACCEPT iptables -I INPUT -p tcp --dport 5223 -j ACCEPT iptables -I INPUT -p tcp --dport 8890 -j ACCEPT iptables -I INPUT -p tcp --dport 8891 -j ACCEPT iptables -I INPUT -p tcp --dport 8893 -j ACCEPT iptables -I INPUT -p tcp --dport 8894 -j ACCEPTгде порты обозначают и используются для следующих сервисов:
service iptables save
reboot
, чтобы посмотреть, что все установилось корректно, на экране будет отображено, что запущена машина и ее текущая версия.
Можно приступать к работе.
С:\BitrixVM\
и запустите виртуальную машину с помощью подходящего ПО:При первом запуске виртуальной машины будет предложено сменить пароли суперпользователя root и пользователя bitrix:
Аналогично происходит смена пароля пользователя bitrix:
В результате виртуальный сервер готов для использования. Первоначальное меню BitrixVM Available actions выглядит так:
Для перехода к выполнению любого действия введите число (от 0 до 2) и нажмите Enter. Например, для настройки локального виртуального сервера в строке наберите 2 (Manage localhost) и нажмите Enter.
Чтобы вернуться в вашу ОС, нажмите Ctrl+Alt.
Чтобы вернуться из shell в меню виртуальной машины, введите команду:
/root/menu.sh
/etc/udev/rules.d/70-persistent-net.rules
и в нем удалить (или закомментировать) все строчки для интерфейса eth0 и eth1, сохранить файл и перезагрузить машину командой reboot
. Далее необходимо набрать IP-адрес (полученный в виртуальной машине - IP4) в браузере (в нашем примере это http://192.168.2.15 или https://192.168.2.15). Откроется страница с выбором варианта работы:
Для продолжения необходимо выбрать один из вариантов:
Для переноса сайта с хостинга или локального сервера на виртуальную среду BitrixVM или BitrixEnv необходимы: архив сайта и настроенная виртуальная среда BitrixVM или BitrixEnv. Этот процесс состоит из двух этапов:
/bitrix/backup/
хостинга с уникальным именем файла).и в появившемся окне скопировать ее в буфер обмена:
Настройки подключения к MySQL по умолчанию в виртуальной машине BitrixVM:
Также, если есть необходимость, можно указать собственное имя базы данных в этом случае необходимо еще выбрать опцию Создать базу данных, если не существует.
Для начала работы с сервисами нужно создать и настроить пул сервера или нескольких серверов. Для этого нужно выбрать пункт главного меню 1. Create Management pool of server и ввести название сервера в данном пуле.
После создания пула в основном меню добавятся новые пункты как в главном меню:
Так и в меню Manage Hosts in the pool:
Добавление нового хоста в пул (кластер) осуществляется с помощью меню 1. Manage Hosts in the pool > 1. Add new host in the pool.
Для этого необходимо задать ip-адрес или DNS-имя хоста и выбрать короткое имя для подключаемого сервера:
Таким образом, можно добавлять любое количество серверов в пул:
Теперь можно управлять любым сервером пула с одной машины.
Удаления хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage Hosts in the pool > 2. Delete host from pool .
Для этого необходимо задать ip-адрес или DNS-имя хоста удаляемого из пула сервера:
После подтверждения сервер будет удален из пула:
Перезагрузка хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage Hosts in the pool > 3. Reboot host.
Для этого необходимо задать имя хоста (в данном примере - server4) и согласиться на перезапуск сервера:
С помощью менеджера пула можно удаленно обновлять Веб-окружение и компоненты системы на любом хосте, входящем в пул.
Например, в пул добавлена виртуальная машина версии 5.0.37, нам нужно обновить ее до 5.0.44.
Таким же образом можно обновлять включенные в пул виртуальные машины версии 4.3.
Смена пароля для пользователя bitrix осуществляется через пункт меню 1. Manage Hosts in the pool > 5. Change password for bitrix user on host.
Будет выдан запрос имени хоста, на котором нужно сменить пароль пользователя bitrix, и согласие на это действие:
passwd
.Настройка таймзоны – очень важный параметр, который обязательно нужно проверить и при необходимости настроить правильно. Параметр влияет на синхронизацию с 1С, календари, заказы и многое другое, где требуется дата и время.
Дата и время на сервере – это не одна конкретная дата и время, а фактически три различных времени:
Каждое из них – со своим часовым поясом.
Смена таймзоны происходит через пункт меню веб-окружения 1. Manage Hosts in the pool > 6. Configure timezone in the pool, и меняет дату и время, в трёх местах сразу. Это очень важный момент, чтобы все три места работали с одинаковыми параметрами.
В процессе обновления BitrixVM до версии 5.1.х и выше PHP и MySQL автоматически не обновляются. Обновить их можно в ручном режиме с помощью пункта меню виртуальной машины 1. Manage hosts in the pool - 8. Upgrade php and mysql versions. Обратите внимание, что обновление запустится сразу, без предварительных предупреждений.
В результате, после выполнения фоновой задачи обновления, будут обновлены PHP и MySQL до своих [ds]актуальных[/ds][di]С 1 августа 2020 года требуется PHP версии не ниже 7.2.0. Рекомендуемая версия - 7.4.0 и выше.
Подробнее...[/di] версий.
Чтобы задать имя хоста локального сервера, нужно перейти в главном меню 2. Manage localhost - Configure hostname:
Далее согласиться на его изменение и ввести новое название Input hostname – например server1 (по умолчанию это localhost.localdomain):
После чего системе будет присвоено новое имя:
При первом старте BitrixVM получение IP-адреса сервером происходит автоматически, если в сети есть настроенный DHCP-сервер.
Если по каким-либо причинам необходимо сменить полученный IP, то можно сделать это в двух режимах: автоматическом и ручном.
Для обновления локальной виртуальной машины необходимо выбрать в административном меню пункт 2. Manage localhost - 6. Update server.
Скрипт автоматически проверит обновления компонентов, выдаст общий объем для загрузки и запрос на установку.
mv -f /etc/php.d/(имя модуля).ini.disabled /etc/php.d/(имя модуля).ini service httpd restart
В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластерную конфигурацию master-slave «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».
Ключевые особенности:
Схема «master - slave» реализуется средствами MySQL. Платформа «1С-Битрикс» позволяет гибко балансировать нагрузку между серверами, участвующими в репликации.
Для создания slave сервера нужно:
Для переноса на другую машину необходимо:
Для удаления необходимо:
Таким образом, мы перенесли master сервер MySQL с машины server1 на server3, создали дополнительный slave сервер MySQL на машине server4 и освободили ресурсы машины server1 под другие роли.
Продукты «1С-Битрикс» позволяет использовать пул серверов memcached для работы с кешем данных.
Это обеспечивает:
Для создания memcached сервера нужно:
Для удаления memcached сервера необходимо:
Все изменения в виртуальной машине – настройки, запуск каких-либо служб, синхронизация и др. осуществляются с помощью скриптов – задач.
Просмотреть историю выполнения, а также активные в данный момент задачи, можно с помощью пункта меню 5. Background tasks in the pool:
Просмотреть запущенную на текущий момент задачу можно с помощью пункта меню 5. Background tasks in the pool > 1. View running tasks:
Для её остановки нужно перейти в пункт меню 5. Background tasks in the pool > 1. View running tasks > 1. Stop task и ввести идентификатор задачи:
Чтобы очистить историю нужно выбрать пункт меню 5. Background tasks in the pool > 2. Clean history:
Далее выбрать количество дней, за которое нужно оставить историю, и фильтр, по которому выбирать задачи (к примеру, выберем все задачи с TaskID common):
После этого будут выведены все задачи, удовлетворяющие заданному интервалу и фильтру, и далее запрос на очистку истории:
/opt/webdir/temp
. Мастер создания дополнительных сайтов, позволяет развернуть на одной виртуальной машине несколько сайтов, как на независимых установках «1С-Битрикс», так и в рамках многосайтовости.
Для добавления дополнительного сайта необходимо:
/etc/hosts
на виртуальной машине, а также на всех машинах, с которых будет осуществляться доступ к данному сайту. UTF-8
или windows 1251
(для ядра типа kernel и ext_kernel).y
(для ядра типа kernel и ext_kernel)./home/bitrix/ext_www/{название_хоста}
, в которой будут:
/home/bitrix/ext_www/{название_хоста}
, то в списке сайтов виртуальной машины данное ядро не появится до тех пор, пока не будет создан хотя бы один сайт (link) на это ядро.Для удаления записи о дополнительном сайте необходимо в административном меню «1C-Битрикс: Виртуальная машина» выбрать пункт 6. Manage sites in the pool > 2. Delete site и выбрать директорию удаляемого сайта (Enter site directory):
Материалы по теме: |
По умолчанию в виртуальной машине cron уже включен. Если по каким-либо причинам нужно отключить эту службу, то для этого необходимо:
Аналогичным способом осуществляется и включение:
Для настройки интегрированного почтового сервера выполните следующее:
y
и введите логин и пароль для доступа к SMTP-серверу, в противном случае - n
.auto
, plain
, scram-sha-1
, cram-md5
, gssapi
, external
, digest-md5
, login
, ntlm
.y
, в противном случае - n
.По умолчанию в виртуальной машине включена поддержка доступа к сайтам через протоколы HTTP и HTTPS.
Если необходимо оставить доступ к сайту только по защищенному протоколу HTTPS, то для этого нужно:
Аналогичным способом осуществляется возврат доступа к сайту по протоколу HTTP:
При разворачивании проектов на базе BitrixVM, часто встает задача создания резервной копии проекта по расписанию.
В «1C-Битрикс: Виртуальная машина» версии 4.х появился функционал автоматического резервного копирования сайта, находящегося в директории /bitrix/home/www/
, и базы данных. Бекап будет создан по расписанию в виде архива .tar.gz и записан в директории /home/bitrix/backup/archive/
.
У данного способа есть как преимущества, так и недостатки в сравнении с встроенным в продукты «1С-Битрикс» механизмом создания резервной копии:
Для создания расписания автоматического резервного копирования средствами BitrixVM необходимо:
Если необходимо выполнить более точную настройку бэкапов, можно воспользоваться утилитой командной строки:
/opt/webdir/bin/bx-sites -a backup -d dbcp --enable --minute=10 --hour=18 --day=any --month=any --weekday=any
/etc/crontab
) добавляется задача резервного копирования проекта:
Бэкап делается для ядра (сайта типа kernel и ext_kernel) и всех его link, если такие существуют. Для этого создается задание в crontab-файле:
10 22 * * * bitrix /opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive
В качестве первой опции указывается имя БД, второй опцией указывается каталог, в котором будет создан архив.
В итоге скрипт создаст архив следующего вида: www_backup_
Внутри архива должны присутствовать следующие файлы:
/home/bitrix/mysql_dump__DD.MM.YYYY_.sql
-a|--action
- действие по управлению сайтами, в данном случае это backup-d|--database
- название БД (в бэкапе будут содержаться данные для всех сайтов, которые используют эту БД)--enable|--disable
- включение или отключение бэкапа для сайтов--minute
- параметры записи в crontab файле (минуты)--hour
- параметры записи в crontab файле (часы)--day
- параметры записи в crontab файле (день)--month
- параметры записи в crontab файле (месяц)--weekday
- параметры записи в crontab файле (день недели)В случае успешного выполнения утилита вернет новые опции для сайта:
/opt/webdir/bin/bx-sites -a backup -d sitemanager0 --enable --minute=10 --hour=23 --day=1 --month=any --weekday=any -o json | python -mjson.tool ... "BackupCronFile": "/etc/crontab", "BackupDay": "1", "BackupFolder": "/home/bitrix/backup/archive", "BackupHour": "23", "BackupMinute": "10", "BackupMonth": "*", "BackupTask": "enable", "BackupVersion": "v5", "BackupWeekDay": "*", ...
Ряд файлов/каталогов необходимо исключить из резервной копии. Список таких исключений можно найти в файле /opt/webdir/bin/ex.txt.
По умолчанию, в нем находятся следующие подкаталоги:
bitrix/cache bitrix/managed_cache bitrix/stack_cache bitrix/local_cache bitrix/backup bitrix/tmp upload/tmp upload/resize_cache
Как уже сказано выше, в бэкап включается:
/home/bitrix/mysql_dump_<db>.sql
);Например команда:
/opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive
создает файл www_backup_sitemanager0_30.01.2015_bnnW1NPm.tar.gz в директории /home/bitrix/backup/archive/
Для восстановления, нужно перейти в DocumentRoot ядра, выполнить:
tar xzvvf www_backup_sitemanager0_30.01.2015_zEQkXREd.tar.gz ./ ... -rw-r--r-- bitrix/bitrix 5013 2015-01-30 14:02 ./workgroups/.left.menu_ext.php -rw-r--r-- bitrix/bitrix 319 2015-01-30 14:01 ./.top_links.menu.php -rw-r--r-- root/root 5313008 2015-01-30 14:22 home/bitrix/mysql_dump_sitemanager0_30.01.2015_bnnW1NPm.sql drwxr-xr-x Creating directory: home drwxr-xr-x Creating directory: home/bitrix -rw-r--r-- root/root 44 2015-01-30 14:22 home/bitrix/mysql_dump_sitemanager0_30.01.2015_bnnW1NPm_after_connect.sql
После чего нужно восстановить БД:
mysql sitemanager0 < home/bitrix/mysql_dump_sitemanager0_30.01.2015_bnnW1NPm_after_connect.sql
И данные дополнительных сайтов, если они есть:
rsync -av home/bitrix/ext_www//home/bitrix/ext_www/
Если необходимо осуществить перенос сайта, то воспользуйтесь инструкцией по переносу.
Для поддержки механизма NTLM-авторизации продуктами «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходим модуль AD/LDAP интеграция версии 11.5.0 и выше.
После включения и настройки новый механизм NTLM-авторизации начинает работать следующим образом:
Рассмотрим настройку на примере «Битрикс24 в коробке».
Продукт «1С-Битрикс» готов к использованию NTLM-авторизации, осталось настроить виртуальную машину.
Для настройки виртуальной машины необходимо подключитьcя к ней под пользователем root, выбрать пункт меню 6. Manage sites in the pool > 7. Configure NTLM auth for all sites и ввести необходимые данные:
После подтверждения корректности введенных данных мастер настроит и запустит все необходимые службы, а также подключит виртуальную машину в домен.
net ads testjoin
Настройка завершена, для успешной NTLM-авторизации осталось проверить настройки браузеров.
Для успешной NTLM-авторизации нужно, чтобы веб-сервер находился в зоне Local Intranet (при необходимости нужно добавить):
Добавить веб-сервер к списку доверенных URI для автоматической NTLM-авторизации (через параметр network.automatic-ntlm-auth.trusted-uris
на странице Firefox: about:config)
Мастер позволяет управлять работой сервисов XMPP и SMTP с помощью Cron. Это может понадобится, если необходимо рассылать jabber- и почтовые сообщения в случае, если на сайте нет активности, т.е если все события на сайте работают на хитах.
Для управления необходимо:
Аналогичным образом отключается данные опции:
Конфигурации NGINX для работы с композитом
Управление настройками композитного кеша для NGINX находятся в меню виртуальной машины: 6. Manage sites in the pool > 9. Configure nginx for composite:
Эта настройка выполняет следующие действия:
/etc/nginx/bx/maps
. Например, включен или выключен композит для https запросов.Включение и обновление настроек NGINX для композита
Для включения или обновления настроек:
/opt/webdir/bin/bx-sites -o json -a composite --enable --site=default
Выключение настроек NGINX по работе с композитом
Для отключения настроек:
/opt/webdir/bin/bx-sites -o json -a composite --disable --site=default
После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.
Заголовки при использовании Композита в BitrixVM могут быть такие:
X-Bitrix-Composite:Nginx (file)
- отдача страниц - NGINX, хранение - файлы;X-Bitrix-Composite:Nginx (memcached)
- отдача страниц - NGINX, хранение - memcached;X-Bitrix-Composite:Cache (200)
- отдача страниц - PHP, хранение - файлы.Настройки определяются в файле: /etc/nginx/bx/maps/composite_settings.conf
. NGINX не использует технологию Композитный сайт, если соблюдается хотя бы одно условие:
BX_ACTION_TYPE
,BX_AJAX
,ncc
,bxajaxid
,sessid
,Определение условий сделано через http_ngx_map_module:
$http_bx_action_type
содержит данные, то композитный ключ $not_bx_action_type
будет содержать 0.
map $http_bx_action_type $not_bx_action_type { default "0"; '' "1"; }
# test all global conditions map "${not_bx_action_type}${not_bx_ajax}${is_get}${non_arg_ncc}${non_arg_bxajaxid}${non_arg_sessid}${is_modern}${is_good_uri}${non_cookie_ncc}${is_storedAuth}" $is_global_composite { default "1"; ~0 "0"; }
Если хоть одно из условий содержало 0, то итоговое значение переменной $is_global_composite
будет равно 0.
Персональные проверки, зависящие от настроек выбранных в настройках Композитный сайт. определяются в момент включения или обновления композита из консольного меню. Для таких настроек создается и обновляется файл в каталоге: /etc/nginx/bx/maps/
. Имя файла имеет специальный формат: <ID>.cache_<SITE_NAME>.conf, где:
NGINX не будет использовать композитный кеш, если выполняется хотя бы одно из условий:
~EXCLUDE_PARAMS
в .config.php),DOMAINS
в .config.php),~INCLUDE_MASK
в .config.php),~EXCLUDE_MASK
в .config.php).Определение условий сделано через http_ngx_map_module:
INCLUDE_MASK
для запроса, будет создана следующая структура:
# test include uri for site map $uri $is_include_uri_02 { default "0"; "~*^.*?\.php$" "1"; "~*^.*?/$" "1"; }
Если переменная $uri
содержит одно из следующих регулярных выражений, то $is_include_uri_02
будет содержать 1, в остальных случая переменная будет равна 0.
# variable $is_site_composite_02 used in site config map "${config_domain_02}${is_include_uri_02}${not_exclude_uri_02}${not_https_schema_02}" $is_site_composite_02 { default "1"; ~0 "0"; }Если хоть одна из переменных получит значение 0, переменная
$is_site_composite_02
будет содержать 0, в остальных случаях 1.Ключ - это файл, который NGINX будет искать в композитном кеше (ключ для mecached хранилища, файл в случае хранения на файлах). Он нужен для того, чтобы привести запрос на сайт (uri) к универсальному виду.
Данный ключ определяется в глобальных настройках в файле /etc/nginx/bx/maps/composite_settings.conf
. Так же, как для условий, используется модуль nginx ngx_map_module:
map $uri $composite_key { default $uri; ~^(?P.+)/$ $non_slash; ~^(?P .+)/index.php$ $non_index; ~^(?P .+)/index.html$ $non_index; }
Действуют следующие правила:
Проверки для включения технологии на стороне NGINX используются в конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled
. В случае стандартной конфигурации, файл обычно содержит следующие настройки:
# Include parameters common to all websites include bx/conf/bitrix.conf;
При включенной технологии Композитный сайт, настройки зависят от выбранного хранилища.
/bitrix/html_pages/.config.php
опция STORAGE содержит значение files
./etc/nginx/bx/site_enabled
, должно быть прописано:
# определяем ключ композита и файл на диске set $composite_cache "bitrix/html_pages/${host}${composite_key}/index@${args}.html"; set $composite_file "${docroot}/${composite_cache}"; # файл, который определяет включен ли композит на сайте или нет set $composite_enabled "${docroot}/bitrix/html_pages/.enabled"; # переменная, которая используется для композитной проверки set $use_composite_cache ""; # если переменная глобальных условий содержит 1, добавляем признак в use_composite_cache if ($is_global_composite = 1) {set $use_composite_cache "A";} # если переменная персональных условий сайта содержит 1, добавляем признак use_composite_cache if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";} # Подключаем конфиг, который содержит наши стандартные настройки, без location по умолчанию include bx/conf/bitrix_general.conf; # Основной location location / { # если файл включения композита существует, добавляем признак в use_composite_cache if (-f $composite_enabled) { set $use_composite_cache "${use_composite_cache}C"; } # если файл кеша существует, добавляем признак в use_composite_cache if (-f $composite_file) { set $use_composite_cache "${use_composite_cache}D"; } # если все четыре условия выполняются, отправляем запрос в location c кешем if ($use_composite_cache = "ABCD") { rewrite .* /$composite_cache last; } # по дефолту отправляем в apache proxy_pass $proxyserver; }
/bitrix/html_pages/.config.php
опция STORAGE содержит значение memcached
или memcached_cluster
.
/etc/nginx/bx/site_enabled
, должно быть прописано:
# устанавливаем параметры подключения для memcached memcached_connect_timeout 1s; memcached_read_timeout 1s; memcached_send_timeout 1s; # ключ поиска set $memcached_key "/${host}${composite_key}/index@${args}.html"; # включен ли композитный кеш set $composite_enabled "${docroot}/bitrix/html_pages/.enabled"; # переменная, которая используется для проверки работы с композитом при запросе пользователя set $use_composite_cache ""; # учитываем глобальные условия if ($is_global_composite = 1) {set $use_composite_cache "A";} # учитываем персональные условия if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";} # подключаем общие параметры для bitrix окружения, без использования default location include bx/conf/bitrix_general.conf; # основной location location / { # если данные не найдены в кеше проксируем запрос на apache error_page 404 405 412 502 504 = @apache; # учитываем наличие .enabled файла if (-f $composite_enabled) { set $use_composite_cache "${use_composite_cache}C"; } default_type text/html; # если все совпало, отправляем запрос вmecached if ($use_composite_cache = "ABC") { add_header Content-Encoding deflate; add_header X-Bitrix-Composite "Nginx (memcached)"; memcached_pass localhost:11211; } proxy_pass $proxyserver; } location @apache { proxy_pass $proxyserver; }
После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.
Заголовки при использовании Композита в BitrixVM могут быть такие:
X-Bitrix-Composite:Nginx (file)
- отдача страниц - NGINX, хранение - файлы;X-Bitrix-Composite:Nginx (memcached)
- отдача страниц - NGINX, хранение - memcached;X-Bitrix-Composite:Cache (200)
- отдача страниц - PHP, хранение - файлы.Если по каким-либо причинам на сайтах появились серьезные ошибки: отсутствие модулей на сайте или нет подключения к БД (не получается подключиться с данными настроек сайта), то в меню виртуальной машины появляется пункт меню 6. Manage sites in the pool > 10. Show sites with errors:
Выбрав этот пункт меню, отобразится список сайтов с кратким описанием ошибки (в данном примере - нет соединения с базой данных mysql):
Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.
Для его установки необходимо:
В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластеризацию веб-сервера в «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».
При разделении проекта на несколько веб-серверов необходимо решить две задачи:
Для создания веб-сервера нужно:
Для удаления веб-сервера необходимо:
Таким образом, мы перенесли веб-сервер с машины server1 на server5, освободив ресурсы машины server1 под другие роли.
При разворачивании проектов на базе BitrixVM необходимо следить за состоянием сервера и отдельных его компонентов.
В составе «1C-Битрикс: Виртуальная машина» версии 5.х уже имеются системы мониторинга такие как Munin и Nagios, которые имеют большое количество различных компонентов по отслеживанию функционирования всех систем сервера.
Для начала работы систем мониторинга необходимо:
Для мониторинга сервера из браузера нужно зайти по адресам и авторизоваться под учетными записями мониторинга:
htpasswd /etc/munin/passwd admin
htpasswd /etc/nagios/passwd nagiosadmin
При запуске виртуальной машины BitrixVM или физического сервера с установленным пакетом BitrixEnv сервисом bvat автоматически настраиваются основные параметры Apache, PHP, MySQL в зависимости от количества доступной памяти. Это позволяет обеспечивать оптимальные настройки сервера.
Но в ряде случаев возникает необходимость изменения некоторых параметров без отключения сервиса bvat. Для внесения таких изменений в настройки сервера предусмотрены специальные конфигурационные файлы, позволяющие переопределять параметры, устанавливаемые сервисом bvat. Они хранятся в директориях:
/etc/mysql/conf.d/z_bx_custom.cnf
/etc/httpd/bx/custom/z_bx_custom.conf
/etc/nginx/bx/settings/z_bx_custom.conf
/etc/php.d/[dw]z_bx_custom.ini[/dw][di]Название файла может быть любым, но не совпадающим с поставляемыми файлами.[/di]
В случае, если в этих директориях нет конфигурационных файлов, то их можно создать самостоятельно.
При использовании BitrixVM или ami-образа BitrixVM, со временем может возникнуть проблема нехватки свободного места.
Решить эту проблему можно двумя способами:
Так как основной объем дискового пространства потребляется контентом сайтов и их резервными копиями, расположенными в /home/bitrix
, а также БД, расположенной в /var/lib/mysql
, то на отдельные диски следует выносить именно эти разделы.
Рассмотрим данную задачу на примере переноса на отдельный диск папки /home
с контентом сайтов и их резервными копиями.
fdisk -l
/dev/sdb
:
fdisk /dev/sdb
И командой n создаем новый раздел:
Partition number (1-4): 1
;Для сохранения изменений на диск и выхода из fdisk введите команду w.
/home
: mkfs.ext4 /dev/sdb1 mount /dev/sdb1 /mnt service httpd stop service nginx stop mv -f /home/* /mnt umount /mnt
blkid /dev/sda1: UUID="99066558-ba04-465c-9962-e827aa2928ec" TYPE="ext4" /dev/sda2: UUID="8ea38ef9-1ee5-423b-a013-15fd603a678e" TYPE="swap" /dev/sda3: UUID="08ec5c65-8fd8-47ac-a998-d81195c8f964" TYPE="ext4" /dev/sdb1: UUID="b2e58731-b621-4bd5-909a-afe3bb5dd8a1" TYPE="ext4"
и добавляем запись (в данном примере: UUID=b2e58731-b621-4bd5-909a-afe3bb5dd8a1
) о нем в /etc/fstab
(вместо UUID можно также использовать имя устройства /dev/sdb
):
mount /home service httpd start service nginx start
Добавление дисков в других средах виртуализации или непосредственно на физическом сервере проходит аналогично.
Вторым способом увеличения дискового пространства в BitrixVM является увеличение размера уже существующего жесткого диска виртуальной машины.
В данном примере воспользуемся виртуальной машиной BitrixVM для VMWare и покажем, как увеличить размер системного диска до 100Гб.
fdisk -c -u -l
где для диска /dev/sda
:
Обратите внимание, если BitrixVM установлена на EC2 AWS. На AWS первый сектор раздела может начинаться с 2000
, а не 2048
. В этом случае увеличение размера диска выполняется другим способом. Подробнее на github. Или можно добавить отдельный диск и перенести на него /home/bitrix
и/или /var/lib/mysql
.
/dev/sda
:
fdisk -c -u /dev/sda
Partition number (1-4): 3
:
Partition number (1-4): 3
; reboot
/dev/sda3
:
resize2fs /dev/sda3
Проверить, что раздел увеличен можно с помощью команды df:
Изменение размера дисков в других средах виртуализации проходит аналогично.
Если нужен диск объёмом более [dw]2 Тб[/dw][di]Утилита fdisk умеет расширять диск не более чем на 2Тб.[/di], это можно сделать так.
Пусть размер системного диска был увеличен с 20 ГБ до 100Гб, как было сделано ранее в VMWare Player.
Тогда действия по изменению размера LVM-раздела будут такими:
fdisk -l
df -h
Здесь мы также видим и запоминаем имя группы томов и имя тома (у вас они будут другие):
fdisk /dev/sda
Partition number (1-3, default 3): 3
(так как у нас было 2 логических раздела sda1 и sda2 - п.1);Partition number (1-3, default 3): 3
;8e
;reboot
pvcreate /dev/sda3
vgextend /dev/cl /dev/sda3
lvextend -l+100%FREE /dev/cl/root
vgscan vgchange -ay
file -s /dev/sda1
Видим, что файловая система XFS.
xfs_growfs /dev/cl/root
resize2fs /dev/cl/root
- для ext4; resize_reiserfs /dev/cl/root
- для reiserfs; df -h
Предположим у нас есть сайт http://site1.bx, и нам нужно переключить работу сайта на защищенный протокол https.
Наши действия будут такими:
/etc/nginx/ssl/
с помощью любого менеджера файлов по протоколу sftp (например WinSCP).ssl.conf
в новый файл site1.bx_ssl.conf
(название файла может быть любым). Для удобства, это делается для каждого сайта, если их у вас несколько:
cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/site1.bx_ssl.conf
/etc/nginx/bx/conf/site1.bx_ssl.conf
и указываем расположение site1.bx.key
(приватный ключ домена) и site1.bx.crt
(публичный сертификат домена) в директивах nginx ssl_certificate_key
и ssl_certificate
соответственно.
ssl_certificate /etc/nginx/ssl/site1.bx.crt; # публичный сертификат домена ssl_certificate_key /etc/nginx/ssl/site1.bx.key;# приватный ключ домена
/etc/nginx/bx/site_avaliable/bx_ext_ssl_site1.bx.conf
и ищем в нем строку:
include bx/conf/ssl.conf;и меняем на:
include bx/conf/site1.bx_ssl.conf;
/home/bitrix/www
) файл будет называться /etc/nginx/bx/site_avaliable/s1.ssl.conf
, а для дополнительных сайтов (которые создаются в директории /home/bitrix/ext_www/название_хоста
) - /etc/nginx/bx/site_avaliable/bx_ext_ssl_название_хоста.conf
. nginx -t
CentOS 6:
service nginx restart
CentOS 7:
systemctl restart nginx.service
/etc/httpd/bx/conf/ntlm_bitrix.conf
. Теперь даже после обновления виртуальной машины BitrixVM/BitrixEnv, если стандартные файлы конфигурации nginx будут изменены, то сайт продолжит работать по протоколу https.
Виртуальная машина BitrixVM поставляется с swap-разделом 256 МБ, а в образе ami он по умолчанию не подключен. Поэтому в процессе эксплуатации может возникнуть необходимость в расширении раздела подкачки.
Как и в случае с увеличением свободного места, наиболее простой способ - добавить дополнительный диск и разместить раздел подкачки на нем, либо создать файл подкачки.
Для этого:
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /dev/sdb1или в файле swap-раздел:
mkswap /swapfile
swapon /dev/sdb1или файл подкачки:
swapon /swapfile
/etс/fstab
, чтобы не включать после каждой перезагрузки вручную:
/dev/sdb1 none swap sw 0 0или о файле подкачки:
/swapfile none swap sw 0 0
Данная информация пригодится для ручной настройки и диагностики ошибок с почтой в Виртуальная машина BitrixVM/BitrixEnv v.5.x.
В настройке используется пакет msmtp (он идет в стандартных зависимостях для пакета bitrix-env).
Из пакета приходят настройки php-модуля в файле /etc/php.d/bitrixenv.ini
:
sendmail_path = msmtp -t -i
При конфигурации из веб-интерфейса или из консольного меню:
# smtp account configuration for default account default logfile /home/bitrix/msmtp_default.log host 192.168.0.25 port 25 from name@site.ru keepbcc on auth on user name@site.ru password XXXXXXXXXXXXXX tls on tls_certcheck off
<Directory /home/bitrix/www/> ... php_admin_value sendmail_path "msmtp -t -i -a <ИМЯ_САЙТА>" </Directory>
/home/bitrix/.msmtprc
на /etc/msmtprc
(данное действие необходимо для заданий отправки почты, которые выполняются через crontab).Данные рекомендации будут полезны для автоматизации тестирования.
Для создания из web или консоли используется скрипт /opt/webdir/bin/bx-sites
.
При настройке почты он принимает следующие параметры:
bx-sites -o json -a email --smtphost=smtp.yandex.ru \ --smtpuser='ivan@yandex.ru' --password=XXXXXXXXXX \ --email='ivan@yandex.ru' --smtptls -s aliceгде:
-a email
- тип действия, которое мы выполняем для сайта (-h
позволит получить весь доступный список);--smtphost
- IP адрес или DNS имя хоста, через который будет отправляться почта;--smtpuser
- логин пользователя (в случае, если не используется данный параметр, можно опустить);--password
- пароль для авторизации на почтовом сервере;--email
- поле from в письме;--smtptls
- включает TLS при отправке почты;-s|--site
- название сайта (по умолчанию будет использован default).В разделе описаны найденные и решенные проблемы, а также способы отладки почтовых проблем.
Сен 04 14:41:11 host=smtp.yandex.ru tls=on auth=on user=bx@ya.ru from=bx@ya.ru recipients=3458@gmail.com smtpstatus=554 smtpmsg='554 5.7.1 Message rejected under suspicion of SPAM adxPcTaXWc-fB4SvmKU' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE
echo -e "test message" | /usr/bin/msmtp --debug -t -i name@site.ruтут может быть ошибка, например, загрузки конфигурации:
ignoring system configuration file /etc/msmtprc: Нет такого файла или каталога ignoring user configuration file /.msmtprc: Нет такого файла или каталога falling back to default account
В данном случае, ни один из файлов конфигурации не был найден, поэтому отправка не удалась.
/usr/bin/
и выставить права на исполнение:
#!/bin/bash export HOME=/home/bitrix tmp_dir=/tmp/mail args=$@ if [[ ! -d $tmp_dir ]]; then mkdir $tmp_dir chmod 777 $tmp_dir fi message_body="" while read line; do message_body="$message_body$line\n" done < /dev/stdin tmp_file=$(mktemp $tmp_dir/$(date +%Y%m%d_%H%M%S)_XXXXXXXXX) echo "=========================================" > $tmp_file echo "ARGV: /usr/bin/msmtp --debug -t -i $args" >> $tmp_file echo "=========================================" >> $tmp_file echo -e "BODY: $message_body" >> $tmp_file echo "=========================================" >> $tmp_file # send message echo -e "$message_body" | /usr/bin/msmtp --debug -t -i $args >> $tmp_file && 2>&1
/etc/php.d/bitrixenv.ini
изменить настройки почты:
sendmail_path = /usr/bin/test_email.sh
При создании письма из web-интерфейса вся информация сохраняется в каталоге /tmp/mail
, каждое письмо будет сохранено в отдельном файле.
Проблема:
Не отправляются письма уведомлений о заказах с сайта, статистика за день в BitrixVM v5.0.44-5.0.45.
HOME=/
, поэтому письма, отправка которых происходит из задания в Cron, не отправляются. /home/bitrix/.msmtprc
на /etc/msmtprc
- конфигурационный файл /etc/msmtprc
является системным файлом для утилиты и позволяет решить нахождение конфигурационного файла при таком параметре HOME
.Проблема:
Не отправляется почта по Cron-у, хотя символическая ссылка с /home/bitrix/.msmtprc
на /etc/msmtprc
есть.
PATH
.
>echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bitrix/bin
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bitrix/bin
В случае необходимости подключения сетевого диска Windows в качестве хранилища для WebDAV можно воспользоваться следующей командой:
mount -t cifs -o -fstype=cifs,iocharset=utf8,username=XXXX,password=XXXX,uid=500,gid=501,fmode=0777,noserverino //xxx.xxx.xxx.xxx/folder /home/bitrix/www/docs/folder/smbгде:
uid
- идентификатор пользователя bitrix;gid
- идентификатор группы bitrix;//xxx.xxx.xxx.xxx/folder
- путь к сетевому ресурсу;/home/bitrix/www/docs/folder/smb
- папка, куда будет смонтирован диск. Итак, чтобы получать уведомления Nagios-а о различных событиях сервера, нужно настроить контакты и шаблон уведомлений:
/etc/nagios/objects/contacts.cfg
указываем параметр email
- email пользователя, кому будет отправляться нотификация:
define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Nagios Admin ; Full name of user email email@myaddress.com ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** }
/etc/nagios/objects/commands.cfg
меняем строки в секции SAMPLE NOTIFICATION COMMANDS
запуска MTA на:
# 'notify-host-by-email' command definition define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "Subject: ** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **\n\n ***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/msmtp --host=hostname --port=number --user=username --passwordeval=eval --from=mailfrom@email.com $CONTACTEMAIL$ } # 'notify-service-by-email' command definition define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "Subject: ** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **\n\n ***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/msmtp --host=hostname --port=number --user=username --passwordeval=eval --from=mailfrom@email.com $CONTACTEMAIL$ }где:
--host=hostname
- адрес smtp-сервера; --port=number
- порт smtp-сервера; --user=username
- логин для авторизации на smtp-сервере; --passwordeval=eval
- пароль для авторизации на smtp-сервере; --from=mailfrom@email.com
- от кого будет уходить письмо. msmtp --help
.service nagios restart
Т.е, по сути, в конфигурационном файле Nagios мы меняем MTA с mail на msmtp c ключами и немного модифицируем текст сообщения: т.к у msmtp нет ключа Subject:
(Тема сообщения), то мы его включаем в тело письма, и оно при получении почтовым клиентом обработается корректно.
Проверить работу нотификаций можно, например, остановив МySQL:
service mysqld stop
По умолчанию Nagios будет записывать в лог 3 сообщения со статусом CRITICAL\SOFT каждую минуту, а 4-му сообщению даст статус CRITICAL\HARD. Далее будет инициирована команда notify-service-by-email, которая отправит текст сообщения через msmtp c ключами, настроенными выше. В итоге, в течение 4-5 минут сообщение примерно такого содержания должно уйти на почту:
Subject: ** PROBLEM Service Alert: test1/MySQL: connection to 3306 is CRITICAL ** ***** Nagios ***** Notification Type: PROBLEM Service: MySQL: connection to 3306 Host: server1 Address: 192.168.2.130 State: CRITICAL Date/Time: Tue Jan 27 20:15:15 MSK 2015 Additional Info: Connection refused
После запуска службы MySQL командой # service mysqld start
должно прийти сообщение на почту:
Subject: ** RECOVERY Service Alert: server1/MySQL: connection to 3306 is OK ** ***** Nagios ***** Notification Type: RECOVERY Service: MySQL: connection to 3306 Host: server1 Address: 192.168.2.130 State: OK Date/Time: Wed Jan 28 12:30:50 MSK 2015 Additional Info: TCP OK - 0.001 second response time on port 3306
На больших и не очень проектах часто возникает вопрос с переносом исполнения некоторых особо тяжелых агентов на Cron.
COption::SetOptionString("main", "agents_use_crontab", "N"); echo COption::GetOptionString("main", "agents_use_crontab", "N"); COption::SetOptionString("main", "check_agents", "N"); echo COption::GetOptionString("main", "check_agents", "Y");
В результате выполнения должно быть NN
.
/bitrix/php_interface/dbconn.php
определение следующих констант:
define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true);
И добавляем:
if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);
/bitrix/php_interface/cron_events.php
:
<? $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../.."); $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define('CHK_EVENT', true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); CMain::FinalActions(); @set_time_limit(0); @ignore_user_abort(true); CAgent::CheckAgents(); define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true); CEvent::CheckEvents(); ?>
*/5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
После этого все агенты и отправка системных событий будут обрабатывается из-под cron, раз в 5 минут.
Чтобы не увеличивалась очередь отправки почтовых сообщений, нужно изменить параметр, отвечающий за количество почтовых обрабатываемых за раз событий. Для этого выполняем в php-консоли следующую команду:
COption::SetOptionString("main", "mail_event_bulk", "20"); echo COption::GetOptionString("main", "mail_event_bulk", "5");
Для обеспечения более высокой производительности файловой системы рекомендуем отключать изменение метки времени при чтении файлов и директорий: noatime
, nodiratime
.
Для этого в /etc/fstab нужно отредактировать (добавить в текущую строку) параметры в строке со своим UUID:
UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 / ext4 defaults,noatime,nodiratime 1 1где
UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16
- уникальный идентификатор диска, который можно узнать в консоли по команде blkid
.
После перезагрузки новые настройки начнут действовать.
Чтобы их применить, не перезагружая сервер, можно выполнить перемонтирование разделов командой:
mount -o remount,noatime,nodiratime /
defaults,noatime,commit=120
.
По умолчанию сброс данных и метаданных на диск происходит каждые 5 сек. Откладывание времени сброса, так же может уменьшить фрагментацию файлов на диске, если есть файлы, в которые часто происходит дописывание данных. Например логи.
Для упрощения работы с Bitrix Framework
в виртуальную машину включён Xdebug. Работает он по схеме:
Перед изменением настроек надо переименовать файл xdebug.ini.disabled в xdebug.ini и перезапустить httpd.
Для настройки машины воспользуйтесь следующим примером:
$ cat /etc/php.d/xdebug.ini ; Enable xdebug extension module zend_extension=/usr/lib/php/modules/xdebug.so xdebug.remote_enable=on xdebug.remote_host=192.168.205.1 xdebug.remote_port=9000
В главе описывается API, с помощью которого можно подключить процедуру заказа/создания машины управления пулом в продуктах «1С-Битрикс».
Вся работа с провайдерами осуществляется с помощью плагинов, расположенных в определенном каталоге (на текущий момент все управление сделано на файлах): /opt/webdir/providers.
Для каждого провайдера предусмотрены:
Скрипт плагина, который будет использован в web-интерфейсе продуктов «1С-Битрикс», должен быть раcположен по адресу:
/opt/webdir/providers/{provider_name}/bin/{provider_name}Для подключения в пул плагин провайдера должен поддерживать следующие аргументы командной строки:
{ "options": [ "help", "configs", "order", "order_status" ], "status": "enabled" }
Массив options должен содержать список поддерживаемых опций (например, в данном случае отсутствует опция init, которая позволяет подключиться на этапе создания мастер сервера).
Опция status может содержать следующие значения: disabled
или enabled
, что позволяет определить включен или выключен провайдер на конкретном сервере.
{ "configurations": [ { "id": "1", "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb" } ], "status": "enabled" }
configurations
- содержит список сервисов/конфигураций, которые может заказать пользователь, используя web интерфейс «1С-Битрикс».
На текущий момент поддерживается два параметра по каждой конфигурации:
{"task_id":"24"}
task_id должен содержать номер задания, который используется для дальнейшего опроса и старта добавления машины по завершению.
{ "server_password": "XXXXXXXXXXXXXX", "status": "finished", "server": "xxx.xxx.xxx.xxx", "task_id": "24" }где:
in_progress
- находится на обработке со стороны провайдера/хостера;finished
- обработка завершена, можно добавлять машину в пул; error
- во время выполнения произошла ошибка. Любое из действий может сообщить об ошибке с помощью значений в полях error и error_message. Например:
{ "error_message": "get_task error N102, No task found", "error": 1 }
Данный скрипт нужен для встраивания плагинов провайдеров в web- интерфейс продуктов «1C-Битрикс».
На текущий момент реализованы следующие методы:
{ "params": { "providers": { "superprovider": { "status": "enabled" }, "amazon": { "error": 1, "message": "bxProvider::optionsProvider: Provider amazon not exist on the host" } } } }
В данном случае, это только включено или выключено, а так же ошибки, который возникли при запросе статуса.
В случае если провайдеров нет на хосте, список будет пустым:
{ "params": { "providers": { } } }
/opt/webdir/bin/bx-provider -a status --provider superprovider -o json { "params": { "provider_options": { "superprovider": { "options": { "order_status": 1, "order": 1, "help": 1, "configs": 1, "init": 0 }, "status": "enabled", "files": { "execute": "/opt/webdir/providers/superprovider/bin/superprovider", "holder": "/opt/webdir/providers/superprovider", "config": "/opt/webdir/providers/superprovider/etc/superprovider.conf" }, "name": "superprovider", "config": "exists" } } } }
В данном случае печатает внутреннюю информацию (используется как есть внутри обработчика), по сути, такой статус больше подходит для отладки работы провайдера, чем для использования в web-интерфейсе.
/opt/webdir/bin/bx-provider -a install --provider amazon --archive /tmp/amazon-v01.tar.gz
/opt/webdir/bin/bx-provider -a configs --provider superprovider -o json { "params": { "provider_configs": { "superprovider": { "configurations": [ { "id": "1", "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb" } ], "status": "enabled" } } } }
/opt/webdir/bin/bx-provider -a order --provider superprovider --config_id 1 -o json { "params": { "provider_order": { "superprovider": { "task_id": "25" } } } }
/opt/webdir/bin/bx-provider -a order_status --provider superprovider --task_id 25 -o json { "params": { "provider_order": { "superprovider": { "server_password": "XXXXXXXXXXXXXXX", "status": "complete", "server": "xxx.xxx.xxx.xxx" "task_id": "25" } } } }
/opt/webdir/bin/bx-provider -a orders_list --provider superprovider -o json { "params": { "provider_order_list": { "superprovider": { "25": { "status": "finished", "mtime": 1403445981, "error": 0, "message": "" }, "22": { "status": "error", "mtime": 1403441000, "error": 1, "message": "cannot add ssh key to the server" }, "21": { "status": "complete", "mtime": 1403440979, "error": 0, "message": "" }, "23": { "status": "finished", "mtime": 1403441229, "error": 0, "message": "" } } } } }
Тут добавлен еще один статус по задаче: complete - это значит, что сервер из данного задания был добавлен в пул.
/opt/webdir/bin/bx-provider -a order_to_host --provider superprovider --task_id 25 -o json
Виртуальная машина сэкономит вам время и силы на правильное развертывание и администрирование вашего сайта или внутреннего информационного ресурса на базе продуктов «1С-Битрикс».
Глава предназначена для администраторов и пользователей продуктов «1С-Битрикс», устанавливающих для ознакомления либо переносящих готовые проекты на виртуальную машину BitrixVM. Аналогичным способом можно переносить проекты с удаленного сайта на виртуальную машину, между виртуальными машинами и т.д. В документе рассматриваются процедуры установки всех необходимых приложений для работы продукта на виртуальной машине BitrixVM.
Описание установки VMWare Player не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации VMWare.
Если у вас возникнут вопросы по процессу установки продуктов компании «1С-Битрикс», вы можете обратиться в службу Технической поддержки. Обсуждение работы BitrixVM доступно на специализированном форуме или в группе Виртуальные машины Битрикс социальной сети компании «1С-Битрикс».
«1C-Битрикс: Виртуальная машина» разворачивается за минуты и сразу же готова к работе. На неё можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести свои, уже готовые проекты. Перенос сайта возможен напрямую с сервера на машину.
«1C-Битрикс: Виртуальная машина» эмулирует работу реального компьютера. Продукт включает в себя сконфигурированную операционную систему, веб-сервер, базу данных, firewall, почтовый сервер, а также большое число настроек, от которых зависит надежность, производительность и безопасность веб-проекта.
BitrixVM постоянно совершенствуется и обновляется. О текущем составе машины смотрите на соответствующих страницах сайта компании «1С-Битрикс».
По умолчанию для суперпользователя root установлен пароль bitrix, для пользователя bitrix - bitrix.
Для работы с виртуальной машиной система должна соответствовать следующим техническим требованиям:
С:\VMBitrix\BitrixVM\
.С:\VMBitrix\BitrixVM\
. Виртуальная машина появится в списке добавленных.При первом запуске виртуальной машины будет предложено сменить пароли суперпользователя root и пользователя bitrix:
Аналогично происходит смена пароля пользователя bitrix:
В результате виртуальный сервер готов для использования:
Основные функции администрирования перечислены в списке Available actions:
Для перехода к выполнению любого действия введите число (от 0 до 19) и нажмите Enter. Например, для выключения виртуального сервера в строке наберите 6 (Virtual server shutdown) и нажмите Enter.
Чтобы вернуться в вашу ОС, нажмите Ctrl+Alt.
Чтобы вернуться из shell в меню виртуальной машины, введите команду:
/root/menu.sh
Далее необходимо набрать полученный IP-адрес в браузере (в нашем примере это http://192.168.1.170 или https://192.168.1.170). Откроется страница с выбором варианта работы:
Для продолжения необходимо выбрать один из вариантов:
Для настройки интегрированного почтового сервера выполните следующее:
После завершения настройки все указанные параметры будут отображены в списке ниже:
В «1C-Битрикс: Виртуальная машина» также есть поддержка быстрого развертывания кластерной конфигурации master-slave «1С-Битрикс: Управление сайтом» и «1С-Битрикс: Корпоративный портал» с установленным модулем «Веб-кластер».
Это позволит распределить один сайт на несколько серверов, решая тем самым несколько задач:
Для подготовки виртуальной машины для включения в кластер необходимо:
После подготовки первым шагом в создание кластера, является создание master-ноды. На ней будет находится master-база MySQL, а также она будет осуществлять настройку кластера и всех входящих в него узлов.
Для этого:
В мастере потребуется указать:
После подтверждения запускается процесс создания, который произведет настройку всех необходимых сервисов, а также добавит все необходимые записи в модуль Веб-кластера.
После настройки master-ноды будет предложено создать slave-ноду – можно согласиться, а можно отказаться и создать её позже .
Для полноценной работы кластера после создания master-ноды в кластер необходимо добавить хотя бы одну slave-ноду. Это можно сделать как после создания master-ноды, так и с помощью административного меню:
Здесь для slave-ноды потребуется указать:
После подтверждения запустится процесс, который произведет настройку кластера, перенесет на новую ноду файлы сайта, базу данных и добавит её сервисы в модуль Веб-кластер.
После добавления slave-ноды мы получаем полноценный кластер. При росте нагрузки на проект можно добавить дополнительную slave-ноду в кластер аналогичным образом. Тем самым обеспечить стабильность работы проекта при любом росте нагрузки:
В случае падения одной или нескольких slave-нод проект будет по-прежнему стабильно работать.
Если же упадет master-нода, то для восстановления работоспособности кластера необходимо:
Мастер создания дополнительных сайтов, позволяет развернуть на одной виртуальной машине несколько сайтов, как на независимых установках «1С-Битрикс», так и в рамках многосайтовости.
Для добавления дополнительного сайта необходимо:
/home/bitrix/ext_www/
);Новый дополнительный сайт доступен для использования.
Для удаления записи о дополнительном сайте необходимо в административном меню «1C-Битрикс: Виртуальная машина» выбрать пункт 14. Delete aditional site.
При разворачивании проектов на базе BitrixVM необходимо следить за состоянием сервера и отдельных его компонентов.
«1C-Битрикс: Виртуальная машина» версии 4.х поставляется с системами мониторинга такие как Munin и Nagios, которые имеют большое количество различных компонентов по отслеживанию функционирования всех систем сервера.
Для начала работы систем мониторинга необходимо:
Для мониторинга сервера из браузера нужно зайти по адресам и авторизоваться под созданными ранее учетными записями мониторинга:
При разворачивании проектов на базе BitrixVM, часто встает задача создания резервной копии проекта по расписанию.
В «1C-Битрикс: Виртуальная машина» версии 4.х появился функционал автоматического резервного копирования сайта, находящегося в директории /bitrix/home/www/
, и базы данных. Бекап будет создан по расписанию в виде архива .tar.gz и записан в директории /home/bitrix/backup/archive/
.
У данного способа есть как преимущества, так и недостатки в сравнении с встроенным в продукты «1С-Битрикс» механизмом создания резервной копии:
Для создания расписания автоматического резервного копирования необходимо:
/home/bitrix/ext_www/
:
На этом работа мастера настройки завершена, и в крон (/etc/crontab
) добавляется задача резервного копирования вашего проекта.
В случае необходимости более гибкой настройки времени запуска создания резервной копии, можно его скорректировать непосредственно в /etc/crontab
:
10 22 * * * bitrix test -f /home/bitrix/backup/scripts/bxbackup.sh && { /home/bitrix/backup/scripts/bxbackup.sh ; } >/dev/null 2>&1
При разворачивании проектов на базе BitrixEnv (в версии для Linux) или BitrixVM старых версий задачу создания резервной копии проекта по расписанию поможет решить скрипт, который создает резервную копию базы данных и файлов сайта (/bitrix/home/www/
) в /home/bitrix/backup/archive/
.
Создание резервной копии будет запускаться автоматически раз в сутки, в 2:30. Периодичность исполнения можно настроить в /etc/crontab
.
Для запуска резервного копирования на сайте необходимо выполнить следующие команды:
wget http://repo.bitrix.info/ext/start_site_backup.sh chmod +x start_site_backup.sh ./start_site_backup.sh
Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.
Для его настройки необходимо:
Для обновления продукта «1C-Битрикс: Виртуальная машина» необходимо выбрать в административном меню пункт 19. Update System .
Скрипт автоматически проверит обновления виртуальной машины, выдаст общий объем для загрузки и запрос на установку.
mv -f /etc/php.d/(имя модуля).ini.disabled /etc/php.d/(имя модуля).ini service httpd restart
Для переноса сайта с хостинга или локального сервера на виртуальную машину BitrixVM необходимо:
/bitrix/backup/
хостинга с уникальным именем файла).и в появившемся окне скопировать ее в буфер обмена:
Настройки подключения к MySQL по умолчанию в виртуальной машине BitrixVM:
Также, если есть необходимость, можно указать собственное имя базы данных в этом случае необходимо еще выбрать опцию Создать базу данных, если не существует.
При запуске виртуальной машины BitrixVM или физического сервера с установленным пакетом BitrixEnv сервисом bvat автоматически настраиваются основные параметры Apache, PHP, MySQL в зависимости от количества доступной памяти. Это позволяет обеспечивать оптимальные настройки сервера.
Но в ряде случаев возникает необходимость изменения некоторых параметров без отключения сервиса bvat. Для внесения таких изменений в настройки сервер предусмотрены специальные конфигурационные файлы, позволяющие переопределять параметры устанавливаемые сервисом bvat:
/etc/mysql/conf.d/z_bx_custom.cnf
/etc/php.d/z_bx_custom.ini
/etc/httpd/bx/custom/z_bx_custom.conf
В случае, если нет этих файлов, то их можно создать самостоятельно.
Запустите виртуальную машину.
В первом окне нажмите Login, войдите под root (это обязательно). Отобразится меню настройки:
Нажмите 1, потом - Enter и пройдите шаги базового мастера настройки почты.
В большинстве случаев этот мастер может сразу решить проблему настройки, достаточно указать адрес почтового сервера, порт, требуется ли авторизация для отправки писем, и, если да, то логин и пароль.
Однако этот мастер не учитывает много нюансов относительно шифрования, специфических алгоритмов аутентификации.
if(mail("email@example.com", "TEST SUBJECT", "TEST BODY")) echo "Почтовая система работает!"; else echo "Неудача, почтовая система не работает, попробуйте еще!";
Если после прохождения мастера почтовая система не заработала, то:
/home/bitrix/
.В этой папке мастер создает файл конфигурации .msmtprc - в нем хранится конфиг. Также, после того, как мы через функцию mail попробовали отправить письмо и получили ошибку, должен создаться файл .msmtp.log - с указанием ошибки отправки, которую вернул почтовый сервер. Его также необходимо изучить.
Примерное содержимое файла .msmtprc:
account default logfile /home/bitrix/.msmtp.log host mail.bitrixsoft.com port 25 from user@email.com auth off
Указан хост, порт и то, что авторизация не требуется. Если при таком конфиге в файле .msmtp.log ошибка вида:
cannot use a secure authentication method
то, значит, надо включать авторизацию:
account default logfile /home/bitrix/.msmtp.log host mail.bitrixsoft.com port 25 from user@email.com auth on user user_name password user_password
Значения user_name и user_password и user@email.com - меняем на свои, их надо запросить у администратора почтового сервера, если они вам неизвестны.
Если ошибка не пропала, значит схема авторизации немного другая и надо пробовать другой конфиг. (После каждого изменения необходимо сохранить файл и без перезагрузки веб-сервера пробовать отправить почту скриптом, описанным выше.)
account default logfile /home/bitrix/.msmtp.log host mail.bitrixsoft.com port 25 from user@email.com auth on login user_name password user_password
или такой:
account default logfile /home/bitrix/.msmtp.log host mail.bitrixsoft.com port 25 from user@email.com auth login user user_name password user_password
Видны небольшие изменения в названии директив. Один из этих вариантов должен сработать, если нет - возможен другой, специфический механизм, это надо также уточнить у администратора почтового сервера.
Перечисленные выше варианты работают для почтовой системы без шифрования. Если на вашем почтовом сервере обязательно требуется шифрование для отправки письма, то тут надо запросить новый номер порта, обычно это 465, и конфиг меняется на такой:
account default logfile /home/bitrix/.msmtp.log host mail.bitrixsoft.com port 465 tls on tls_starttls off tls_certcheck off from user@email.com auth on login user_name password user_password
Этот конфиг должен работать с шифрованым соединением. Также иногда возможны совмещения шифрования с вариантами авторизации, описанными выше, и надо пробовать разные конфиги, например:
account default logfile /home/bitrix/.msmtp.log host mail.bitrixsoft.com port 465 tls on tls_starttls off tls_certcheck off from user@email.com auth login user user_name password user_passwordили:
account default logfile /home/bitrix/.msmtp.log host mail.bitrixsoft.com port 465 tls on tls_starttls off tls_certcheck off from user@email.com auth on login user_name password user_password
На этом настройка почты должна успешно завершиться.
При использование виртуальной машины BitrixVM или ami-образа BitrixVM, со временем может возникнуть проблема нехватки свободного места. Наиболее оптимальным способом решения данной проблемы, является добавление дополнительного диска и перенос на него части контента.
Так как основной объем дискового пространства потребляется контентом сайтов и их резервными копиями, расположенными в /home/bitrix
, а также БД, расположенной в /var/lib/mysql
, то на отдельные диски, следует выносить именно эти разделы.
Рассмотрим данную задачу на примере переноса на отдельный диск папки /home
с контентом сайтов и их резервными копиями.
fdisk -l
fdisk /dev/sdb
Для сохранения изменений на диск и выхода из fdisk введите команду w.
/home
: mkfs.ext4 /dev/sdb1 mount /dev/sdb1 /mnt service httpd stop service nginx stop mv -f /home/* /mnt umount /mnt
blkid /dev/sda1: UUID="99066558-ba04-465c-9962-e827aa2928ec" TYPE="ext4" /dev/sda2: UUID="8ea38ef9-1ee5-423b-a013-15fd603a678e" TYPE="swap" /dev/sda3: UUID="08ec5c65-8fd8-47ac-a998-d81195c8f964" TYPE="ext4" /dev/sdb1: UUID="b2e58731-b621-4bd5-909a-afe3bb5dd8a1" TYPE="ext4"
и добавляем запись (в данном примере: UUID=b2e58731-b621-4bd5-909a-afe3bb5dd8a1
) о нем в /etc/fstab
(вместо UUID можно также использовать имя устройства /dev/sdb
)
mount /home service httpd start service nginx start
Добавление дисков в других средах виртуализации или непосредственно на физическом сервере, проходит аналогично.
Виртуальная машина BitrixVM поставляется с swap-разделом 256 МБ, а в образе ami он по умолчанию не подключен. Поэтому в процессе эксплуатации может возникнуть необходимость в расширении раздела подкачки.
Как и в случае с увеличением свободного места, наиболее простой способ - добавить дополнительный диск и разместить раздел подкачки на нем, либо создать файл подкачки.
Для этого:
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /dev/sdb1или в файле swap-раздел:
mkswap /swapfile
swapon /dev/sdb1или файл подкачки:
swapon /swapfile
/etс/fstab
, чтобы не включать после каждой перезагрузки вручную:
/dev/sdb1 none swap sw 0 0или о файле подкачки:
/swapfile none swap sw 0 0
В случае необходимости подключения сетевого диска Windows в качестве хранилища для WebDAV можно воспользоваться следующей командой:
mount -t cifs -o -fstype=cifs,iocharset=utf8,username=XXXX,password=XXXX,uid=500,gid=501,fmode=0777,noserverino //xxx.xxx.xxx.xxx/folder /home/bitrix/www/docs/folder/smbгде:
uid
- идентификатор пользователя bitrix;gid
- идентификатор группы bitrix;//xxx.xxx.xxx.xxx/folder
- путь к сетевому ресурсу;/home/bitrix/www/docs/folder/smb
- папка, куда будет смонтирован диск. В случае, если в проекте планируется использовать memcached, необходимо произвести его настройку в соответствии с предполагаемой нагрузкой.
Для этого необходимо:
/etc/sysconfig/memcached
задать следующие параметры:
MAXCONN = "1024"
- количество одновременных подключений (по умолчанию 1024);CACHESIZE="1024"
- объем выделяемой памяти для кеша (по умолчанию 64MB);OPTIONS="t 8"
- количество потоков memcached (по умолчанию 4).MAXCONN
, CACHESIZE
и OPTIONS
подбираются экспериментальным путем в зависимости от характера нагрузки и от имеющихся ресурсов.
Оценить объем памяти, необходимой для кеширования (параметр CACHESIZE
), можно по размеру вашего файлового кеша. Если у вас на проекте файловый кеш занимает 3 GB, то использование memcache c 256МБ памяти не будет эффективным за счет частого вытеснения.
service memcached restart
bitrix/php_intarface/dbconn.php
:
define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "127.0.0.1"); define("BX_MEMCACHE_PORT", "11211");
В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcache через сокет:
USER="bitrix"
- пользователь, от которого будет запущен memcache; OPTIONS="-t 8 -s /tmp/memcached.sock"
- количество потоков и путь к сокету.После этого необходимо изменить настройки в bitrix/php_interface/dbconn.php
:
define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "unix:///tmp/memcached.sock"); define("BX_MEMCACHE_PORT", "0");
По умолчанию в BitrixEnv и BitrixVM используется msmtp для отправки почтовых сообщений.
Преимуществом данного решения является простота его настройки. К недостатком можно отнести медленную отправку почтовых сообщений через внешние сервисы (Google, Yandex).
В большинстве случаев, это не приводит к каким-либо проблемам, так как почтовые события отрабатывают из-под cron-a, но в ряде случаев может создать проблему - например, если почтовые события исполняются на хите (задан параметр немедленной доставки) или разработчик напрямую использует функцию mail()
.
Рассмотрим настройку отправки почтовых сообщений postfix-ом через Яндекс:
yum install cyrus-sasl-plain
/etc/postfix/main.cf
:
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/mailpasswd smtp_sasl_security_options = noanonymous smtp_sasl_type = cyrus smtp_sasl_mechanism_filter = login smtp_sender_dependent_authentication = yes sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay sender_canonical_maps = hash:/etc/postfix/canonical smtp_generic_maps = hash:/etc/postfix/generic
/etc/postfix/mailpasswd
указываем логин и пароль:
[smtp.yandex.ru] www@some.ru:password
/etc/postfix/sender_relay
указываем привязку доменов и конкретных отправителей к внешним службам:
@some.ru [smtp.yandex.ru] www@some.ru [smtp.yandex.ru]
/etc/postfix/canonical
добавляем для домена указание через какой аккаунт отправлять почту:
@some.ru www@some.ru
/etc/postfix/generic
добавляем отправку почты админу:
root@localhost admin@mail.xx bitrix@localhost admin@mail.xx
postmap
для /etc/postfix/generic
, /etc/postfix/canonical
, /etc/postfix/sender_relay
, /etc/postfix/mailpasswd
:
postmap /etc/postfix/generic postmap /etc/postfix/canonical postmap /etc/postfix/sender_relay postmap /etc/postfix/mailpasswd
sendmail_path = sendmail -t -i -f www@some.ru ;bitrix-env
chkconfig saslauthd on service saslauthd restart chkconfig postfix on service postfix restart service zend-server restart
Скорость отправки сообщений php-скриптами значительно возрастет, а всю работу по доставке писем до внешнего сервера возьмет на себя postfix. При этом не нужно настраивать полноценный почтовый сервер.
На больших и не очень проектах часто возникает вопрос с переносом исполнения некоторых особо тяжелых агентов на Cron.
COption::SetOptionString("main", "agents_use_crontab", "N"); echo COption::GetOptionString("main", "agents_use_crontab", "N"); COption::SetOptionString("main", "check_agents", "N"); echo COption::GetOptionString("main", "check_agents", "Y");
В результате выполнения должно быть NN
.
/bitrix/php_interface/dbconn.php
определение следующих констант:
define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true);
И добавляем:
if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);
/bitrix/php_intarface/cron_events.php
:
<? $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../.."); $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define('CHK_EVENT', true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); @set_time_limit(0); @ignore_user_abort(true); CAgent::CheckAgents(); define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true); CEvent::CheckEvents(); ?>
*/5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
После этого все агенты и отправка системных событий будут обрабатывается из-под cron, раз в 5 минут.
Чтобы не увеличивалась очередь отправки почтовых сообщений, нужно изменить параметр, отвечающий за количество почтовых обрабатываемых за раз событий. Для этого выполняем в php-консоли следующую команду:
COption::SetOptionString("main", "mail_event_bulk", "20"); echo COption::GetOptionString("main", "mail_event_bulk", "5");
Для обеспечения более высокой производительности файловой системы рекомендуем отключать изменение метки времени при чтении файлов и директорий: noatime
, nodiratime
.
Для этого в /etc/fstab нужно отредактировать (добавить в текущую строку) параметры в строке со своим UUID:
UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 / ext4 defaults,noatime,nodiratime 1 1где
UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16
- уникальный идентификатор диска, который можно узнать в консоли по команде blkid
.
После перезагрузки новые настройки начнут действовать.
Чтобы их применить, не перезагружая сервер, можно выполнить перемонтирование разделов командой:
mount -o remount,noatime,nodiratime /
defaults,noatime,commit=120
.
По умолчанию сброс данных и метаданных на диск происходит каждые 5 сек. Откладывание времени сброса, так же может уменьшить фрагментацию файлов на диске, если есть файлы, в которые часто происходит дописывание данных. Например логи.
Для поддержки механизма NTLM-авторизации продуктами «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходим модуль «AD/LDAP интеграция» версии 11.5.0 и выше.
После включении и настройки новый механизм начинает работать следующим образом:
Рассмотрим настройку на примере «Битрикс24 в коробке».
Продукт «1С-Битрикс» готов к использованию NTLM-авторизации, осталось настроить виртуальную машину.
Для настройки виртуальной машины необходимо подключитьcя к ней под пользователем root, выбрать пункт меню NTLM autentification и ввести необходимые данные:
После подтверждения корректности введенных данных мастер настроит и запустит все необходимые службы, а также подключит виртуальную машину в домен.
net ads testjoin
Настройка завершена. Осталось проверить настройки браузеров.
Для успешной работы механизма нужно, чтобы веб-сервер находился в зоне Local Intranet (при необходимости нужно добавить):
Добавить веб-сервер к списку доверенных URI для автоматической работы механизма (через параметр network.automatic-ntlm-auth.trusted-uris
на странице Firefox: about:config)
Для упрощения работы с Bitrix Framework в виртуальную машину включён Xdebug. Работает он по схеме:
Перед изменением настроек надо переименовать файл xdebug.ini.disabled в xdebug.ini и перезапустить httpd.
Для настройки машины воспользуйтесь следующим примером:
$ cat /etc/php.d/xdebug.ini ; Enable xdebug extension module zend_extension=/usr/lib/php/modules/xdebug.so xdebug.remote_enable=on xdebug.remote_host=192.168.205.1 xdebug.remote_port=9000