Публикация информационной базы 1С на сервере Linux: от установки до доступа через браузер
Содержание
Чтобы опубликовать базу 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+ сотрудников требуют больше памяти.
Подготовка системы
- Обновите пакеты:
sudo apt update && sudo apt upgrade. - Сгенерируйте русскую локаль, без неё не создастся база в PostgreSQL:
sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8
- Задайте постоянное имя хоста и проверьте
/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
- Установите шрифты для печатных форм:
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: порты и проверка
При первом старте агент создаёт кластер с настройками по умолчанию. Менять их для одной-двух баз обычно не нужно.
Порты
| Порт | Процесс | Назначение |
|---|---|---|
| 1540 | ragent | агент сервера |
| 1541 | rmngr | менеджер кластера |
| 1560–1591 | rphost | рабочие процессы |
| 1545 | ras | сервер администрирования |
| 5432 | postgres | СУБД, наружу открывать не нужно |
| 80/443 | apache2 | веб-публикация |
Если включён 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С:Предприятия».
- Кластер серверов
:
srv1c, имя базы:buh, тип СУБД: PostgreSQL, сервер баз данных:localhost. - Поставьте флажок «Создать базу данных в случае её отсутствия».
Затем загрузите в базу данные: выгрузку .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_buffers | 4GB | около 25% памяти |
effective_cache_size | 8GB | оценка кэша ОС |
work_mem | 64MB | на одну операцию сортировки |
maintenance_work_mem | 1GB | для VACUUM и индексов |
max_locks_per_transaction | 256 | 1С создаёт много временных таблиц |
max_connections | 100–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?
Можно ли держать на одном сервере две версии платформы?
/opt/1cv8/x86_64/<версия>/. Но кластеры разных версий должны слушать разные порты, а версия модуля веб-сервера должна совпадать с версией кластера базы.Нужно ли ставить графический интерфейс на сервер?
Как подключить к опубликованной базе тонкий клиент?
http://srv1c/buh. Тонкий клиент работает через ту же публикацию, что и браузер.