Передовые виртуальные и выделенные серверы для проектов любой сложности и структуры.
 Подписывайтесь на Telegram канал!

Установим коробочную версию Битрикс24 на операционную система CentOS 7 используя скрипт от разработчика. Выполним все первоначальные настройки которые дадут возможность произвести полноценное тестирование продукта. CRM система удобна и весьма популярна среди бизнеса.

Введение

В этой статье вы узнаете как установить коробочную версию Битрикс24 на систему CentOS 7. Варианты установки могут быть разные, но мне больше нравится именно такой способ о котором и поведаю.

Устанавливать будем тестовую версию на 30 дней и в последствии приобретём лицензию.

Сколько стоит и какие варианты коробочной версии можно посмотреть по ссылке https://www.bitrix24.ru/prices/self-hosted.php

Установка Битрикс24 производится в 2 этапа:

  1. Запустить скрипт bitrix-env.sh который подготовит веб-окружение на предварительно подготовленной системы CentOS 7 установив все необходимое;
  2. Открыть в браузере http://адрес сервера и произвести установку указав все необходимые данные.

Дальше предстаят работы которые дадут возможность приступить к реальной работе портала и о них вы узнаете из статьи.

Предварительная подготовка

Скрипт автоматической подготовки веб-окружения рассчитан на 7-ую версию CentOS.

Более подробно о том как установить и сделать первоначальные настройки можно из статьи CentOS 7 установка и настройка.

Настоятельно рекомендую ставить минимальную версию.

Вот список моих действий после установки минимальной версии CentOS 7:

  1. Подключаю SWAP файлом;
  2. Отключаю SELinux;
  3. Открываю в Брандмауэр FirewallD порты для http и ssh (можно не настраивать ниже поймете почему);
  4. Настраиваю отображение приглашения в консоли bash и хранения истории bash;
  5. Устанавливаю wget, mc, vim, tmux.

Этих действий вполне достаточно для дальнейшей установки Битрикс24.

Установка веб-окружения

Более подробно почитать можно на портале поддержки.

Скачиваем скрипт:

wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh

Даем права скрипту на выполнение и запускаем его:

Скрипт должен быть запущен от пользователя root.

chmod +x bitrix-env.sh
./bitrix-env.sh

Мы увидим приветствие, в котором говорится, что на все вопросы по умолчанию будет ответ «Да» (Yes) и при необходимости ответить «Нет» нужно ввести n.

====================================================================
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 ранее и мы просто не увидим это сообщение. Если мы не отключали его рание надо перезагрузить сервер и запустить скрипт снова.

В конце установки при успешной установке увидем следующее:

Bitrix Environment bitrix-env has been installed successfully.

Посмотреть пароль от базы данных можно выполнив команду:

cat /root/.my.cnf
= необходимая часть информации в коде =
...
password='dfgj8856jdfbjf8'
...

Веб-окружение установлено.

Смотрим что сделал скрипт

В выводе конечно многое показывало, но проверим что произошло по факту.

Скрипт удалит FirewallD и настроил iptables.

Посмотрим какие правила iptables можно выполнив необходимую команду:

iptables -L -v -n
= вывод команды =
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination 
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 state NEW
7792 468K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW
240K 271M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
1 48 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 
17887 1891K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 
3 180 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
39660 6312K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination 
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 213K packets, 170M bytes)
pkts bytes target prot opt in out source destination

Параметры настройки находятся в файле /etc/sysconfig/iptables.

Были установлены основные пакеты для работы веб сервера:

  • PHP7.2 из репозитория Remi’s PHP 7.2 RPM repository for Enterprise Linux 7;
  • Nginx 1.16.1;
  • Apache 2.4.6.
  • MySQL 5.7.28-31.

Основные настройки находятся в следующих местах:

  • Файлы лежат по пути /home/bitrix/www/;
  • Настройки Nginx находятся по пути /etc/nginx/bx;
  • Настройки Apache находятся по пути /etc/httpd/bx.

Понятно почему так всё было сделано и свои мнения по этому поводу я оставлю за рамками этой статьи.

Установка Битрикс24

Если ресурс работает напрямую без использования проксирования переходите к следующему разделу статьи.

Работа сайта через Nginx proxy

По умолчанию считается что сервер имеет свой белый IP и это понятно. Часто коробочную версию Битрикс24 устанавливают в своей локальной сети где имеется один белый ip на котором работают разные ресурсы по протоколам http или https.

Для решения задачи размещения на одном IP адресе разных ресурсов работающих по протоколу http(s) давно и успешно используется Nginx работающий в режиме прокси сервера.

На практике удобно настроить на Nginx получение сертификатов SSL и дальше проксировать сигнал до нужного сервера по протоколу http.

Узнать более подробно как делается подобное проксирование можно из статьи Nginx установка и настройка.

Вот самый просто пример который дает возможность проксировать сигнал до нужной машины:

server {
listen 80;
server_name crm.sevo44.ru;
location / {
access_log off;
proxy_pass http://192.168.81.56:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
}
}

Где выделенные части имеют следующий смысл:

  • crm.sevo44.ru — под домен где будет работать Битрикс24;
  • http://192.168.0.44:80 — адрес на котором будет установлен Битрикс24;
  • client_max_body_size 10m — параметр который позволит передавать на ресурс файлы больше 10 Мбайт.

Использование Nginx прокси надо учитывать при дальнейшей настройке ресурса, так как внутренняя диагностика системы будет показывать выводы исходя из того что ресурс работает напрямую не используя маршрутизацию.

Установка Битрикс24

Открываем браузер и переходим по ссылке http://IP-адрес сервера.

Увидим окно приветствия и на каждом этапе вносим всю необходимую информацию.

Процедура не сложная и описывать её не вижу смысла. Гораздо интересней дальнейшая настройка без которой не возможно начать полноценное тестирование работы ресурса.

Настройка после установки

После установки произведем проверки которые покажут нам все проблемы из за которых работа ресурса просто не возможна на начальном этапе.

Тестирование конфигурации

Первое что надо сделать это произвести «Тестирование конфигурации». Находится это по пути: Панель управления (меню пользователя) -> Настройки (слева внизу) -> Инструменты -> Проверка системы -> Тестирование конфигурации.

В нашем случае было несколько ошибок и не одном из них покажу общий принцип решения проблемы.

Рассмотрим на ошибке не позволяющей загрузки файла больше 4 Мб:

bitrix24_max_body_size_sevo44_1

Справа у каждого параметра есть кружок с восклицательным знаком и нажав на него откроется окно:

bitrix24_max_body_size_sevo44_2

Из описания вроде всё понятно что делать и где смотреть, но везде вы увидите что параметр стоит верный:

bitrix24_max_body_size_sevo44_3

В начале статьи я говорил что ресурс работает через Nginx прокси и именно параметр в настройке client_max_body_size 10m; позволит нам не увидеть данную ошибку.

В случае успеха вы должны увидеть:

bitrix24_max_body_size_sevo44_4

Были еще незначительные ошибки которые с легкостью удалось поправить используя подсказки. Ниже расмотрим ошибку связаную с работой почты так как она одна из самый главных и имеет разный подход к решению.

Настройка работы почты

Настройка почты сильно меня не удивила, но заставила немного повозиться. Ровно одни сутки (1С) 🙂

Вот что будет показывать в выводе при тестировании конфигурации:

bitrix24_mail_sevo44

Оказывается разработчики придумали свой механизм который необходимо изучить. На просторах интернета есть много информации что при хорошей нагрузке этот механизм плохо работает, хотя это может быть связано с тем что никто не хочет досконально изучать и тратить кучу времени на его настройку.

Для себя я решил так, если разработчики не стали использовать стандартный FirewallD который идет по умолчанию в CentOS 7 (не думаю что отказ от использования был реально необходим с технической точки зрения) а стали использовать iptable, то и я могу с легкостью отказатся от их механизма отправки почты и настроить надежный и стабильный Postfix.

На сайте поддержи Битрикс24 есть статьи пользователей о том как это настраивается, но они либо устарели либо успускают очень важные настройки без который у вас ничего не будет работать.

Мой пример рабочий на все 100% и успешно работает на нескольких серверах.

Более подробно о настройке можно почитать в статье CentOS 7 установка и настройка SMTP.

Настройка и проверка Postfix

Проверка статуса Postfix:

systemctl status postfix

Если Postfix не установлен то производим установку выполнив команду:

yum install postfix

Запускаем и добавляем в автозагрузку командами:

systemctl start postfix
systemctl enable postfix

Чтобы отправлять письма с консоли необходимо установить пакет mailx:

yum install mailx

После этого можно отправлять с консоли сервера сообщения на свою почту:

uname -a | mail -s "info server" info@sevo44.ru

Если сообщения получаем на почту значит все работает и двигаемся дальше.

Для начала надо в настройках /etc/php.d/bitrixenv.ini поменять значение:

vim /etc/php.d/bitrixenv.ini
= вывод команды с информацией для правки =
-- мы увидим --
sendmail_path = msmtp -t -i
-- меняем на --
sendmail_path = /usr/sbin/sendmail -i -t

Теперь открываем любой лид и производим отправку сообщения. Ошибки мы не увидим, так смотреть надо на сервере выполнив команду которая покажет последнюю информацию о работе почты:

tail -n 10 /var/log/maillog

В выводе отправляемого письма вы увидите:

said: 550 5.7.1 Email rejected per DMARC policy for mail.ru

В данном случае письма сразу попадают в спам.

Теперь настроим отправку почты через сторонний SMTP сервер.

Настроить через mail.ru не выйдет, так как будет ругаться что поле from не совпадает.

(host smtp.mail.ru[94.100.180.160] said: 550 Message was not accepted – it contains invalid headers. More specially, ‘From:’ header must match user you are sending mail from.

Будем настраивать используя Yandex, так как при тестовых оправках с почтового ящика mail, yandex.ru и gmail письма письма благополучно уходят и проходят успешную проверку у получателя.

Настройка через SMTP Yandex

В примере будет использована почта noreply@sevo44.ru которая обслуживается Yandex.

Переименуем базовый конфиг Postfix. После этого, создадим рабочий и добавим необходимые настройки:

mv /etc/postfix/main.cf /etc/postfix/main.cf_orig
vim /etc/postfix/main.cf
= необходимый код =
# DEFAULT CONFIG 
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
# Имя сервера, которое выводит команда hostname
myhostname = vds-micro2.sevo44.ru
# По логике нужно оставлять только домен, но в данном случае лучше оставить полное имя сервера, чтобы в поле отправитель 
# фигурировало полное имя сервера, так удобнее разбирать служебные сообщения
mydomain = vds-micro2.sevo44.ru
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
inet_interfaces = localhost
inet_protocols = all
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES

# SMTP YANDEX CONFIG
relayhost = smtp.yandex.ru:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
# База параметров авторизации с SMPT
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
# Беза подмены имени почтового ящика 
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may

Создаем файл с информацией об имени пользователя и пароле для авторизации на сервере SMTP:

vim /etc/postfix/sasl_passwd
= необходимый код =
smtp.yandex.ru:587 noreply@sevo44.ru:PASSWORD

Создаем db файл:

postmap /etc/postfix/sasl_passwd

Переименуем дефолтную базу подмены имени почтового ящика. После этого, создадим рабочий и добавим необходимые настройки:

mv /etc/postfix/generic /etc/postfix/generic_orig
vim /etc/postfix/generic
= необходимый код =
bitrix@bitrix24.localdomain noreply@sevo44.ru
root@bitrix24.localdomain noreply@sevo44.ru

Выделенные параметры смотрим исходя из вывода команды: tail -n 10 /var/log/maillog в которой вы увидите информацию об отправлениях.

Создаем db файл:

postmap /etc/postfix/generic

При получении ошибки при проверке: «warning: SASL authentication failure: No worthy mechs found»

Необходимо установить ещё несколько пакетов для работы SASL.

Установим необходимые пакеты:

yum -y install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

Перезапустим Postfix и проверим работу:

systemctl restart postfix

Отправляем тестовое письмо через консоль:

uname -a | mail -s "info server" info@sevo44.ru

Отправка почты через Postfix с авторизацией на другом SMTP CentOS 7

В заключение, осталось добавить к стандартному алиасу для root в /etc/aliases, внешний адрес, куда будет дублироваться почта, адресованная root. Для этого редактируем указанный файл, изменяя последнюю строку:

vim /etc/aliases
= необходимо привести к виду =
# Person who should get root's mail
root: root,info@sevo44.ru

Обновляем базу сертификатов:

newaliases

Создание пула серверов

При подключении к консоли сервера вы увидете сообщение:

bitrix24_pool_sevo44

Нам предложено создать пул серверов, но делать мы это пока не будем так как это отдельная тема которой я посвящу отдельную статью.

Вводим 0 нажимаем Ентер и продолжаем работать дальше с имеющейся системой.

Вывод

В целом система мне понравилась. Радует наличие огромного количества проверок. Единственное что настоятельно рекомендую перед любыми действиями делать резервную копию, ну и конечно должны автоматически создаваться резервные копии за период который максимально позволяет размер дискового массива сервера резервных копий.

Понравилась статья? Поделитесь ей с друзьями!
Пожалуйста, оставляйте свои комментарии

Читая их я получаю информацию которая позволяет мне улучшить качество написания статей. Кроме того, оставляя комментарии вы помогаете сайту получить более высокий рейтинг у поисковых систем. Давайте общаться.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *