Публикация информационной базы 1С на сервере Linux: от установки до доступа через браузер

· 9 мин

Содержание

Чтобы опубликовать базу 1С на Linux, нужны три вещи: работающий сервер 1С:Предприятия, Apache 2.4 и утилита webinst из каталога платформы. Команда webinst -apache24 создаёт файл default.vrd и прописывает модуль wsap24.so в конфигурацию Apache, после перезапуска база открывается по адресу http://сервер/имя_базы.

Типичная ситуация: офис переезжает с Windows-сервера на Ubuntu ради экономии на лицензиях ОС, а бухгалтерия хочет работать из дома через браузер. На деле всё упирается не в саму публикацию, а в подготовку: права, локаль, имя хоста и версии компонентов. Ниже весь путь по порядку, на примере Ubuntu 22.04/24.04 и платформы 8.3.22 и новее.

1. Что подготовить на сервере Linux до установки 1С

Начните с проверки окружения. Большинство проблем при запуске сервера 1С на Linux возникает из-за того, что пропустили этот этап.

Требования к системе

ПараметрМинимум для 5–10 пользователейКомфортно для 20–40 пользователей
Процессор4 ядра8 ядер
Оперативная память8 ГБ16–32 ГБ
Диск под базуSSD 100 ГБNVMe 250 ГБ и больше
ОСUbuntu 22.04/24.04, Debian 12то же, с отдельным разделом под PostgreSQL

Цифры ориентировочные. Тяжёлые конфигурации вроде ERP или ЗУП на 300+ сотрудников требуют больше памяти.

Подготовка системы

  1. Обновите пакеты: sudo apt update && sudo apt upgrade.
  2. Сгенерируйте русскую локаль, без неё не создастся база в PostgreSQL:
sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8
  1. Задайте постоянное имя хоста и проверьте /etc/hosts.

Имя сервера должно разрешаться в реальный IP-адрес, а не в 127.0.1.1. Ubuntu по умолчанию пишет в /etc/hosts строку 127.0.1.1 имя_хоста. Кластер 1С регистрирует себя по имени, и клиенты с других компьютеров потом не могут подключиться.

sudo hostnamectl set-hostname srv1c
# в /etc/hosts:
192.168.1.10   srv1c
  1. Установите шрифты для печатных форм: sudo apt install fontconfig ttf-mscorefonts-installer. Без них счета и акты в веб-клиенте поедут по вёрстке.

Если клиентские компьютеры работают в той же сети, добавьте имя srv1c в DNS роутера или в их файлы hosts. Это экономит час поиска причины ошибки «сервер не обнаружен».

Лицензии

Серверу 1С нужна серверная лицензия: программная или аппаратный ключ HASP. Клиентские лицензии тоже можно держать на сервере, тогда пользователи браузера будут брать их оттуда. Без лицензии база на сервере не запустится.

2. Установка сервера 1С и PostgreSQL на Linux

Платформа 1С

С версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-<версия>-x86_64.run. Отдельные deb-пакеты common, server, ws остались только в старых сборках.

chmod +x setup-full-8.3.22.1709-x86_64.run
sudo ./setup-full-8.3.22.1709-x86_64.run --mode unattended \
     --enable-components server,ws,server_admin

Что ставится:

  • 🖥️ server — сам сервер 1С:Предприятия (ragent, rmngr, rphost);
  • 🌐 ws — модули расширения веб-сервера, включая wsap24.so;
  • 🛠️ server_admin — сервер администрирования ras и утилита rac.

Платформа ложится в /opt/1cv8/x86_64/8.3.22.1709/. Номер версии подставляйте свой, он встречается во всех путях ниже.

PostgreSQL для 1С

Обычный PostgreSQL из репозитория Ubuntu не подходит. Нужна сборка с патчами для 1С: «PostgreSQL для 1С» от фирмы 1С или Postgres Pro. Ставьте версию, которая указана в списке поддерживаемых для вашего релиза платформы.

После установки задайте пароль служебному пользователю СУБД:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'СложныйПароль';"

Для рабочей базы лучше создать отдельную роль, а не работать от postgres. Для первого запуска и проверки подойдёт и postgres.

3. Пользователь usr1cv8, права и служба systemd

Установщик сам создаёт системного пользователя usr1cv8 и группу grp1cv8. От их имени работает сервер 1С. Данные кластера по умолчанию лежат в /home/usr1cv8/.1cv8/1C/1cv8.

Проверьте права

id usr1cv8
sudo ls -la /home/usr1cv8/.1cv8/1C/1cv8

Владелец каталога — usr1cv8:grp1cv8. Если вы переносили данные кластера со старого сервера или копировали их от root, верните владельца:

sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8

Если база файловая и лежит, например, в /srv/1c/buh, у usr1cv8 и у пользователя Apache (www-data) должны быть права на чтение и запись в этот каталог.

Запуск службы

В новых релизах в каталоге платформы лежит готовый юнит systemd. Подключите его и запустите экземпляр default:

sudo systemctl link /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service
sudo systemctl enable --now srv1cv8-8.3.22.1709@default
systemctl status srv1cv8-8.3.22.1709@default

Статус active (running) означает, что агент сервера поднялся. Если в каталоге юнита нет, посмотрите ls /opt/1cv8/x86_64/8.3.22.1709/*.service — в старых сборках имя файла может отличаться.

Остановка или перезапуск службы обрывает все сеансы пользователей. Делайте это вечером или после предупреждения в общем чате.

4. Кластер серверов 1С на Linux: порты и проверка

При первом старте агент создаёт кластер с настройками по умолчанию. Менять их для одной-двух баз обычно не нужно.

Порты

ПортПроцессНазначение
1540ragentагент сервера
1541rmngrменеджер кластера
1560–1591rphostрабочие процессы
1545rasсервер администрирования
5432postgresСУБД, наружу открывать не нужно
80/443apache2веб-публикация

Если включён ufw:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
sudo ufw allow 80,443/tcp

Порт 1545 и порты кластера не выставляйте в интернет. Удалённым пользователям достаточно веб-доступа по HTTPS.

Сервер администрирования

Управлять кластером из консоли Linux позволяет связка ras + rac. Запустите сервер администрирования:

sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.22.1709/ras cluster --daemon

Проверьте кластер:

/opt/1cv8/x86_64/8.3.22.1709/rac cluster list

В ответе будет строка cluster : <UUID>. Скопируйте этот идентификатор, он понадобится дальше. Тот же ras позволяет подключиться к кластеру с Windows-компьютера через оснастку «Администрирование серверов 1С Предприятия».

5. Создание информационной базы в кластере

Базу можно создать двумя способами. Результат одинаковый, выбирайте удобный.

Способ 1. Через rac прямо на сервере

/opt/1cv8/x86_64/8.3.22.1709/rac infobase create \
  --cluster=<UUID> \
  --name=buh \
  --dbms=PostgreSQL \
  --db-server=localhost \
  --db-name=buh \
  --locale=ru \
  --db-user=postgres \
  --db-pwd='СложныйПароль' \
  --create-database \
  --license-distribution=allow

Ключ --license-distribution=allow разрешает серверу выдавать лицензии клиентам. Полный список параметров смотрите в rac help infobase.

Способ 2. Через клиент 1С на Windows

  1. В окне запуска нажмите «Добавить» → «Создание новой информационной базы».
  2. Выберите шаблон или пустую базу.
  3. Тип расположения — «На сервере 1С:Предприятия».
  4. Кластер серверов : srv1c, имя базы: buh, тип СУБД: PostgreSQL, сервер баз данных: localhost.
  5. Поставьте флажок «Создать базу данных в случае её отсутствия».

Затем загрузите в базу данные: выгрузку .dt через Конфигуратор или конфигурацию из шаблона. Для загрузки .dt нужен монопольный доступ к базе.

Сервер БД в настройках базы указывается относительно сервера 1С. Раз PostgreSQL стоит на той же машине, пишите localhost, даже если создаёте базу с другого компьютера.

6. Публикация базы 1С на веб-сервере Apache

Теперь главный шаг: выставить базу в браузер.

Установка Apache

sudo apt install apache2
sudo systemctl enable --now apache2

Публикация через webinst

sudo mkdir -p /var/www/buh
sudo /opt/1cv8/x86_64/8.3.22.1709/webinst -publish -apache24 \
  -wsdir buh \
  -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" \
  -confpath /etc/apache2/apache2.conf

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

  • -wsdir buh — имя в адресе: http://srv1c/buh;
  • -dir — каталог, куда ляжет default.vrd;
  • -connstr — строка подключения. Для серверной базы Srvr=...;Ref=...;, для файловой File=/srv/1c/buh;;
  • -confpath — основной конфиг Apache, в него допишется блок публикации.

Что появится в apache2.conf

LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.22.1709/wsap24.so"

# 1c publication
Alias "/buh" "/var/www/buh/"
<Directory "/var/www/buh/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/buh/default.vrd"
</Directory>

Права и перезапуск

sudo chown -R www-data:www-data /var/www/buh
sudo apachectl configtest
sudo systemctl restart apache2

Откройте в браузере http://srv1c/buh. Должно появиться окно входа в базу.

HTTPS для удалённого доступа

Без шифрования пароли пользователей идут открытым текстом. Если базу открывают из интернета, подключите сертификат:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d 1c.example.ru

Для веб-сервисов и HTTP-сервисов (обмены, мобильные приложения) отметьте их публикацию в default.vrd или опубликуйте базу из Конфигуратора на Windows и перенесите готовый default.vrd.

7. Настройка памяти и производительности сервера 1С

Сервер стартует с безопасными значениями, но на 16 ГБ памяти и выше их стоит подтянуть.

PostgreSQL

Параметры задаются в postgresql.conf. Пример для сервера с 16 ГБ, где на той же машине работает 1С:

ПараметрЗначениеЛогика
shared_buffers4GBоколо 25% памяти
effective_cache_size8GBоценка кэша ОС
work_mem64MBна одну операцию сортировки
maintenance_work_mem1GBдля VACUUM и индексов
max_locks_per_transaction2561С создаёт много временных таблиц
max_connections100–200по числу сеансов с запасом

После правки перезапустите СУБД: sudo systemctl restart postgresql. Это тоже обрывает сеансы 1С, выбирайте нерабочее время.

Кластер 1С

В свойствах рабочего сервера через консоль администрирования ограничьте аппетит процессов:

  • 📌 «Критический объём памяти процессов» — порог, после которого сервер начнёт защищаться. Ставьте примерно 70–80% от свободной памяти за вычетом PostgreSQL.
  • 📌 «Временно допустимый объём памяти процессов» — чуть ниже критического, с интервалом превышения 300 секунд.
  • 📌 «Безопасный расход памяти за один вызов» — защита от отчёта, который пытается съесть всю память. Значение 0 означает автоматический расчёт.

Своп и диск

Включите файл подкачки хотя бы на 4–8 ГБ: он не ускоряет работу, но спасает от аварийного завершения рабочих процессов при пиках. Каталог данных PostgreSQL держите на SSD или NVMe — это даёт больше, чем любые настройки.

8. Диагностика: где смотреть логи и типичные ошибки публикации

Куда смотреть

Что не работаетЖурнал
Служба 1С не стартуетjournalctl -u srv1cv8-8.3.22.1709@default -n 100
Ошибки в браузере, 500, 403/var/log/apache2/error.log
Не создаётся база, ошибки СУБД/var/log/postgresql/
Падения rphost, медленные запросытехнологический журнал через logcfg.xml в /opt/1cv8/conf/

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

Типичные ошибки

Диагностика: выберите симптом

После обновления платформы на сервере старые пути в apache2.conf продолжают указывать на прежний каталог версии. Если удалить старую платформу, веб-публикация перестанет работать, пока вы не обновите строку LoadModule.

Частые вопросы

Можно ли опубликовать на Linux файловую базу без сервера 1С?
Да. Поставьте компонент ws и Apache, а в webinst укажите -connstr "File=/путь/к/базе;". Для 3–5 пользователей это рабочий вариант, но клиентские лицензии всё равно нужны.
Подойдёт ли nginx вместо Apache?
Модуля расширения 1С для nginx нет. Nginx можно поставить перед Apache как обратный прокси для HTTPS и кэширования статики, но саму публикацию обслуживает Apache.
Можно ли держать на одном сервере две версии платформы?
Да, каждая ставится в свой каталог /opt/1cv8/x86_64/<версия>/. Но кластеры разных версий должны слушать разные порты, а версия модуля веб-сервера должна совпадать с версией кластера базы.
Нужно ли ставить графический интерфейс на сервер?
Нет. Сервер, PostgreSQL и Apache работают в консоли. Конфигуратор и консоль администрирования запускайте с рабочего компьютера.
Как подключить к опубликованной базе тонкий клиент?
В окне запуска добавьте базу с типом «На веб-сервере» и укажите адрес http://srv1c/buh. Тонкий клиент работает через ту же публикацию, что и браузер.