1C + Linux + PostgreSQL + Apache

  • Михаил
  • 12 мин. на прочтение
  • 89
  • 02 Nov 2022
  • 21 Nov 2022

Платформа 1С в последнее время бурно развивается, приобретая много различных функций, в том числе поддержку различных операционных систем (ОС). Возможность установки сервера 1С на Линукс существует ещё с платформы 8.2 и даже на данном портале можно найти множество статей и руководств по данной тематике. Но все же я опишу процесс подготовки тестового (или даже боевого) сервера на Линуксе в современных реалиях.

Несколько лет вынашивал идею написать эту статью, но никак не брался за неё, а в свете текущих политических тенденций за импортозамещение данная тема становится всё актуальнее. На момент написания статьи актуальная платформа 8.3.21 (см. в прикрепленных файлах предыдущие версии статьи). Сразу скажу, что здесь будут только основы для подготовки окружения без настройки различных оптимизаций, безопасности и прочего. Минимальные знания ОС GNU/Linux необходимы. Картинок в статье не будет, так как вся дальнейшая работа будет происходить в черной-черной консоли. Ну, помчали...

 

1) Установка GNU/Linux

За основу серверной операционной системы возьмем самый свежий 64-х разрядный дистрибутив Ubuntu Server 22.04 LTS (если вы готовите рабочий сервер, то обязательно выбирайте редакцию с долгосрочной поддержкой - LTS версию). Устанавливаем операционную систему на физический или виртуальный сервер (в качестве эксперимента я использовал виртуализацию на основе VirtualBox). Думаю, что проблем с установкой не должно возникнуть. Если не совсем понимаете, соглашайтесь с установщиком, выбирая все опции по умолчанию.

После входа в систему обновим её до актуального состояния:

# apt update && apt upgrade -y && apt autoremove -y && reboot

Здесь и далее команды, начинающиеся с '#' выполняются под суперпользователем (или с повышением привилегий с помощью команды sudo), а с '$' - под текущим пользователем с ограниченными правами.

 Если вы проделываете установку на VirtualBox, то

 

Для установки статического IP адреса отредактируем файл, в котором прописаны сетевые настройки:

# nano /etc/netplan/00-installer-config.yaml

 Примерная минимальная настройка:

 

Применим настройки:

# netplan apply

Сменим локаль (данный шаг важен, если будете ставить Постгрес):

# dpkg-reconfigure locales

Выберем

    ru_RU.UTF-8 UTF-8

и отметим её же по умолчанию.

Для возможности удаленного администрирования установим ssh (если в инсталляторе ОС не выбирали OpenSSH Server) :

# apt install -y openssh-server

На этом элементарную предподготовку ОС можно считать выполненной.

 

2) Установка 1С

Теперь ставим платформу 1С. Я использовал 64-х битную платформу 8.3.21.1302 (tar.gz-архив, с общим инсталлятором под разные дистрибутивы).

Скачиваем файл server64_8_3_21_1302.tar.gz (релизы 1С).

Распаковываем данный архив:

$ tar -xzvf server64_8_3_21_1302.tar.gz

Устанавливаем сервер 1С:

# ./setup-full-8.3.21.1302-x86_64.run

Придется последовательно ответить на вопросы инсталлятора, какие модули и языки нам нужны.

Обязательно укажите для установки "Сервер 1С:Предприятия 8" и "Модули расширения веб-сервера"

Можно указать ещё сервер хранилища конфигураций, если в нем есть потребность.

Даём созданному 1С пользователю права на директорию с установленной платформой:

# chown -R usr1cv8:grp1cv8 /opt/1cv8

Ставим шрифты от M$ (соглашаемся с лицензией при установке):

# apt install -y ttf-mscorefonts-installer

Для того, чтобы система "увидела" установленные шрифты, обновим кэш информации о шрифтах:

# apt install -y fontconfig
# fc-cache –fv

Для включения отладки на сервере 1С необходимо в файле /opt/1cv8/x86_64/8.3.21.1302/srv1cv8-8.3.21.1302\@.service дописать строку:

    Environment=SRV1CV8_DEBUG=-debug

Для управления данным экземпляром сервера как обычными службами выполним:

# cp /opt/1cv8/x86_64/8.3.21.1302/srv1cv8-8.3.21.1302\@.service /lib/systemd/system/srv1cv8-8.3.21.1302.service
# chown root:root /lib/systemd/system/srv1cv8-8.3.21.1302.service

Обновим список сервисов:

# systemctl daemon-reload

Активируем запуск сервера при загрузке системы:

# systemctl enable srv1cv8-8.3.21.1302.service

Запустим и проверим состояние службы (должна быть в состоянии active):

# systemctl start srv1cv8-8.3.21.1302.service
$ systemctl status srv1cv8-8.3.21.1302.service

Если у вас отсутствует DNS-сервер, который будет резолвить имена, то нужно прописать имя сервера в хосты на клиентах (иначе не удастся подключиться с клиента 1с к серверу 1с):

# nano /etc/hosts ИЛИ > notepad %windir%\system32\drivers\etc\hosts    (с повышением привилегий)

    xxx.xxx.xxx.xxx    servername

 

Установим драйвер аппаратных лицензий платформы (HASP):

а) скачиваем на сайте релизов 1С либо на сайте производителя (Sentinel LDK Run-time) и распаковываем:

$ tar -xzvf Sentinel_LDK_Linux_Run-time_Installer_script.tar.gz

б) распаковываем инсталлятор драйвера Sentinel HASP для Linux :

$ cd Sentinel_LDK_Linux_Run-time_Installer_script && tar -xzvf aksusbd-8.31.1.tar.gz

в) устанавливаем с помощью скрипта:

# cd aksusbd-8.31.1 && ./dinst

г) проверим состояние службы (должна быть в состоянии active):

$ systemctl status aksusbd

Учтите, что для сервера 1С нужен соответствующий ключ защиты.

 

3) Установка PostgreSQL

Следующим шагом будет установка бесплатной СУБД PostgreSQL от "Postgres Pro" (СУБД для работы платформы 1С:Предприятие)

* на момент корректировки статьи официально не совместима с Ubuntu 22.04

Скачаем скрипт для добавления стороннего репозитория от разработчиков СУБД:

$ curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-14/keys/pgpro-repo-add.sh

Выполним скрипт:

# sh pgpro-repo-add.sh

И установим саму СУБД (данная сборка создана на основе открытой PostgreSQL с патчами от фирм 1С и Postgres Professional):

# apt install -y postgrespro-1c-14

14-я версия Постгреса при установке инициализирует кластер не с той локалью, которую задавали в настройках, поэтому остановим сервер, удалим данные (тут будьте остарожны, чтобы не удалить важные данные, если у вас уже был Постгрес другой версии) и заново проинициализируем кластер с конкретной локалью:

# systemctl stop postgrespro-1c-14
# rm -rf /var/lib/pgpro/1c-14/data/*
# /opt/pgpro/1c-14/bin/pg-setup initdb --locale=ru_RU.UTF-8

Запустим сервер и проверим состояние службы (должна быть в состоянии active):

# systemctl start postgrespro-1c-14
$ systemctl status postgrespro-1c-14

Меняем пароль учетной записи psql "postgres", созданной по умолчанию:

$ sudo -u postgres psql

postgres=# \password

и вводим новый пароль.

Если необходимо предоставить разрешения для подключения к серверу PostgreSQL с других хостов, то для этого необходимо внести изменения в файлы postgresql.conf и pg_hba.conf . Найти их местоположение можно через следующие запросы:

postgres=# show config_file;
postgres=# show hba_file;

В первом файле нужно изменить (или добавить) параметр с необходимым значением, наподобие:

    listen_addresses = '*'

Во втором файле - наподобие:

    host    all    all    192.168.1.0/24    md5

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

postgres=# \q

И перезагружаем сервер для применения настроек первого конфигурационного файла:

# systemctl restart postgrespro-1c-14

 

На этом этапе можно создать клиент-серверную версию демонстрационной базы от 1с с именем demo

а) перейдем в каталог платформы:

$ cd /opt/1cv8/x86_64/8.3.21.1302

б) запустим кластер серверов:

$ ./ras --daemon cluster

в) прочитаем инфу о кластере:

$ ./rac cluster list

г) добавим администратора кластера (CLUSTER_UID - идентификатор кластера с предыдущего шага):

$ ./rac cluster admin --cluster=CLUSTER_UID register --name=admin --pwd=SECRET_PASSWORD_CLUSTER --auth=pwd

д) добавим базу:

$ ./rac infobase create --cluster=CLUSTER_UID --cluster-user=admin --cluster-pwd=SECRET_PASSWORD_CLUSTER --create-database --name=demo --descr=MyTestBaseOnLinuxPower --dbms=PostgreSQL --db-server=localhost --db-name=demo --locale=ru --db-user=postgres --db-pwd=SECRET_PASSWORD_PGSQL --license-distribution=allow

е) проверим:

$ ./rac infobase --cluster=CLUSTER_UID --cluster-user=admin --cluster-pwd=SECRET_PASSWORD_CLUSTER summary list

 

4) Установка Apache

Устанавливаем Web-сервер:

# apt install -y apache2

Проверим состояние службы (должна быть в состоянии active):

$ systemctl status apache2

Создадим папку для vrd-файла:

# mkdir -p /var/www/1c/demo

Создадим файл конфигурации apache:

# touch /etc/apache2/conf-available/demo.conf

Переходим в каталог платформы:

$ cd /opt/1cv8/x86_64/8.3.21.1302

Публикуем базу:

# ./webinst -apache24 -wsdir demo -dir '/var/www/1c/demo' -connstr 'Srvr="localhost";Ref="demo";' -confPath /etc/apache2/conf-available/demo.conf

Перезагружаем настройки веб-сервера:

# systemctl reload apache2

Подключаем демо конфигурацию:

# a2enconf demo

Перезапускаем веб-сервер с применением изменений:

# systemctl restart apache2

Теперь можно открыть конфигурацию в веб-браузере по её URL: 
 

http://servername/demo