Развертывание Битрикс24 на Debian и Ubuntu

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: Битрикс24Ubuntu.

В данной инструкции мы рассмотрим установку Битрикс24 на системы Deb, которая максимально напоминает Bitrix VM, доступную только для систем на базе RPM. В итоге, мы получим:

  1. Серверную инфраструктуру, настроенную для работы портала Битрикс24.
  2. Меню Битрикс24, которое можно вызвать, подключившись к серверу по SSH.
  3. Полное прохождение технической проверки работы Битрикс24 (встроенный инструмент).

Инструкция будет состоять из разделов:

Приступим.

Подготовка системы

Предварительно, подготовим наш сервер к работе.

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.

Меняем язык на русский и кликаем по кнопке Установить:

Начинаем установку Битрикс24

В открывшемся окне выбираем дистрибутив, например, 1С-Битрикс24 и демонстрационную версию (если у нас есть ключ, то можно выбрать коммерческую лицензию и ввести его), после нажимаем по кнопке Загрузить:

Выбираем дистрибутив и демонстрационную версию продукта

Начнется процесс загрузки дистрибутива. После его окончания откроется мастер установки — на первой странице принимаем лицензионное соглашение и нажимаем Далее:

Принимаем лицензионное соглашение при установке

На странице «Регистрация продукта» можно снять галочку для заполнения формы регистрации:

Регистрация Битрикс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, если при проверке работы с сокетами система возвращает ошибку.

Для корректной работы необходимо:

  1. Перейти на использование https с настройкой корректного сертификата.
  2. Установить (обновить) корневые центры сертификации.

Удобный инструмент для проверки работы 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:

Включаем быструю отдачу файлов через 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.

2. Работа с резервными копиями в Битрикс24.

3. Получение бесплатного SSL сертификата Let's Encrypt.

# Ubuntu # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет