Установка сервера 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-db | PostgreSQL, сборка для 1С |
Кластер из нескольких серверов имеет смысл при большом количестве пользователей или тяжёлых фоновых заданиях. Для небольшой компании хватит одного сервера 1С, и всё, что ниже относится к srv1c-worker, можно пропустить.
На всех трёх машинах серверы должны находиться по именам. Если внутреннего DNS нет, пропишите хосты в /etc/hosts:
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:
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С:
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 и проверяем:
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. Если хотите держать его на отдельном диске, не правьте файл службы в каталоге платформы — он заменится при установке новой версии. Используйте переопределение:
sudo mkdir -p /srv/1c/data
sudo chown -R usr1cv8:grp1cv8 /srv/1c
sudo systemctl edit srv1cv8-$VER@default.serviceВ открывшемся редакторе:
[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-машины. Служба лежит рядом с сервером:
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.
Добавляем рабочий сервер в кластер
Получаем идентификатор кластера:
cd /opt/1cv8/x86_64/$VER
./rac cluster listВ выводе нужна строка cluster : <uuid>; дальше обозначаю её как $CLUSTER. Если для кластера задан администратор, ко всем командам ниже добавляйте --cluster-user=... --cluster-pwd=....
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 | Имя сервера в списке кластера |
--using | normal — рабочий сервер, main — центральный |
--cluster-port | Порт менеджера кластера на добавляемом сервере |
Проверяем, что серверов стало два и у каждого запущен рабочий процесс:
./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; - завести пользователя СУБД с правом создавать базы;
- настроить параметры памяти под объём сервера — это отдельная тема, и для рабочей нагрузки её нельзя пропускать.
Создаём информационную базу вместе с базой в СУБД:
./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:
sudo apt install -y apache2
sudo systemctl enable --now apache2Публикуем базу утилитой webinst из каталога платформы. На Ubuntu основной конфиг Apache находится в /etc/apache2/apache2.conf, путь к нему передаём явно:
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 и проверяйте совместимость с версией платформы.




