1C + Linux + PostgreSQL + Apache
Платформа 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
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.