Установка сервера 1С и PostgrePro на CentOS 7

  • Михаил
  • 25 мин. на прочтение
  • 103
  • 24 Jan 2023
  • 07 Feb 2023

В данной статье будет рассмотрена пошаговая установка СУБД PostgreSQL и сервера 1С:Предприятия (64-bit) на операционную систему CentOS Linux 7

Предполагается, что операционная система с поддержкой русской локализации уже установлена и мы уже имеем дистрибутив сервера 1С для RPM-based Linux-систем.

Используемые версии дистрибутивов, актуальные на момент написания статьи:

  • Операционная система: CentOS Linux 7
  • СУБД: Postgres Pro Standard 15
  • Сервер 1С:Предприятия: 8.3.17.2760

Дистрибутивы СУБД PostgreSQL Pro устанавливаются из установочных пакетов, собранных компанией Postgres Professional. В эти установочные пакеты включены изменения, предоставленные компанией 1С. 

 Настройка hostname и DNS

Hostname в Centos меняется следующей командой:

hostnamectl set-hostname 1Csrv1_pgsql

Для нормальной работы сервера 1С необходим правильно настроенный DNS сервер, но его настройка выходит за рамки данной статьи. Поэтому для сохранения функциональности сервера мы будем использовать файлы hosts на используемых системах.

На Centos необходимо прописать адрес сервера в файле /etc/hosts :

vi /etc/hosts

127.0.0.1 1Csrv1_pgsql

Также необходимо прописать на машине, на которой будут установлены платформа и консоль управления сервером 1С в файле hosts (для Windows это C:\Windows\System32\Drivers\etc\hosts) адрес сервера 1С:Предприятие.  
Например:

10.10.11.180 1Csrv1_pgsql

Установка и настройка PostgreSQ

Установка и настройка PostgreSQL на примере ОС Astra Linux Common Edition (Орёл). Для каждого отдельного случая инструкция меняется. Для получения инструкции необходимо пройти на сайт разработчика PostgresPro, зарегистрироваться, принять условия лицензии, выбрать систему для установки из списка и получить инструкцию.

Установка сервера 1С:Предприятие

1) Установка сервера 1С:Предприятие из пакетов.

Качаем     

wget https://cloud.subbnet.ru/index.php/s/inZjYYXcxescfgf/download

 

Разворачиваем    

tar -xvf rpm64_8_3_17_2760.tar.gz

 

Как оговаривалось в начале статьи, предполагается что у нас уже есть дистрибутив сервера 1С для RPM-based Linux-систем. Он из себя представляет архив с именем rpm64.tar.gz. После разархивирования мы получим список файлов:    

1C_Enterprise83-common-8.3.17-2760.x86_64.rpm
1C_Enterprise83-server-8.3.17-2760.x86_64.rpm
1C_Enterprise83-ws-8.3.17-2760.x86_64.rpm
1C_Enterprise83-common-nls-8.3.17-2760.x86_64.rpm
1C_Enterprise83-server-nls-8.3.17-2760.x86_64.rpm
1C_Enterprise83-ws-nls-8.3.17-2760.x86_64.rpm

 

Находясь в каталоге с этими файлами, мы их устанавливаем командой:    

yum localinstall *.rpm

 

2) Запуск сервера 1С.    

systemctl enable srv1cv83 
systemctl start srv1cv83 
systemctl status srv1cv83

 

У меня запустилась, но высока вероятность, что сервер не запустится с первого раза, и при попытке запуска Вы получите ошибку вида:

Failed at step EXEC spawning /etc/rc.d/init.d/srv1cv83: Exec format error

Чтобы устранить эту ошибку, необходимо в скрипте инициализации сервера указать интерпретатор (например shell или bash), для этого необходимо добавить в начало файла /etc/init.d/srv1cv83 строку:    

#!/bin/bash 

 

Затем надо перезагрузить systemd для поиска новых или измененных юнитов:    

systemctl daemon-reload

 

И снова попытаться запустить сервер 1С:Предприятие    

systemctl restart srv1cv83.service

 

3) Установка необходимых пакетов для корректной работы сервера 1С. 
В документации сервера 1С:Предприятия описана утилита config_system, которая необходима для анализа готовности системы к запуску сервера 1С, в частности она помогает обнаружить отсутствующие необходимые пакеты для корректной работы сервера 1С. К сожалению, анализ rmp пакетов (rmp -ql) показал отсутствие данной утилиты в составе дистрибутива сервера 1С версии 8.3.9.1818.

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

yum install fontconfig-devel yum install ImageMagick

 

4) Рестарт сервера 1С.    

systemctl stop srv1cv83 
systemctl start srv1cv83 
systemctl status srv1cv83

 

Настраиваем файрвол

Консоли администрирования нужен доступ к агенту сервера (ragent) по порту 1540, а для создания базы понадобится еще и доступ к рабочим процессам по портам 1562-1591. Толстому клиенту нужен доступ к менеджеру сервера (rmngr) по порту 1541 и рабочим процессам порты 1562-1591. Менеджеру haspd нужны порты 475 и 1947.

Для корректной работы сервера, минимально необходимо открыть порты:

  • 1540 и 1541 для сервера 1С.
  • 1560 — запросы к базе данных.
firewall-cmd --permanent --add-port=1540/tcp
firewall-cmd --permanent --add-port=1541/tcp
firewall-cmd --permanent --add-port=1560/tcp
firewall-cmd --reload

Установка консоли администрирования.

Качаем Технологическая платформа 1С:Предприятия (64-bit) для Windows

Настройка сервера 1С посредством консоли администрирования.

1) Подключение к серверу 1С. 
Необходимо указать имя сервера (прописанное в hosts) и порт 1540 (используется по умолчанию):


2) Создание кластера. 
Необходимо указать: 
- произвольное имя кластера, 
- имя центрального сервера, на котором располагается кластер (прописанный в hosts
- порт 1541 (используется по умолчанию)


3) Создание базы на кластере сервера 1С. 
Необходимо указать: 
- имя базы на кластере 1С; 
- имя сервера баз данных (прописанное в hosts); 
- тип СУБД (PostgeSQL); 
- имя базы данных на сервере СУБД; 
- пользователь сервера СУБД (в нашем случае postgres); 
- пароль указанного пользователя сервера СУБД.

При необходимости можно отметить пункт «Создать базу с случае ее отсутствия»

Пользуемся.

Методика устранения ошибок соединения с сервером 1С

В данном случае необходимо понимать, что:

  • Либо процессов нет;
  • Либо не удается «увидеть» процессы в связи с отсутствием доступа;
  • Либо происходит обращение по другому адресу.

1. Сначала проверим есть ли на сервере 1С в запущенные рабочие процессы rphost.

netstat -tlnp | grep 15

Или

ss -tlnpu

 

Видим, что у нас rphost слушает порт 1560

Если процессы запущены — проверим доступность рабочих процессов по портам, которые они «слушают».

С компьютера пользователя необходимо выполнить команду:

telnet 10.10.11.180 1560

и другие порты, на которых есть rphost.