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-1414-я версия Постгреса при установке инициализирует кластер не с той локалью, которую задавали в настройках, поэтому остановим сервер, удалим данные (тут будьте остарожны, чтобы не удалить важные данные, если у вас уже был Постгрес другой версии) и заново проинициализируем кластер с конкретной локалью:
# 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
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.