Установка сервера 1С на Ubuntu сегодня делается единым установщиком setup-full-<версия>-x86_64.run с сайта releases.1c.ru: он ставит сервер, модуль веб-сервера и средства администрирования в /opt/1cv8/x86_64/<версия>/ и кладёт рядом готовые файлы служб systemd. Дальше остаётся подключить службы, запустить RAS для удалённого администрирования, через консоль rac собрать кластер и создать базу, а для веб-клиента опубликовать её в Apache утилитой webinst.

Ниже весь путь для схемы из двух серверов 1С и отдельного сервера СУБД. Команды рассчитаны на LTS-выпуски Ubuntu 22.04/24.04; версию платформы я везде подставляю через переменную, потому что номер сборки у вас будет свой.

Схема и подготовка серверов

Схема, которую разбираем:

РольИмя хостаЧто установлено
Центральный сервер 1Сsrv1c-mainСервер 1С, RAS, модуль веб-сервера, Apache
Рабочий сервер 1Сsrv1c-workerСервер 1С
Сервер СУБДsrv-dbPostgreSQL, сборка для 1С

Кластер из нескольких серверов имеет смысл при большом количестве пользователей или тяжёлых фоновых заданиях. Для небольшой компании хватит одного сервера 1С, и всё, что ниже относится к srv1c-worker, можно пропустить.

На всех трёх машинах серверы должны находиться по именам. Если внутреннего DNS нет, пропишите хосты в /etc/hosts:

bash
sudo tee -a /etc/hosts <<'HOSTS'
192.168.0.10  srv1c-main
192.168.0.11  srv1c-worker
192.168.0.12  srv-db
HOSTS

Имя хоста в hostname должно совпадать с тем, что прописано здесь: сервер 1С регистрирует себя в кластере по имени, и расхождение приводит к ошибкам подключения.

Русская локаль и зависимости, которые нужны серверу 1С для работы с шрифтами, картинками и ODBC:

bash
sudo locale-gen ru_RU.UTF-8
sudo apt update
sudo apt install -y libfontconfig1 libgsf-1-114 imagemagick unixodbc ttf-mscorefonts-installer

Пакет со шрифтами Microsoft при установке попросит принять лицензию. Состав зависимостей между версиями платформы может меняться: если установщик сообщает о недостающих библиотеках, доставьте их из репозитория.

Установка сервера 1С на Ubuntu

Скачайте с releases.1c.ru дистрибутив «Технологическая платформа 1С:Предприятия (64-bit) для Linux» и скопируйте его на сервер, например через scp. Затем на обоих серверах 1С:

bash
VER=8.3.XX.XXXX   # подставьте свою версию платформы
chmod +x setup-full-$VER-x86_64.run

# Центральный сервер: сервер 1С, модуль веб-сервера, средства администрирования
sudo ./setup-full-$VER-x86_64.run --mode unattended \
  --enable-components server,ws,server_admin

На рабочем сервере достаточно компонента server (и server_admin, если хотите запускать rac локально). Клиентские приложения на сервер не ставлю: они не нужны и тянут лишние зависимости. Если предпочитаете графический мастер, запустите установщик без параметров и отметьте те же компоненты вручную.

После установки исполняемые файлы лежат в /opt/1cv8/x86_64/$VER/, а установщик создаёт системного пользователя usr1cv8 и группу grp1cv8, от имени которых работает сервер.

Служба systemd для сервера 1С

В каталоге платформы есть шаблон службы srv1cv8-$VER@.service. Подключаем его, включаем автозапуск экземпляра default и проверяем:

bash
sudo systemctl link /opt/1cv8/x86_64/$VER/srv1cv8-$VER@.service
sudo systemctl daemon-reload
sudo systemctl enable --now srv1cv8-$VER@default.service
systemctl status srv1cv8-$VER@default.service

В статусе должно быть active (running) и enabled.

Каталог данных кластера задаётся переменной SRV1CV8_DATA. Если хотите держать его на отдельном диске, не правьте файл службы в каталоге платформы — он заменится при установке новой версии. Используйте переопределение:

bash
sudo mkdir -p /srv/1c/data
sudo chown -R usr1cv8:grp1cv8 /srv/1c
sudo systemctl edit srv1cv8-$VER@default.service

В открывшемся редакторе:

bash
[Service]
Environment=SRV1CV8_DATA=/srv/1c/data

Для тестового контура, где нужна отладка на сервере, туда же можно добавить Environment=SRV1CV8_DEBUG="-debug -http". На рабочем кластере отладку не включайте. После изменений — sudo systemctl restart srv1cv8-$VER@default.service.

Повторите установку и подключение службы на srv1c-worker.

RAS и RAC: удалённое администрирование кластера

В поставке есть две утилиты:

  • RAS (remote administration server) — служба, которая принимает команды администрирования и передаёт их агенту сервера;
  • RAC (remote administration client) — консольный клиент, который отправляет команды в RAS, локальный или удалённый.

Через RAS также подключается графическая консоль администрирования с Windows-машины. Служба лежит рядом с сервером:

bash
sudo systemctl link /opt/1cv8/x86_64/$VER/ras-$VER.service
sudo systemctl daemon-reload
sudo systemctl enable --now ras-$VER.service
systemctl status ras-$VER.service

По умолчанию RAS слушает порт 1545. Дальше все команды rac выполняются на srv1c-main из каталога платформы и без указания адреса обращаются к localhost:1545.

Добавляем рабочий сервер в кластер

Получаем идентификатор кластера:

bash
cd /opt/1cv8/x86_64/$VER
./rac cluster list

В выводе нужна строка cluster : <uuid>; дальше обозначаю её как $CLUSTER. Если для кластера задан администратор, ко всем командам ниже добавляйте --cluster-user=... --cluster-pwd=....

bash
CLUSTER=<uuid-из-вывода>

./rac server --cluster=$CLUSTER insert \
  --agent-host=srv1c-worker --agent-port=1540 \
  --port-range=1560:1591 --name=srv1c-worker \
  --using=normal --cluster-port=1541

Разбор параметров:

ПараметрЗначение
--agent-hostИмя добавляемого сервера, на котором уже запущен агент ragent
--agent-portПорт агента, по умолчанию 1540
--port-rangeДиапазон портов рабочих процессов этого сервера
--nameИмя сервера в списке кластера
--usingnormal — рабочий сервер, main — центральный
--cluster-portПорт менеджера кластера на добавляемом сервере

Проверяем, что серверов стало два и у каждого запущен рабочий процесс:

bash
./rac server --cluster=$CLUSTER list
./rac process --cluster=$CLUSTER list

У центрального сервера в списке using : main, у добавленного — using : normal. Рабочие процессы должны быть в состоянии running : yes.

Сервер СУБД и создание базы через RAC

Для 1С нужна сборка PostgreSQL с доработками под платформу: дистрибутив фирмы «1С» с releases.1c.ru или Postgres Pro. Версию сверяйте с требованиями вашей платформы. Минимум, который нужно сделать на srv-db после установки:

  • разрешить подключения с серверов 1С в pg_hba.conf и listen_addresses в postgresql.conf;
  • завести пользователя СУБД с правом создавать базы;
  • настроить параметры памяти под объём сервера — это отдельная тема, и для рабочей нагрузки её нельзя пропускать.

Создаём информационную базу вместе с базой в СУБД:

bash
./rac infobase --cluster=$CLUSTER create \
  --create-database --name=test --dbms=PostgreSQL \
  --db-server=srv-db --db-name=test_db --locale=ru \
  --db-user=onec --db-pwd='СложныйПароль' \
  --descr="Тестовая база"

Без --create-database RAC ожидает, что база в СУБД уже существует. Если PostgreSQL слушает нестандартный порт, укажите его в имени сервера: --db-server="srv-db port=5433". В ответ команда вернёт идентификатор созданной базы, а ./rac infobase --cluster=$CLUSTER summary list покажет её в списке.

Пароль в командной строке попадает в историю оболочки. На рабочих серверах я либо очищаю историю, либо создаю базы через графическую консоль.

Установка Apache и публикация базы

Модуль веб-сервера (компонент ws) уже стоит на srv1c-main. Ставим Apache:

bash
sudo apt install -y apache2
sudo systemctl enable --now apache2

Публикуем базу утилитой webinst из каталога платформы. На Ubuntu основной конфиг Apache находится в /etc/apache2/apache2.conf, путь к нему передаём явно:

bash
cd /opt/1cv8/x86_64/$VER
sudo ./webinst -publish -apache24 \
  -wsdir test -dir /var/www/test \
  -connstr "Srvr=srv1c-main;Ref=test;" \
  -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2
ПараметрНазначение
-publishРежим публикации
-apache24Публикация для Apache 2.4
-wsdirВиртуальный каталог, он же часть адреса в браузере
-dirФизический каталог публикации с файлом default.vrd
-connstrСтрока соединения с информационной базой
-confpathПуть к конфигурационному файлу Apache

Проверка: http://srv1c-main/test в браузере должен открыть веб-клиент. Если нужны HTTP-сервисы или OData, их публикация настраивается в default.vrd. Для доступа из интернета обязательно настройте HTTPS и не публикуйте базу напрямую без защиты.

Типичные ошибки при установке

  • Серверы не видят друг друга. Имена в /etc/hosts или DNS не совпадают с hostname. Проверьте на каждой машине, что имена резолвятся одинаково.
  • Закрыты порты. Если включён ufw, откройте 1540, 1541, 1560–1591 между серверами 1С, 1545 для администрирования и 5432 до СУБД.
  • Служба падает после смены каталога данных. Каталог не принадлежит usr1cv8. Проверьте chown.
  • Правки в файле службы пропали. Файл в /opt/1cv8/... заменился новой версией. Используйте systemctl edit.
  • rac не подключается. Не запущен RAS или команды выполняются на другом хосте без указания адреса: ./rac srv1c-main:1545 cluster list.
  • Ошибка при создании базы. Нет доступа к СУБД с сервера 1С, у пользователя СУБД нет прав или установлена сборка PostgreSQL без доработок для 1С.
  • Веб-клиент отдаёт 404. Apache не перезапущен после публикации или публикация записана не в тот конфиг.
  • Используется промежуточный выпуск Ubuntu. Короткий срок поддержки и нет в списке поддерживаемых платформой ОС. Для рабочего кластера — только LTS.
Сервер 1С на Linux надёжен и дешевле в лицензиях на ОС, но требует аккуратности на старте: имена хостов, порты, права на каталог данных и правильная сборка PostgreSQL — четыре места, где ломается большинство установок.

Разворачиваю серверы и кластеры под ключ, включая настройку PostgreSQL под нагрузку, резервное копирование и мониторинг: смотрите услуги сервер 1С, 1С на Linux и PostgreSQL и кластер 1С.

Итог

  • Сервер ставится единым установщиком setup-full с компонентами server, ws, server_admin; службы systemd лежат в каталоге платформы и подключаются через systemctl link.
  • Каталог данных меняйте через systemctl edit, а не правкой файла службы.
  • RAS даёт удалённое администрирование, rac — добавление рабочего сервера и создание баз из консоли.
  • Для базы нужен PostgreSQL в сборке для 1С; веб-публикация делается webinst с указанием -confpath для Apache на Ubuntu.
  • Для рабочего контура используйте LTS-выпуск Ubuntu и проверяйте совместимость с версией платформы.