Развертывание Битрикс24 на Debian и Ubuntu
Используемые термины: Битрикс24, Ubuntu.
В данной инструкции мы рассмотрим установку Битрикс24 на системы Deb, которая максимально напоминает Bitrix VM, доступную только для систем на базе RPM. В итоге, мы получим:
- Серверную инфраструктуру, настроенную для работы портала Битрикс24.
- Меню Битрикс24, которое можно вызвать, подключившись к серверу по SSH.
- Полное прохождение технической проверки работы Битрикс24 (встроенный инструмент).
Инструкция будет состоять из разделов:
Предварительная настройка
Развертывание веб-сервера
Установка и настройка PHP
Сервер баз данных
Веб-сервер NGINX
Веб-сервер Apache
Загрузка и настройка Битрикс24
Предварительная настройка
Загрузка битрикса
SSH меню
Веб установка
Настройка SSL
Кэширования с помощью Redis
Настройка Push сервера
Проверка качества системы
Дополнительные материалы
Приступим.
Подготовка системы
Предварительно, подготовим наш сервер к работе.
1. Установка пакетов, которые понадобятся нам для работы
Обновляем кэш репозиториев:
apt update
Выполняем установку:
apt install perl curl git ssl-cert cron locales poppler-utils catdoc unzip rsync pwgen make build-essential sudo ansible
* где:
- perl — интерпретатор для одноименного языка программирования. Используется некоторыми скриптами портала.
- curl — утилиты для отправки http-запросов. Несколько применений, в частности, загрузка файлов.
- git — утилита для работы с git-репозиториями. Необходима для загрузки проектов.
- ssl-cert — позволяет автоматически устанавливать ПО, которому требуется создание сертификатов SSL.
- cron — менеджер настройки и запуска заданий по расписанию.
- locales — файлы с языковыми наборами.
- poppler-utils — инструменты командной строки для получения информации о PDF-документах, их преобразования в другие форматы и редактирования.
- catdoc — программа для чтения содержимого документов офис (Word, Excel) и вывода содержимого на экран.
- unzip — для распаковки архивов формата zip.
- rsync — утилита для синхронизации данных между каталогами.
- pwgen — генератор паролей.
- make — утилита, автоматизирующая процесс компиляции исходного кода.
- build-essential — набор инструментов для сборки deb-пакетов
- sudo — дает возможность пользователю Linux выполнять команды с повышенными привилегиями.
- ansible — некоторые действия меню Битрикс требуют наличия ansible.
Помимо ansible, устанавливаем коллекции ansible-galaxy:
ansible-galaxy collection install community.general
ansible-galaxy collection install ansible.posix
2. Настройка локализации
Запускаем команду:
dpkg-reconfigure locales
Если получим ошибку:
bash: locale-gen: команда не найдена
Необходимо перезайти в оболочку с подгрузкой среды пользователя root:
su -
Мы должны увидеть меню выбора различный пакетов локализации. Выбираем en_US.UTF-8.
После выполняем команды:
echo "LANG=en_US.UTF-8" > /etc/default/locale
echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/environment
3. Загрузка конфигурационных файлов
Разработчик предоставляет готовые конфигурационные файлы для настройки среды веб под Debian. Скачиваем архив:
curl -sLO https://dev.1c-bitrix.ru/docs/chm_files/debian.zip
И распаковываем его:
unzip debian.zip && rm -f debian.zip
4. Настройка брандмауэра
По умолчанию, в системах Debian фаервол разрешает все входящие запросы. Однако, если в нашей среде входящие, по умолчанию, запрещены, вводим команду:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
В продуктивной среде лучше использовать https. В этом случае также открываем порт 443:
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Для сохранения правил iptables используем iptables-persistent:
apt install iptables-persistent
netfilter-persistent save
Настройка веб среды
Подготовим наш веб-сервер. Для битрикс24 должна использоваться связка PHP + MySQL/MariaDB + NGINX + Apache.
Рассмотрим процесс установки и настройки компонентов подробнее.
PHP
Нам необходим интерпретатор определенной версии. На момент обновления инструкции битрикс хорошо работал с PHP версии 8.2.
Для начала установим набор пакетов, которые нужны для работы с репозиториями:
apt install lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
* где:
- lsb-release — для определения версии релиза операционной системы. Используется при настройке репозитория и определения, какой нужен distribution.
- ca-certificates — набор корневых сертификатов. В противном случае, мы можем не подключиться к репозиторию по https.
- apt-transport-https — дополнение для возможности использовать репозитории по https.
- software-properties-common — утилита для работы с репозиториями.
- gnupg2 — для шифровки и дешифровки цифровых подписей. Нужна для работы с цифровыми подписями пакетов при проверке их валидности.
Переходим к настройке репозитория. Команды будут зависеть от того, работаем мы с Ubuntu или Debian.
а) Debian:
echo "deb https://mirror.yandex.ru/debian/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
б) Ubuntu:
add-apt-repository ppa:ondrej/php
Команды выше позволяют добавить файлы с описанием репозитория, откуда может быть установлен PHP.
Обновим кэш репозитория:
apt update
Для удобства работы, создадим переменную с указанием версии PHP, которую будем устанавливать:
export PHP_VER=8.2
Устанавливаем PHP и необходимые расширения:
apt install php${PHP_VER} php${PHP_VER}-cli php${PHP_VER}-common php${PHP_VER}-gd php${PHP_VER}-ldap php${PHP_VER}-mbstring php${PHP_VER}-mysql php${PHP_VER}-opcache php${PHP_VER}-curl php${PHP_VER}-redis php-pear php${PHP_VER}-apcu php${PHP_VER}-mcrypt php${PHP_VER}-zip php${PHP_VER}-pspell php${PHP_VER}-xml --no-install-recommends
Из ранее распакованного архива с конфигурацией битрикс перенесем файлы для PHP:
rsync -a ./debian/php.d/ /etc/php/${PHP_VER}/mods-available/
Интерпретатор развернут. Переходим к серверу баз данных.
СУБД
Для битрикс24 больше рекомендована MySQL, однако, архив с конфигурационными файлами, который загружается с сайта разработчика, содержит данные только для MariaDB, поэтому мы будем работать с этой СУБД.
Для установки вводим:
apt install mariadb-server
Копируем конфигурационные файлы для mariadb:
rsync -a ./debian/mysql/ /etc/mysql/
Добавляем опцию innodb_strict_mode в конфигурацию СУБД:
echo 'innodb_strict_mode = off' >> /etc/mysql/my-bx.d/zbx-custom.cnf
* данная опция включает или отключает, так называемый, строгий режим InnoDB. При его включении некоторые предупреждения InnoDB становятся ошибками. В данном случае, мы отключаем строгий режим. Это необходимо для корректной работы некоторых скриптов битрикс24.
Перезапускаем сервис для MariaDB:
systemctl restart mariadb
Идем дальше.
NGINX
Выполняем установку из встроенного репозитория:
apt install nginx
После копируем конфигурационные файлы для nginx из скачанного ранее архива:
rsync -a ./debian/nginx/ /etc/nginx/
Удаляем default виртуальные домен, так как теперь по умолчанию должен открываться битрикс24:
rm -f /etc/nginx/sites-enabled/default
Создаем симлинки для конфигураций из каталога sites-available в каталог sites-enabled:
ln -s /etc/nginx/sites-available/rtc.conf /etc/nginx/sites-enabled/rtc.conf
ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf
Открываем файл:
vi /etc/hosts
Для локального хоста добавляем две записи (отмечено желтым):
127.0.0.1 localhost push httpd
* в конфигурации nginx, полученной с сайта разработчика, для серверов push и apache используется, соответственно, имена хостов push httpd. Само собой, таких имен нет и сервер ничего про это не знает. Чтобы решить проблему мы добавляем эти записи в файл hosts.
Проверяем корректность конфигурации nginx:
nginx -t
И перезапускаем сервис:
systemctl restart nginx
Переходим к настройке apache.
Apache
Веб-сервер apache установим командой:
apt install apache2
И перенесем конфигурационные файлы:
rsync -a ./debian/apache2/ /etc/apache2/
Создадим симлинки из mods-available каталога интерпретатора и разместим их в настройка PHP для конфигурации apache и cli:
ln -sf /etc/php/${PHP_VER}/mods-available/zbx-bitrix.ini /etc/php/${PHP_VER}/apache2/conf.d/99-bitrix.ini
ln -sf /etc/php/${PHP_VER}/mods-available/zbx-bitrix.ini /etc/php/${PHP_VER}/cli/conf.d/99-bitrix.ini
Разрешаем модули apache:
a2dismod --force autoindex
a2enmod rewrite remoteip
* где:
- autoindex — позволяет генерировать список файлов в каталоге по URL.
- rewrite — модуль для преобразования URL. Например, с его помощью можно отправить инструкцию браузеру для выполнения редиректа на другую страницу.
- remoteip — позволяет получить настоящий IP-адрес клиента, который сделал запрос. В противном случае apache, получая запросы от локального nginx будет думать, что запросы пришли с локального хоста.
Запрещаем mpm_event:
a2dismod mpm_event
* по умолчанию, apache2 может быть установлен с модулем мультипроцессовой обработки mpm_event. Данный модуль не поддерживает php 7 и выше.
Разрешаем модуль мультипроцессовой обработки mpm_prefork:
a2enmod mpm_prefork
Разрешаем модуль php:
a2enmod php${PHP_VER}
Создаем конфигурационный файл для модуля remoteip:
vi /etc/apache2/mods-enabled/remoteip.conf
<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1
</IfModule>
Создаем каталог, где разместим наш портал:
mkdir -p /var/www/html/bx-site
Создадим каталог для drop-in файла сервиса apache2:
mkdir /etc/systemd/system/apache2.service.d
И создадим в нем файл:
vi /etc/systemd/system/apache2.service.d/privtmp.conf
[Service]
PrivateTmp=false
* опция PrivateTmp позволяем запретить или разрешить использование приватных временных каталогов для каждого процесса, который создает сервис. На практике, это будет значить, что каждый процесс apache будет хранить сессию в отдельном каталоге, что в итоге приведет к проблемам авторизации. В нашем случае данную возможность нужно отключить.
Перечитываем конфигурацию systemd:
systemctl daemon-reload
Проверяем конфигурационные файлы apache на корректность:
apachectl -t
Перезапускаем apache:
systemctl restart apache2
Среду для веб-сервера мы настроили. Переходим к загрузке и настройке портала битрикс24.
Портал
Процесс настройки портала будет разбит на несколько шагов.
Подготовка среды
Сгенерируем последовательность на 24 символа:
echo $(date +%s | sha256sum | base64 | head -c 24)
Например, у меня получилась:
OWZkMDQ0ZjRlNzM4YjYzMzQy
Фиксируем ее. Нам понадобится данная последовательность для настройки портала.
Заходим в оболочку SQL:
mysql
Создаем базу для битрикс:
> CREATE DATABASE bitrix;
* в данном примере база будет иметь название bitrix.
Создаем пользователя базы данных и задаем ему пароль:
> CREATE USER bitrix@localhost;
> SET password FOR bitrix@localhost = PASSWORD('bitrix_password123');
* в нашем примере имя пользователя bitrix и пароль bitrix_password123.
Даем полные права пользователю на созданную базу:
> GRANT all ON bitrix.* to bitrix@localhost;
Также зададим пароль пользователю root:
> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root_password123');
* в нашем примере у пользователя root будет пароль root_password123.
Обновим кэш привилегий в mariadb:
> FLUSH PRIVILEGES;
Выходим из оболочки SQL:
> quit
Создаем файл:
vi /root/.my.cnf
[client]
user=root
password="root_password123"
* в данном примере мы указали, что при подключении клиентом mysql к серверу нужно использовать пользователя root и пароль root_password123.
Загрузка и настройка портала
Переходим в каталог будущего портала битрикс:
cd /var/www/html/bx-site
С сайта разработчика скачиваем два служебных файла:
curl -sLO https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php
curl -sLO https://www.1c-bitrix.ru/download/scripts/restore.php
* bitrixsetup.php позволяет развернуть новый портал Битрикс24, restore.php — восстановить портал из резервной копии.
Создаем каталог:
mkdir -p bitrix/php_interface
В созданном каталоге создаем конфигурационный файл dbconn.php:
vi bitrix/php_interface/dbconn.php
<?php
define("DBPersistent", false);
$DBDebug = false;
$DBDebugToFile = false;
define("DELAY_DB_CONNECT", true);
define("CACHED_b_file", 3600);
define("CACHED_b_file_bucket_size", 10);
define("CACHED_b_lang", 3600);
define("CACHED_b_option", 3600);
define("CACHED_b_lang_domain", 3600);
define("CACHED_b_site_template", 3600);
define("CACHED_b_event", 3600);
define("CACHED_b_agent", 3660);
define("CACHED_menu", 3600);
define("BX_FILE_PERMISSIONS", 0644);
define("BX_DIR_PERMISSIONS", 0755);
@umask(~(BX_FILE_PERMISSIONS|BX_DIR_PERMISSIONS)&0777);
define("MYSQL_TABLE_TYPE", "INNODB");
define("SHORT_INSTALL", true);
define("VM_INSTALL", true);
define("BX_UTF", true);
define("BX_CRONTAB_SUPPORT", false);
define("BX_COMPRESSION_DISABLED", true);
define("BX_DISABLE_INDEX_PAGE", true);
define("BX_USE_MYSQLI", true);
?>
Также создаем файл settings.php:
vi bitrix/.settings.php
<?php
return array (
'utf_mode' =>
array (
'value' => true,
'readonly' => true,
),
'cache_flags' =>
array (
'value' =>
array (
'config_options' => 3600,
'site_domain' => 3600,
),
'readonly' => false,
),
'cookies' =>
array (
'value' =>
array (
'secure' => false,
'http_only' => true,
),
'readonly' => false,
),
'exception_handling' =>
array (
'value' =>
array (
'debug' => false,
'handled_errors_types' => 4437,
'exception_errors_types' => 4437,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' =>
array (
'file' => '/var/log/php/exceptions.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
'crypto' =>
array (
'value' =>
array (
'crypto_key' => "OWZkMDQ0ZjRlNzM4YjYzMzQy",
),
'readonly' => true,
),
'connections' =>
array (
'value' =>
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
'host' => 'localhost',
'database' => 'bitrix',
'login' => 'bitrix',
'password' => 'bitrix_password123',
'options' => 2,
),
),
'readonly' => true,
)
);
?>
* обратите внимание, что нужно изменить значения для опций:
- crypto_key — ключ шифрования. Его мы сгенерировали выше.
- password — пароль, который мы указали, когда создавали пользователя bitrix в mariadb.
Меняем владельца для каталога портала на www-data:
chown -R www-data:www-data /var/www/html/bx-site
Установка меню командной строки
После установке Bitrix VM при работе в командной строке Linux, можно пользоваться интерактивным меню — установим такое же на систему DEB.
В качестве набора скриптов будем использовать проект на Github github.com/EduardRe/DebianLikeBitrixVM:
git clone --depth 1 --filter=blob:none --sparse https://github.com/EduardRe/DebianLikeBitrixVM.git "/root/DebianLikeBitrixVM"
Переходим в каталог склонированного проекта:
cd /root/DebianLikeBitrixVM
Переключаемся на работу с каталогом vm_menu:
git sparse-checkout set vm_menu
Переносим каталог vm_menu в домашнюю папку пользователя root:
mv -f vm_menu /root
Переходим в домашний каталог пользователя root:
cd /root
Удалим каталог DebianLikeBitrixVM — он не нужен для работы меню:
rm -rf DebianLikeBitrixVM
Сделаем файл vm_menu/menu.sh исполняемым:
chmod +x /root/vm_menu/menu.sh
Создадим симлинк файла vm_menu/menu.sh и поместим его в корень каталога /root:
ln -s /root/vm_menu/menu.sh /root/menu.sh
Можно перейти к завершительному шагу установки портала.
Развертывание портала
Мы подготовили базу для портала, загрузили служебные скрипты и создали меню. Теперь можно скачать файлы портала. Это выполняется в автоматическом режиме служебным скриптом.
Для начала, запустим меню:
/root/menu.sh
Выберем пункт Enable Bitrix VM emulating:
5) Enable Bitrix VM emulating
* данное действие выполним команду, которая позволит битриксу думать, что он работает на Bitrix VM.
После открываем браузер и переходим по адресу http://<IP-адрес сервера>/bitrixsetup.php. Откроется страница загрузки и установки портала Битрикс24.
Меняем язык на русский и кликаем по кнопке Установить:
В открывшемся окне выбираем дистрибутив, например, 1С-Битрикс24 и демонстрационную версию (если у нас есть ключ, то можно выбрать коммерческую лицензию и ввести его), после нажимаем по кнопке Загрузить:
Начнется процесс загрузки дистрибутива. После его окончания откроется мастер установки — на первой странице принимаем лицензионное соглашение и нажимаем Далее:
На странице «Регистрация продукта» можно снять галочку для заполнения формы регистрации:
Начнется процесс установки Битрикс24. Ждем — откроется окно создания учетной записи администратора. Заполняем веб-формы и кликаем Далее.
Откроется страница настройки портала. Кликаем Далее до пункта «Настройка Битрикс24» — отмечаем нужные нам галочки и кликаем Установить:
Откроется последняя страница — нажимаем по Перейти в Битрикс24. Установка завершена.
Настройка HTTPS
Для корректной работы портала необходимо на него заходить по https, а для этого нужен сертификат. Мы рассмотрим пример получения бесплатного сертификата от Let's Encrypt. Подробнее в статье Получение бесплатного SSL сертификата Let's Encrypt.
Открываем на редактирование файл:
vi /etc/nginx/conf.d/bitrix.conf
В самый низ добавим:
location ~ /.well-known {
root /usr/share/nginx/html;
allow all;
}
* данная настройка укажет веб серверу искать файлы в каталоге /usr/share/nginx/html, если мы обратимся к странице /.well-known.
Проверяем корректность настройки NGINX и если ошибок нет, перезапускаем службу:
nginx -t && nginx -s reload
Устанавливаем утилиту certbot:
apt install certbot
С помощью данной утилиты получим сертификат:
certbot certonly --webroot --agree-tos --email postmaster@dmosk.ru --webroot-path /usr/share/nginx/html/ -d bitrix.dmosk.ru
* в данном примере мы запрашиваем сертификат для домена bitrix.dmosk.ru. Предполагается, что именно на нем у меня работает битрикс.
Теперь открываем файл:
vi /etc/nginx/sites-enabled/default.conf
Редактируем:
server {
listen 80 default_server;
на:
server {
listen 443 ssl default_server;
Добавляем:
server {
...
ssl_certificate /etc/letsencrypt/live/bitrix.dmosk.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bitrix.dmosk.ru/privkey.pem;
...
}
* в данном примере мы указываем пути до полученных сертификатов. Где bitrix.dmosk.ru — имя нашего сайта, для которого был получен сертификат.
Также добавляем новый блок server:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
Проверяем конфигурацию и перезапускаем nginx:
nginx -t && nginx -s reload
Открываем конфигурационный файл dbconn.php:
vi bitrix/php_interface/dbconn.php
Добавим в него одну строку:
<?php
...
$_SERVER["SERVER_PORT"] = "443";
?>
* мы добавили PHP переменную, которая указывает, что запрос пришел на порт 443. Это способ передать Битриксу, что мы работаем по https.
Можно открывать портал по доменному имени по https.
Настройка кэширования с помощью Redis
Установим пакет:
apt install redis
Открываем конфигурационный файл:
vi /etc/redis/redis.conf
Добавим строки:
pidfile /run/redis/redis-server.pid
dir /var/lib/redis
unixsocket /var/run/redis/redis-server.sock
Также добавим строку vm.overcommit_memory в sysctl:
echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
* vm.overcommit_memory позволяет задать условия, при которых можно будет выполнять запросы больших объемов памяти. Значение 1 позволяет не обрабатывает перерасход памяти. С одной стороны, это может повысить на нее нагрузку, но с другой — увеличить производительность задач при использовании памяти.
Разово применяем настройку sysctl:
sysctl -p
Добавим пользователя redis в группу www-data:
usermod -g www-data redis
Поменяем владельца для каталога хранения логов redis:
chown root:www-data /etc/redis/ /var/log/redis/
Создадим каталог для drop-in файла сервиса redis:
mkdir -p /etc/systemd/system/redis.service.d
А также сам файл:
vi /etc/systemd/system/redis.service.d/override.conf
[Service]
Group=www-data
PIDFile=/run/redis/redis-server.pid
* мы переопределили группу, от которой будет работать сервис редиса, а также путь до PID-файла.
Перечитаем конфигурацию systemd:
systemctl daemon-reload
Перезапустим службу redis:
systemctl restart redis
Открываем конфигурационный файл битрикса:
vi /var/www/html/bx-site/bitrix/.settings_extra.php
Приведем его к виду:
<?php
return array(
'cache' => array(
'value' => array(
'type' => array(
'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis',
'extension' => 'redis'
),
'redis' => array(
'host' => '127.0.0.1',
'port' => '6379',
),
'sid' => $_SERVER["DOCUMENT_ROOT"] . "#01"
),
),
);
?>
* в конкретном примере мы указываем, что для кэширования битрикс должен использовать Redis, подключившись к нему на локальном адреса, порту 6379 (порт по умолчанию, на котором запускается redis).
Настройка локального PUSH-сервера
У нас есть возможность использовать push сервер, предоставляемый Битрикс24. Однако, если необходим свой локальный сервер, выполняем следующие команды.
Создадим переменную:
export NODE_VER=18
Теперь настроим репозиторий для установки nodejs:
curl -sL https://deb.nodesource.com/setup_${NODE_VER}.x | bash -
Устанавливаем сам nodejs:
apt install nodejs
Генерируем последовательность для push-server SECURITY_KEY:
echo $(date +%s | sha256sum | base64 | head -c 24)
Создадим переменную с полученным значением, например:
export PUSH_KEY="MWM4YjRlZDFiNWIyYWY2Mjg1"
Перейдем в каталог /opt:
cd /opt
Загрузим в него исходник push-server:
curl -sLO https://repo.bitrix.info/vm/push-server-0.3.0.tgz
Выполним установку зависимых модулей nodejs:
npm install --production ./push-server-0.3.0.tgz
Удалим архив исходника:
rm -f ./push-server-0.3.0.tgz
Создадим симлинк на конфигурационный файл push-server и разместим его в привычном каталоге /etc:
ln -sf /opt/node_modules/push-server/etc/push-server /etc/push-server
Переходим в каталог с установленным nodejs модулем push-server:
cd /opt/node_modules/push-server
Копируем бинарник push-server-multi в каталог /usr/local/bin:
cp etc/init.d/push-server-multi /usr/local/bin/push-server-multi
Создаем каталог:
mkdir /etc/sysconfig
Копируем в него конфигурацию с system environment:
cp etc/sysconfig/push-server-multi /etc/sysconfig/push-server-multi
Копируем файл systemd:
cp etc/push-server/push-server.service /etc/systemd/system/
Создаем симлинк, который будет вести на nodejs модуль из каталога /opt:
ln -sf /opt/node_modules/push-server /opt/push-server
Добавим пользователя nginx в группу www-data:
useradd -g www-data bitrix
В файл /etc/sysconfig/push-server-multi добавим:
cat <<EOF >> /etc/sysconfig/push-server-multi
GROUP=www-data
SECURITY_KEY="${PUSH_KEY}"
RUN_DIR=/tmp/push-server
REDIS_SOCK=/var/run/redis/redis-server.sock
WS_HOST=127.0.0.1
EOF
Запустим скрипты для конфигурирования сервера push:
/usr/local/bin/push-server-multi configs pub
/usr/local/bin/push-server-multi configs sub
Если увидим ошибку:
/usr/local/bin/push-server-multi: line 25: /etc/rc.d/init.d/functions: No such file or directory
... просто игнорируем ее.
Немного переопределим владельца и права для временных файлов, которые будет создавать служба push-server. Для этого создадим файл в каталоге /etc/tmpfiles.d:
echo 'd /tmp/push-server 0770 bitrix www-data -' > /etc/tmpfiles.d/push-server.conf
И выполним команду:
systemd-tmpfiles --remove --create
Создадим каталог для логов и поменяем для него владельца:
mkdir -p /var/log/push-server
chown bitrix:www-data /var/log/push-server
sed -i 's|User=.*|User=bitrix|;s|Group=.*|Group=www-data|;s|ExecStart=.*|ExecStart=/usr/local/bin/push-server-multi systemd_start|;s|ExecStop=.*|ExecStop=/usr/local/bin/push-server-multi stop|' /etc/systemd/system/push-server.service
Разрешаем и стартуем службу пуш сервера:
systemctl enable push-server
systemctl start push-server
Проверить состояние можно командой:
systemctl status push-server
Открываем конфигурационный файл битрикса и добавляем в него следующие строки:
vi /var/www/html/bx-site/bitrix/.settings.php
'pull_s1' => 'BEGIN GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!',
'pull' => Array(
'value' => array(
'path_to_listener' => "http://#DOMAIN#/bitrix/sub/",
'path_to_listener_secure' => "https://#DOMAIN#/bitrix/sub/",
'path_to_modern_listener' => "http://#DOMAIN#/bitrix/sub/",
'path_to_modern_listener_secure' => "https://#DOMAIN#/bitrix/sub/",
'path_to_mobile_listener' => "http://#DOMAIN#:8893/bitrix/sub/",
'path_to_mobile_listener_secure' => "https://#DOMAIN#:8894/bitrix/sub/",
'path_to_websocket' => "ws://#DOMAIN#/bitrix/subws/",
'path_to_websocket_secure' => "wss://#DOMAIN#/bitrix/subws/",
'path_to_publish' => 'http://127.0.0.1:8895/bitrix/pub/',
'nginx_version' => '4',
'nginx_command_per_hit' => '100',
'nginx' => 'Y',
'nginx_headers' => 'N',
'push' => 'Y',
'websocket' => 'Y',
'signature_key' => '${PUSH_KEY}',
'signature_algo' => 'sha1',
'guest' => 'N',
),
),
'pull_e1' => 'END GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!',
Обратите внимание, что опции разделяются запятыми. Добавляя новые строки, убедитесь, что строка выше заканчивается символом запятой.
Push-сервер готов к работе.
Настройка (проверка системы)
Для правильной работы портала необходимы дополнительные настройки системы. Анализ ошибок и предупреждений при настройке можно получить на странице Настройки - Инструменты - Проверка системы.
Попробуем рассмотреть некоторые из ошибок и способы из решения.
1. Работа с сокетами
Является основной настройкой для портала, так как на ее основе строится много других проверок. Нет смысла продолжать работу с Битрикс24, если при проверке работы с сокетами система возвращает ошибку.
Для корректной работы необходимо:
- Перейти на использование https с настройкой корректного сертификата.
- Установить (обновить) корневые центры сертификации.
Удобный инструмент для проверки работы ssl — команда curl:
curl https://bitrix.dmosk.ru
Мы должны получить не сообщение об ошибки, а html код страницы.
2. Выполнение агентов на cron
Чтобы портал мог выполнять фоновые задания, необходимо настроить cron.
Открываем на редактирование crontab (для пользователя bitrix):
crontab -e -u bitrix
Добавляем задание:
* * * * * /usr/bin/php -f /var/www/html/bx-site/bitrix/modules/main/tools/cron_events.php
* в данном примере мы запускаем на исполнение скрипт /var/www/html/bx-site/bitrix/modules/main/tools/cron_events.php каждую минуту.
Переходим в панели Битрикс в раздел Настройки - Инструменты - Командная PHP-строка и вводим команду:
COption::SetOptionString("main", "agents_use_crontab", "Y");
COption::SetOptionString("main", "check_agents", "Y");
3. Битрикс24.Диск. Быстрая работа с файлами
Переходим в раздел Настройки - Настройки продукта - Настройка модулей. Мы окажемся в разделе «Главный модуль». В подразделе «Файлы» ставим галочку Быстрая отдача файлов через Nginx:
Нажимаем Применить.
4. Время на БД и веб-сервере
Откроем файл:
vi /var/www/html/bx-site/bitrix/php_interface/dbconn.php
Добавим строку, которая определяет временную зону, которая настроена на сервере:
date_default_timezone_set("Europe/Berlin");
Посмотреть временную зону сервера можно командой:
timedatectl
5. Настройка почтовых уведомлений
Процесс настройки почты для Битрикс24 подробнее описан в инструкции Настройка корректной отправки почты в Битрикс24.
Читайте также
Дополнительная информация по битрикс24:
1. Настройка корректной отправки почты в Битрикс24.