Платформа 1С в последнее время бурно развивается, приобретая много различных функций, в том числе поддержку различных операционных систем (ОС). Возможность установки сервера 1С на Линукс существует ещё с платформы 8.2 и даже на данном портале можно найти множество статей и руководств по данной тематике. Но все же я опишу процесс подготовки тестового (или даже боевого) сервера на Линуксе в современных реалиях.
Несколько лет вынашивал идею написать эту статью, но никак не брался за неё, а в свете текущих политических тенденций за импортозамещение данная тема становится всё актуальнее. На момент написания статьи актуальная платформа 8.3.25 (см. в прикрепленных файлах предыдущие версии статьи). Сразу скажу, что здесь будут только основы для подготовки окружения без настройки различных оптимизаций, безопасности и прочего. Минимальные знания ОС GNU/Linux необходимы. Картинок в статье не будет, так как вся дальнейшая работа будет происходить в черной-черной консоли. Ну, помчали...
1) Установка GNU/Linux
За основу серверной операционной системы возьмем самый свежий 64-х разрядный дистрибутив Ubuntu Server 24.04 LTS (если вы готовите рабочий сервер, то обязательно выбирайте редакцию с долгосрочной поддержкой - LTS версию). Устанавливаем операционную систему на физический или виртуальный сервер (в качестве эксперимента я использовал виртуализацию на основе VirtualBox). Думаю, что проблем с установкой не должно возникнуть. Если не совсем понимаете, соглашайтесь с установщиком, выбирая все опции по умолчанию.
После входа в систему обновим её до актуального состояния:
# apt update && apt upgrade -y && apt autoremove -y && reboot
Здесь и далее команды, начинающиеся с '#' выполняются под суперпользователем (или с повышением привилегий с помощью команды sudo), а с '$' - под текущим пользователем с ограниченными правами.
Для установки статического IP адреса отредактируем файл, в котором прописаны сетевые настройки:
# nano /etc/netplan/50-cloud-init.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.25.1286 (zip-архив, с общим инсталлятором под разные дистрибутивы).
Скачиваем файл server64_8_3_25_1286.zip (релизы 1С).
Доустановим нужные пакеты:
# apt install -y unzip fontconfig
Распаковываем данный архив:
$ unzip server64_8_3_25_1286.zip
Устанавливаем сервер 1С:
# ./setup-full-8.3.25.1286-x86_64.run
Придется последовательно ответить на вопросы инсталлятора, какие модули и языки нам нужны.
Обязательно укажите для установки "Сервер 1С:Предприятия 8" и "Модули расширения веб-сервера"
Можно указать ещё сервер хранилища конфигураций, если в нем есть потребность.
Даём созданному эской пользователю права на директорию с установленной платформой:
# chown -R usr1cv8:grp1cv8 /opt/1cv8
Ставим шрифты от M$ (соглашаемся с лицензией при установке):
# apt install -y ttf-mscorefonts-installer
Для того, чтобы система "увидела" установленные шрифты, обновим кэш информации о шрифтах:
# fc-cache –fv
Для включения отладки на сервере 1С необходимо в файле /opt/1cv8/x86_64/8.3.25.1286/srv1cv8-8.3.25.1286\@.service дописать строку:
Environment=SRV1CV8_DEBUG=-debug
Для управления данным экземпляром сервера как обычными службами выполним:
# systemctl link /opt/1cv8/x86_64/8.3.25.1286/srv1cv8-8.3.25.1286@.service
Активируем запуск сервера при загрузке системы:
# systemctl enable srv1cv8-8.3.25.1286@
Запустим и проверим состояние службы (должна быть в состоянии active):
# systemctl start srv1cv8-8.3.25.1286@default.service $ systemctl status srv1cv8-8.3.25.1286@default.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_Ubuntu_DEB_Run-time_Installer.tar.gz
б) устанавливаем драйвера Sentinel HASP для Linux :
# dpkg -i Sentinel_LDK_Ubuntu_DEB_Run-time_Installer/aksusbd_9.15-1_amd64.deb
в) проверим состояние служб (должны быть в состоянии active):
$ systemctl status aksusbd.service $ systemctl status hasplmd.service
Учтите, что для сервера 1С нужен соответствующий ключ защиты.
3) Установка PostgreSQL
Следующим шагом будет установка бесплатной СУБД PostgreSQL от "Postgres Pro" (СУБД для работы платформы 1С:Предприятие)
Скачаем скрипт для добавления стороннего репозитория от разработчиков СУБД:
$ wget https://repo.postgrespro.ru/1c/1c-16/keys/pgpro-repo-add.sh
Выполним скрипт:
# sh pgpro-repo-add.sh
И установим саму СУБД (данная сборка создана на основе открытой PostgreSQL с патчами для совместимости с 1С):
# apt install -y postgrespro-1c-16
Если 16-я версия Постгреса при установке инициализировала кластер не с той локалью, которую задавали в настройках (проверить это можно запросом show lc_collate;), то остановим сервер, удалим данные (тут будьте остарожны, чтобы не удалить важные данные (!), если у вас уже был Постгрес другой версии) и заново проинициализируем кластер с конкретной локалью:
# systemctl stop postgrespro-1c-16 # rm -rf /var/lib/pgpro/1c-16/data/* # /opt/pgpro/1c-16/bin/pg-setup initdb --locale=ru_RU.UTF-8
Проверим состояние службы (должна быть в состоянии active), если выключена, тогда запустим сервер:
$ systemctl status postgrespro-1c-16 # systemctl start postgrespro-1c-16
Меняем пароль учетной записи 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-16
На этом этапе можно создать клиент-серверную версию демонстрационной базы от 1с с именем demo
а) перейдем в каталог платформы:
$ cd /opt/1cv8/x86_64/8.3.25.1286
б) запустим кластер серверов:
$ ./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 --scheduled-jobs-deny=on
е) проверим:
$ ./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.25.1286
Публикуем базу:
# ./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 reload apache2
Теперь можно открыть конфигурацию в веб-браузере по её URL:
http://servername/demo
На этом этапе окружение готово и его можно применять в целях тестирования (либо использовать в небольшой конторе, тем самым сэкономив на лицензиях забугорных товарищей ;-) ).
Конечно, для реальной эксплуатации ещё нужно правильно настраивать Постгрес, повышать безопасность через файервол и т. д. и т. п., но это уже другая история...
Upd. 23.05.2024: Обновление статьи под актуальные версии: 1C 8.3.25.1286 | Ubuntu 24.04 (kernel 6.8.0-31) | Postgres Pro 1c 16.3 | Apache 2.4.58 | HASP driver 9.15
Upd. 26.04.2024: Обновление статьи под актуальные версии: 1C 8.3.24.1528 | Ubuntu 23.10 (kernel 6.5.0-28) | Postgres Pro Standard 15.6 | Apache 2.4.57 | HASP driver 9.15
Upd. 05.07.2023: Обновление статьи под актуальные версии: 1C 8.3.23.1739 | Ubuntu 23.04 (kernel 6.2.0-24) | Postgres Pro Standard 15.3 | Apache 2.4.55 | HASP driver 9.13
Upd. 09.02.2023: Обновление статьи под актуальные версии: 1C 8.3.22.1750 | Ubuntu 22.04.1 (kernel 5.15.0-60) | Postgres Pro Standard 14.6 | Apache 2.4.52 | HASP driver 8.53
Upd. 27.04.2022: Обновление статьи под актуальные версии: 1C 8.3.21.1302 | Ubuntu 22.04 (kernel 5.15.0-27) | Postgres Pro Standard 14.2 | Apache 2.4.52 | HASP driver 8.31
Upd. 08.10.2021: Обновление статьи под актуальные версии: 1C 8.3.20.1549 | Ubuntu 21.04 (kernel 5.11.0-37) | Postgres Pro Standard 13.4 | Apache 2.4.46 | HASP driver 8.23
Upd. 02.02.2021: Обновление статьи под актуальные версии: 1C 8.3.18.1289 | Ubuntu 20.10 (kernel 5.8.0-41) | Postgres Pro 1c 12.5 | Apache 2.4.46 | HASP driver 8.15
Upd. 18.06.2020: Обновлены координаты для скачивания СУБД PostgreSQL для 1C 11.8 [см. архив статьи в прикрепленных файлах]
Upd. 08.06.2020: Обновление статьи под актуальные версии: 1C 8.3.17.1496 | Ubuntu 20.04 (kernel 5.4.0-33) | Postgres Pro Standard 11.8.1 | Apache 2.4.41 | HASP driver 8.11