Установка CRM Битрикс24 на Linux CentOS 9
Компания Битрикс поставляет готовый скрипт для развертывания программной среды Bitrix VM. В рамках данной инструкции мы рассмотрим установку и настройку Битрикс24 на Linux CentOS 9 Stream.
Установка веб-окружения
Установка портала Битрикс
Создание пула управления в консольном меню
Доступ к порталу по https
Настройки после установки
Настройка кэширования
Решение возможных проблем
Дополнительная информация
Установка битрикс окружения
Битрикс24 является веб приложением и для своей работы требует установленного и настроенного веб-сервера. Для этого у компании Битрикс есть готовый скрипт — нам просто нужно его загрузить и запустить.
И так, скачиваем скрипт:
dnf install curl
curl -sOL https://repo.bitrix.info/dnf/bitrix-env-9.sh
* первая команда установит утилиту curl, если ее нет.
Даем права скрипту на выполнение и запускаем его:
chmod +x bitrix-env-9.sh && ./bitrix-env-9.sh
Мы увидим приветствие, в котором говорится, что на все вопросы по умолчанию будет ответ «Да» (Yes) и при необходимости ответить «Нет» нужно ввести n. Также скрипт должен быть запущен от пользователя root:
====================================================================
Bitrix Environment for Linux installation script.
Yes will be assumed as a default answer.
Enter 'n' or 'no' for a 'No'. Anything else will be considered a 'Yes'.
This script MUST be run as root, or it will fail.
====================================================================
Начнется процесс установки обновлений, загрузки пакетов и развертывания необходимого программного обеспечения — просто ждем.
Если на сервере работает SELinux, первый вопрос — согласны ли мы его отключить. Отвечаем утвердительно, нажав Enter:
You have to disable SElinux before installing Bitrix Environment.
Do you want to disable SELinux?(Y|n)Скрипт вернет ответ, что SELinux выключен и потребует перезагрузки сервера:
SELinux status changed to disabled in the config file /etc/selinux/config.
SELinux status changed to disabled in the config file /etc/sysconfig/selinux.
Please reboot the system! (cmd: reboot)... перезагружаем (если отключали SELinux):
shutdown -r now
После перезагрузки снова запускаем скрипт:
./bitrix-env-9.sh
* перед этим необходимо перейти в каталог, куда мы его скачивали.
В итоге мы должны увидеть следующее:
Bitrix Environment bitrix-env has been installed successfully.
Good luck)
Веб-окружение установлено.
Установка Битрикс24
Переходим в рабочий веб-каталог битрикс24:
cd /home/bitrix/www/
Скачиваем служебный файл bitrixsetup.php для веб-установки:
curl -sLO https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php
Открываем браузер и переходим по ссылке http://<IP-адрес сервера>/bitrixsetup.php.
В открывшемся окне выбираем дистрибутив 1С-Битрикс24 и демонстрационную версию (если у нас есть ключ, то можно выбрать коммерческую лицензию и ввести его), после нажимаем по кнопке Загрузить:
... начнется процесс загрузки дистрибутива. После его окончания откроется мастер установки — на первой странице принимаем лицензионное соглашение и нажимаем Далее:
На странице «Регистрация продукта» можно снять галочку для заполнения формы регистрации:
Начнется процесс установки Битрикс24. Ждем — откроется окно создания учетной записи администратора. Заполняем веб-формы и кликаем Далее.
Откроется страница настройки портала. Кликаем Далее до пункта «Настройка Битрикс24» — отмечаем нужные нам галочки и кликаем Установить:
Откроется последняя страница — нажимаем по Перейти в Битрикс24. Установка завершена.
Создание пула управления
Заходим на сервер по SSH. Если мы зашли не под пользователем root, вводим:
sudo su
Когда мы заходим под root впервые после установки Битрикс24, система запросит задать пароль — вводим его дважды.
После мы должны увидеть меню «Available actions». Создаем пул для управления:
Available actions:
1. Create management pool on the server
2. Configure localhost settings
0. Exit.
Enter your choice: 1
Вводим домен для портала, который будет крутиться на новом пуле, например:
Please enter master server name (default: bitrix.dmosk.ru): shop.dmosk.ru
* или оставить по умолчанию (будет соответствовать имени сервера).
Мы должны увидеть сообщение, что пул успешно создан:
Pool has been created successfully. Please enter any key
Нажимаем Enter — загрузится меню управления и выбираем управление пулом сайтов. Выходим из него, введя 0:
Available actions:
1. Manage servers in the pool
2. Configure localhost settings
3. Configure MySQL service for the pool
4. Configure Memcached service for the pool
5. Configure pool monitoring
6. Configure pool sites
7. Configure Sphinx service for the pool
8. Manage pool web servers
9. Configure Push/RTC service for the pool
10. Background pool tasks
11. Configure Transformer service
0. Exit.
Enter your choice: 0
Настройка HTTPS
Для корректной работы портала необходимо на него заходить по https, а для этого нужен сертификат. Мы рассмотрим пример получения бесплатного сертификата от Let's Encrypt. Подробнее в статье Получение бесплатного SSL сертификата Let's Encrypt.
Открываем на редактирование файл:
vi /etc/nginx/bx/site_enabled/s1.conf
В раздел server добавляем следующее:
server {
...
location ~ /.well-known {
root /usr/share/nginx/html;
allow all;
}
...
}
Открываем второй файл:
vi /etc/nginx/bx/site_enabled/ssl.s1.conf
Также добавим:
server {
...
location ~ /.well-known {
root /usr/share/nginx/html;
allow all;
}
...
}
* данная настройка укажет веб серверу искать файлы в каталоге /usr/share/nginx/html, если мы обратимся к странице /.well-known.
Если у нас несколько сайтов, данную операцию нужно повторить для конфигурационных файлов всех этих сайтов. Они находятся в каталоге /etc/nginx/bx/site_enabled.
Проверяем корректность настройки NGINX и если ошибок нет, перезапускаем службу:
nginx -t && nginx -s reload
Устанавливаем утилиту certbot:
dnf 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/bx/conf/ssl.conf
Редактируем значения для ssl_certificate и ssl_certificate_key:
ssl_certificate /etc/letsencrypt/live/bitrix.dmosk.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bitrix.dmosk.ru/privkey.pem;
* в данном примере мы указываем пути до полученных сертификатов. Где bitrix.dmosk.ru — имя нашего сайта, для которого был получен сертификат.
Перезапускаем nginx:
nginx -t && nginx -s reload
Можно открывать портал по доменному имени по https.
Для автоматической переадресации с http на https в корне каталога с сайтом создаем файл .htsecure. В нашем примере, сайт находится в каталоге /home/bitrix/www:
touch /home/bitrix/www/.htsecure
И зададим в качестве владельца созданного файла пользователя bitrix:
chown bitrix:bitrix /home/bitrix/www/.htsecure
Для автоматического продления сертификата в cron добавим задание:
crontab -e
0 0 * * 1,4 /usr/bin/certbot renew --noninteractive
Также нужно после обновления сертификата перечитывать конфигурацию nginx. Для этого открываем файл:
vi /etc/letsencrypt/cli.ini
И добавляем строку:
...
deploy-hook = systemctl reload nginx
Настройка (проверка системы)
Для правильной работы портала необходимы дополнительные настройки системы. Анализ ошибок и предупреждений при настройке можно получить на странице Настройки - Инструменты - Проверка системы.
Попробуем рассмотреть некоторые из ошибок и способы из решения.
1. Работа с сокетами
Является основной настройкой для портала, так как на ее основе строится много других проверок. Нет смысла продолжать работу с Битрикс24, если при проверке работы с сокетами система возвращает ошибку.
Для корректной работы необходимо:
- Перейти на использование https с настройкой корректного сертификата.
- Установить (обновить) корневые центры сертификации.
После данных действий проверка должна пройти корректно.
2. Выполнение агентов на cron
Чтобы портал мог выполнять фоновые задания, необходимо настроить cron.
Открываем конфигурационный файл:
vi /home/bitrix/www/bitrix/php_interface/dbconn.php
Проверяем, чтобы была строка:
define('BX_CRONTAB_SUPPORT', true);
Открываем на редактирование crontab (для пользователя bitrix):
crontab -e -u bitrix
Добавляем задание:
* * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
* в данном примере мы запускаем на исполнение скрипт /home/bitrix/www/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. Настройка почтовых уведомлений
Для отправки почты прочитайте инструкцию Настройка корректной отправки почты в Битрикс24.
5. Сервер очередей Push and Pull
Переходим в раздел Настройки продукта - Настройки модулей. Выбираем в настройках Push and Pull:
В разделе Использовать "Push server" выбираем Использовать облачный сервер "1С-Битрикс" и кликаем по кнопке Зарегистрироваться:
6. Временная папка не существует
У нас могут не проходить тесты загрузки файлов с ошибкой Ошибка! Временная папка не существует (BX_TEMPORARY_FILES_DIRECTORY: /home/bitrix/tmp/bak). Где /home/bitrix/tmp/bak — конкретный путь к каталогу, которого нет.
Для решения проблемы просто создадим данный каталог:
mkdir -p /home/bitrix/tmp/bak
И задаем права:
chown bitrix:bitrix /home/bitrix/tmp/bak
Настройка кеширования
Для увеличения производительности, стоит настроить кэширование. У нас на выбор разные технологии для настройки кэширования:
- apc
- files
- redis
- xcache
- memcached
Мы рассмотрим пример с memcached. Для начала, устанавливаем его:
dnf install memcached php-pecl-memcached
Откроем конфигурационный файл memcached:
vi /etc/sysconfig/memcached
Отредактируем некоторые директивы:
CACHESIZE="1024"
OPTIONS="-t 8"
* где:
- CACHESIZE — используемый объем памяти.
- OPTIONS="-t 8" — разрешить 8 потоков.
Разрешаем автозапуск сервиса и запускаем его:
systemctl enable memcached --now
Перезапускаем веб-сервер apache:
systemctl restart httpd
Memcache установлен и подключен. Чтобы убедиться в этом, вводим следующую команду:
php -i | grep "memcached support"
Мы должны увидеть:
memcached support => enabled
Создаем конфигурационный файл битрикс:
vi /home/bitrix/www/bitrix/.settings_extra.php
<?php
return array (
'cache' => array (
'value' => array (
'type' => array (
'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineMemcache',
'extension' => 'memcache'
),
'memcache' => array(
'host' => '127.0.0.1',
'port' => '11211',
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
);
?>
* если в файле уже есть какое-то содержимое, то просто добавляем настройки cache.
Готово. Можно перейти в панель проверки производительности и на вкладке PHP проверить результат.
Решение проблем
Рассмотрим процесс разбора проблем, а также приведем примеры.
Включение лога
Лучший способ локализовать проблему — изучить лог. По умолчанию, в Битрикс24 отключен режим журналирования. Рассмотрим процедуру его включения.
Открываем конфигурационный файл:
vi /home/bitrix/www/bitrix/.settings.php
Находим опцию debug и задаем значение true:, а также приводим опцию log к следующему виду:
...
array (
'debug' => true,
...
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
В данном примере мы указали, что файл лога будет сохраняться в каталог установки Битрикс + bitrix/modules/error.log, то есть в нашем случае для просмотра журнала можно использовать команду:
tail /home/bitrix/www/bitrix/modules/error.log
Ошибка 504 при оптимизации базы данных
Оптимизация базы занимает продолжительное время. Но вместо окончания процесса мы можем увидеть ошибку: 504 Gateway Timeout.
Причина: веб-сервер nginx ждет ответа от работы скрипта определенное время. Данное время определено с помощью опций proxy_connect_timeout, proxy_send_timeout и proxy_read_timeout. Посмотреть текущие значения можно командой:
nginx -T | egrep "proxy_.*_timeout"
Если скрипт работает дольше, то система вернет ошибку.
Решение: нам нужно указать большее значение для вышеперечисленных опций:
vi /etc/nginx/nginx.conf
http {
...
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
proxy_read_timeout 3600;
* в данном примере мы указали, что nginx будет ждать час, прежде чем выдаст ошибку.
Слишком большое ожидание может привести к снижению производительности системы. Рекомендуется вернуть значения после выполнения оптимизации.
Перезапускаем сервис nginx:
nginx -t && nginx -s reload
Можно запускать оптимизацию баз.
Читайте также
Дополнительная информация по битрикс24: