1C + Linux + PostgreSQL + Apache

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

После входа в систему обновим ее:

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

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

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

необходимо установить дополнения гостевой ОС:

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

# apt install -y dkms

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

# mkdir -p /media/cdrom # mount /dev/cdrom /media/cdrom # cd /media/cdrom # ./VBoxLinuxAdditions.run # reboot

в) (необязательный) подключим шару для простой возможности обмена файлами между хостом и гостем и перезайдем в систему:

# usermod -G vboxsf -a ИмяПользователя $ logout

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

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

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

network:
ethernets:
interface_name:
dhcp4: no
dhcp6: no
addresses: [192.168.1.111/24, ]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1, ]
version: 2

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

# netplan apply

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

# dpkg-reconfigure locales

Выберем

ru_RU.UTF-8 UTF-8

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

Для возможности удаленного администрирования установим ssh :

# apt install -y openssh-server

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

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

Теперь ставим платформу 1С. Я использовал 64-х битную платформу 8.3.17.1496 (deb-пакеты, с национальными языками).

Скачиваем файл deb64.tar.gz (релизы 1С). Можно сразу в терминале с помощью wget:

$ username1c='SECRET_LOGIN' && password1c='SECRET_PASSWORD_1C' && platform1c='8.3.17.1496' && wget -qO- --keep-session-cookies --save-cookies cookies1cwget --post-data 'username='$username1c'&password='$password1c'&execution='$(wget -qO- --keep-session-cookies --save-cookies cookies1cwget 'https://releases.1c.ru' | grep -oP '(?<=input type="hidden" name="execution" value=")[^"]+(?=")')'&_eventId=submit' 'https://login.1c.ru/login' > /dev/null && wget -O deb64.tar.gz --load-cookies cookies1cwget $(wget -qO- --load-cookies cookies1cwget 'https://releases.1c.ru/version_file?nick=Platform83&ver='$platform1c'&path=Platform\'$(echo $platform1c | sed 's/\./_/g')'\deb64_'$(echo $platform1c | sed 's/\./_/g')'.tar.gz' | grep -oP '(?<=a href=")[^"]+(?=">Скачать дистрибутив<)') && rm cookies1cwget

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

$ tar -xzvf deb64.tar.gz

Устанавливаем пакеты через менеджер:

# dpkg -i 1c-enterprise83-common_8.3.17-1496_amd64.deb # dpkg -i 1c-enterprise83-server_8.3.17-1496_amd64.deb # dpkg -i 1c-enterprise83-ws_8.3.17-1496_amd64.deb 

Если вам нужны дополнительные языки, кроме английского и русского, то ставим nls-пакеты

# dpkg -i 1c-enterprise83-common-nls_8.3.17-1496_amd64.deb # dpkg -i 1c-enterprise83-server-nls_8.3.17-1496_amd64.deb # dpkg -i 1c-enterprise83-ws-nls_8.3.17-1496_amd64.deb

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

# dpkg -i 1c-enterprise83-crs_8.3.17-1496_amd64.deb

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

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

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

# apt install -y ttf-mscorefonts-installer

Для включения отладки на сервере 1С необходимо в файле /etc/init.d/srv1cv83 раскомментировать и дописать строку:

SRV1CV8_DEBUG=1

Запускаем 1с сервер:

# systemctl start srv1cv83

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

$ systemctl status srv1cv83

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

# nano /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. Версия 8.11 :

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

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

# cd aksusbd-8.11.1 && ./dinst

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

$ systemctl status aksusbd

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

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

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

Сначала установим необходимые пакеты:

# apt install -y gnupg2

Скачаем ключ репозитория:

$ wget --quiet -O - http://repo.postgrespro.ru/pg1c-11/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add -

Подключим репозиторий:

#  sh -c 'echo deb http://repo.postgrespro.ru/pg1c-11/ubuntu $(lsb_release -cs) main > /etc/apt/sources.list.d/pg1c-11.list'

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

# apt update # apt install -y postgrespro-1c-11

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

$ systemctl status postgrespro-1c-11

Если установка проходит не на чистую систему, то при невозможности запуска сервера должна помочь команда:

# /opt/pgpro/1c-11/bin/pg-setup initdb

Меняем пароль учетной записи 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-11

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

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

$ cd /opt/1C/v8.3/x86_64

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

$ ./ras --daemon cluster

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

$ ./rac cluster list

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

$ ./rac infobase --cluster=CLUSTER_UID summary list

д) добавим администратора кластера:

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

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

$ ./rac infobase create --cluster=CLUSTER_UID --create-database --name=demo --descr=MyTestBaseOnLinuxPower --dbms=PostgreSQL --db-server=localhost --db-name=demo --locale=ru --db-user=postgres --db-pwd=SECRET_PASSWORD_PGSQL --cluster-user=admin --cluster-pwd=SECRET_PASSWORD_CLUSTER --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/8.3.17.1496/demo

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

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

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

$ cd /opt/1C/v8.3/x86_64/

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

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

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

# a2enconf demo

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

# systemctl restart apache2

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

Взято с сайта https_//infostart.ru/1c/articles/805266/