Список изменений v 7.5.5 (декабрь 2023)
|
---|
Обновление ПО: php 8.1 Основные исправления: - PHP 8.1 используется по умолчанию. - Добавлена возможность обновить PHP до версии 8.3. - Добавлена возможность понизить версию PHP с 8.3 на версии ниже. |
С помощью специальных ВМ-решений вы можете быстро получить оптимально сконфигурированный сервер, не уступающий по производительности 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.
Но у него есть отличия:
При старте сразу:
Скачать его можно с сайта 1С-Битрикс под нужный вид виртуализации.
Далее нужно только установить Битрикс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 в браузере. Откроется страница с выбором варианта установки:
Для продолжения необходимо выбрать один из вариантов:
Установить - в этом случае будет запущен мастер, который позволяет скачать и установить новый сайт средствами продуктов компании «1C-Битрикс». Шаги этого варианта аналогичны шагам, рассмотренным в главе Установка продукта с помощью BitrixSetup.
Восстановить копию - в этом случае будет запущен мастер, с помощью которого можно будет перенести существующий проект (восстановить проект из резервной копии).
Что должно быть готово перед переносом?
Для переноса сайта с хостинга (облака) или локального сервера на виртуальную среду BitrixVM или BitrixEnv необходимы: архив сайта и настроенная виртуальная среда BitrixVM или BitrixEnv.
После успешного создания архива сайта он будет доступен на странице [dw]Список резервных копий[/dw][di][/di] (Настройки > Инструменты > Список резервных копий) .
Воспользуйтесь командой [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
Для начала работы с сервисами нужно создать и настроить пул сервера. Для этого нужно выбрать пункт главного меню 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 лишен этих недостатков.
По умолчанию в 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" ), ), ); ?>
$_SERVER["DOCUMENT_ROOT"
]. Иначе для двух сайтов кеш будет отличаться, так-как папки сайтов разные.При обновлении старых сайтов в кодировке 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Настройка включает в себя следующие шаги:
Например, если мы создаем web-ноду на сервере vm03, то на сервере vm04, будет создан сервис lsyncd-vm03; на сервере vm03 - lsyncd-vm04.
/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
Выполните следующие шаги:
Конфигурационные файлы: /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
Вы получаете работоспособную установку без необходимости решать проблемы смены адреса при копировании шаблона.
Каждый запуск – это будет фоновое задание, статус которого можно отслеживать, как показано выше.
В этом разделе рассматривается более углубленное описание виртуальной машины BitrixVM.
Для работы «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходимо:
Сервер – виртуальный или железный, количество серверов и их мощность зависит от потребностей.
База данных – в BitrixVM используется Percona Server for MySQL версии 5.6 и 5.7.
Кеширование данных – в BitrixVM для организации быстрого хранилища в памяти используются Memcached и Redis.
Cервис обмена мгновенными сообщениями – в BitrixVM используются модуль nginx-push-stream-module или сервер на NodeJS.
«1C-Битрикс: Виртуальная машина» поставляется в 2 вариантах:
Это специальный скрипт bitrix-env.sh для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформах CentOS 6 (i386, x86_64) и CentOS 7 (x86_64).
Установка производится на железный или виртуальный сервер несколькими командами. Подробнее про установку можно прочитать в уроке Установка «1С-Битрикс: Веб-окружение» - Linux (BitrixEnv).
«1C-Битрикс: Виртуальная машина» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести уже готовые проекты.
Образы VMBitrix доступны для гипервизоров: VMWare, Sphere, VirtualBox и HyperV.
Скачать их можно на странице загрузки.
Список AMI-образов для различных регионов Amazon EC2 можно взять в специальном разделе.
Оба варианта очень похожи – готовые образы «1C-Битрикс: Виртуальная машина» VMBitrix собираются на основе того же скрипта bitrix-env.sh, только в каждый образ включаются дополнительные драйверы для работы со своим гипервизором и скрипты для сервиса Amazon EC2.
Пакеты bitrix-env.sh обновляются чаще, чем образы BitrixVM. Поэтому при первом запуске образа, желательно запустить обновление BitrixVM через меню.
Для установки bitrix-env используется операционная система CentOS версий 6 или 7. Выбор в пользу CentOS был сделан из-за распространенности данной ОС, большого сообщества, а также из-за опыта использования в рамках инфраструктуры Битрикс24.
Репозиторий – это файловое хранилище, организованное определенным образом. В нем хранятся пакеты программ, доступных для дальнейшего распространения.
Пакеты виртуальной машины BitrixVM содержатся в специальном yum-репозитории Bitrix, расположенном в CloudFront (AmazonCDN).
Пакет bitrix-env – полная виртуальная машина BitrixVM, подходит под любую установку продуктов «1С-Битрикс». Скачиваются пакеты необходимых сервисов, создаются настройки сервера в зависимости от кофигурации оборудования, создается директория сайта по умолчанию /home/bitrix/www/
с необходимыми скриптами и кофигурационными файлами для выбора установки продуктов «1С-Битрикс».
Пакет bitrix-env-crm – частный случай bitrix-env, разработан для редакции Битрикс24.СRM. Скачиваются пакеты необходимых сервисов, создаются настройки сервера в зависимости от кофигурации оборудования, запускается Push-сервис, устанавливается редакция коробочной версии Битрикс24.СRM в /home/bitrix/www/
.
В составе bitrix-env используются стандартные пакеты из репозиториев, но с дополнительными настройками.
В пакет bx-nginx, помимо самого nginx (stable), входят дополнительные модули:
При установке bitrix-env создаются для nginx:
настройки подключенных модулей bx-nginx (кроме модуля pagespeed).
В настройках главного модуля в продуктах 1С-Битрикс есть опция Быстрая отдача файлов через Nginx, при активации которой c помощью заголовка X-Accel-Redirect
формируется специальная ссылка. Эта ссылка обрабатывается сервером nginx, а он уже проксирует запрос в подключенное хранилище и отдает запрошенный файл клиенту. Таким образом, освобождаются ресурсы backend-службы, которая обрабатывает php-запросы, а сама отдача файла выполняется обычно быстрее.
Также есть варианты дополнительных настроек из сценариев через меню виртуальной машины:
В качестве backend-а используется Apache – стандартный пакет, актуальная версия из EPEL-репозитория.
PHP – стандартные пакеты из REMI-репозитория. Виртуальная машина BitrixVM поддерживает возможность переключения версий: 5.6 – 7.0 – 7.1 – 7.2 – 7.3 – 7.4 – 8.0 и обратно.
При установке bitrix-env создаются Apache конфигурации:
Варианты донастройки из сценариев меню виртуальной машины:
В виртуальной машине BitrixVM в качестве MySQL используется стандартный пакет Percona Server. Не запрещено устанавливать другие варианты. Официальная поддержка версии 8.0 есть.
При установке bitrix-env создаются для mysqld конфигурации:
Варианты донастройки из сценариев меню виртуальной машины:
Ansible – система управления конфигурациями, с использованием декларативного языка разметки для описания конфигураций для автоматизации настройки и развертывания программного обеспечения.
Он легок в настройке. Всё, что нужно для его работы, это ssh-доступ к серверу. Также имеется простая точка входа, как в плане конфигурации – сценарии (ini-, yml- и json-форматы), шаблоны (jinja2), так и в написании плагинов на достаточном количестве языков (bash и др). Имеет понятную документацию и крупное сообщество с большой базой примеров.
В виртуальной машине BitrixVM сделано следующем образом: в меню виртуальной машины можно выбрать, что хотите сделать (настроить ssl-сертификат, создать сайт, включить cron-задания для сайта и т.п), затем из интерфейса стартует задача (task) на изменение через API – это и есть ansible-сценарий со всеми необходимыми опциями.
Есть два варианта работы с виртуальной машиной BitrixVM - получение текущего статуса и запрос на изменение.
Через web-интерфейс в административной части продуктов «1С-Битрикс»: Настройки > Управление масштабированием > Панель управления:
Данный вариант управления масштабированием сервера в основном направлен на управление ролями одного или нескольких серверов, входящих в пул для отказоустойчивой системы в условиях возрастающей нагрузки. Урезан по функционалу, по сравнению со вторым вариантом.
Через интерфейс консольного меню командной строки.
Наиболее полный и рекомендуемый интерфейс управления виртуальной машиной 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>
и затем в нее помещаются файлы:
Просмотреть статусы задач можно с помощью пункта меню виртуальной машины 10. 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>/ (начиная с версии BitrixVM 7.5 или бета версии 7.4.10).
Конфигурация 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-адреса, обновление сервера).
При создании пула для сервера:
Данная операция нужна в редких случаях ручного вмешательства в файлы инвентаря.
Особенности удаления пула:
Для подключения сервера в пул нужно знать следующие данные:
Подключение разбито на два этапа:
Если дополнительный сервер больше не нужен, его можно удалить из пула.
При удалении сервера из пула происходит:
Виртуальная машина сэкономит время и силы на правильное развертывание и администрирование сайта или внутреннего информационного ресурса на базе продуктов «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
:
/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