Разворачиваем сервер 1С:Предприятия 8.3 и PostgreSQL на Linux с нуля

· 10 мин

Содержание

Чтобы установить 1С:Предприятие на Linux, скачайте с портала поставки архив сервера для Linux x86_64, запустите из него единый установщик setup-full-<версия>-x86_64.run с компонентами сервера, подключите службу srv1cv8-<версия>@default через systemd и поставьте рядом PostgreSQL в сборке для 1С. Затем создайте базу через консоль кластера или утилиту rac. На подготовленной машине вся процедура занимает около часа.

Есть два сценария. Сервер 1С и СУБД на одной машине — так делают для 10–30 пользователей, это проще в обслуживании. Отдельный сервер СУБД — для нагруженных баз, где диски и память PostgreSQL не должны делить с рабочими процессами 1С. Инструкция написана для первого варианта, отличия второго указаны по ходу.

Подготовка Linux к установке сервера 1С

Сервер 1С официально поддерживает Debian, Ubuntu LTS, РЕД ОС, Astra Linux, Альт и ряд других дистрибутивов. Конкретный перечень зависит от версии платформы: смотрите системные требования к своему релизу. Примеры команд ниже — для Ubuntu 22.04/24.04 и Debian 12.

Ориентиры по железу для небольшой базы на одной машине:

РесурсМинимумКомфортно на 20–30 пользователей
Процессор2 ядра4–8 ядер
Память4 ГБ16–32 ГБ
Диск40 ГБSSD/NVMe, отдельный том под данные PostgreSQL

Перед установкой проверьте четыре вещи.

1. Имя сервера резолвится. Кластер 1С регистрируется по имени хоста. Если имя не разрешается в адрес, клиенты не подключатся к рабочим процессам.

hostnamectl set-hostname srv1c
echo "192.168.1.10 srv1c" >> /etc/hosts
hostname -f

Ту же строку IP имя добавьте в hosts или в DNS на клиентских машинах.

2. Русская локаль. Без ru_RU.UTF-8 база создаётся с ошибками сортировки, а PostgreSQL инициализируется не в той кодировке.

locale-gen ru_RU.UTF-8
update-locale LANG=ru_RU.UTF-8

3. Шрифты и библиотеки. Серверу нужны шрифты для формирования печатных форм и PDF, иначе в документах появятся квадратики вместо букв.

apt update
apt install -y fontconfig libfreetype6 libgsf-1-114 unixodbc ttf-mscorefonts-installer
fc-cache -fv

Пакет ttf-mscorefonts-installer лежит в разделе contrib (Debian) или multiverse (Ubuntu). Если репозиторий не подключён, включите его или скопируйте шрифты Arial и Times New Roman вручную в /usr/share/fonts.

4. Время и порты. Синхронизируйте часы (timedatectl set-ntp true) и откройте порты в файрволе. Расхождение часов сервера и клиентов даёт странные ошибки блокировок и проблемы с лицензиями.

ПортКто слушаетЗачем
1540агент сервера (ragent)первичное подключение клиента и консоли
1541менеджер кластера (rmngr)управление кластером
1560–1591рабочие процессы (rphost)сеансы пользователей
1545сервер администрирования (ras)консоль и rac
5432PostgreSQLтолько если СУБД на другой машине
ufw allow 1540:1541/tcp
ufw allow 1560:1591/tcp
ufw allow from 192.168.1.0/24 to any port 1545 proto tcp

Порт 1545 не открывайте в интернет. Сервер администрирования принимает команды управления кластером, пусть он будет доступен только из локальной сети или через VPN.

Где взять дистрибутив платформы 1С для Linux

Дистрибутив скачивают с портала поставки фирмы 1С под учётной записью с действующей поддержкой. На странице платформы 8.3 выберите нужный релиз и файл вида «Технологическая платформа 1С:Предприятия (64-bit) для Linux». Нужен архив server64_8_3_xx_xxxx.tar.gz (у разных релизов имя чуть отличается).

Начиная с платформы 8.3.20 для Linux поставляется единый установщик: внутри архива один файл setup-full-*.run, а не набор deb- и rpm-пакетов. Для релизов ниже 8.3.20 в архиве лежат пакеты 1c-enterprise83-common, 1c-enterprise83-server и другие, их ставят через dpkg -i или rpm -i.

Выбор релиза:

  • 🔹 ориентируйтесь на требования конфигурации: в описании обновления БП, ЗУП или УТ указан минимальный номер платформы;
  • 🔹 берите релиз, номер которого не ниже требуемого, и не самый свежий в первую неделю после выхода;
  • 🔹 клиенты и сервер должны работать на одном и том же номере платформы, вплоть до последних цифр.

Распакуйте архив на сервере:

mkdir -p /tmp/1c && cd /tmp/1c
tar -xzf server64_8_3_*.tar.gz
ls -l
chmod +x setup-full-*.run

Установка сервера 1С:Предприятия на Linux

Установщик работает в графическом режиме или без интерфейса. На сервере без рабочего стола используйте режим unattended и явно перечислите компоненты:

./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended \
  --enable-components server,ws,server_admin,ru

Что означают компоненты:

КомпонентЧто ставитНужен ли
serverагент, менеджер кластера, рабочие процессыобязательно
server_adminсервер администрирования ras и утилита racда, для управления без Windows-консоли
wsмодули расширения веб-сервераесли будете публиковать базу через Apache
ruрусский интерфейс сообщенийда
client_full, client_thinтолстый и тонкий клиенттолько если на этой машине будут работать пользователи

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

Проверьте результат:

ls /opt/1cv8/x86_64/
id usr1cv8

Если установщик молча завершился, а каталога нет — запустите его с ключом --help и сверьте имена компонентов для вашего релиза. В части релизов список компонентов немного отличается.

Для релизов до 8.3.20 установка выглядит иначе: из каталога с пакетами выполняется dpkg -i 1c-enterprise83-common_*.deb 1c-enterprise83-server_*.deb и при необходимости пакет -ws. Платформа тогда ставится в /opt/1C/v8.3/x86_64/.

PostgreSQL для 1С: какую сборку ставить и как настроить

Обычный PostgreSQL из репозитория дистрибутива для 1С не подходит. Платформе нужны дополнительные расширения (mchar, fulleq, fasttrun и другие), которых в стандартной сборке нет. Варианты:

  • ✅ PostgreSQL с патчами для 1С — бесплатная сборка, лежит на портале поставки рядом с платформой;
  • ✅ Postgres Pro для 1С (Standard или Enterprise) — коммерческие сборки с поддержкой;
  • ❌ PostgreSQL из apt install postgresql — база не создастся или будет работать с ошибками.

Версию СУБД сверяйте со списком поддерживаемых для вашего релиза платформы. Свежая платформа обычно поддерживает несколько актуальных версий PostgreSQL.

Установка и инициализация

Сборку ставят из deb-пакетов или из репозитория вендора по его инструкции. После установки проверьте, что кластер СУБД инициализирован в русской локали:

sudo -u postgres psql -c "SHOW lc_collate;"

Ожидается ru_RU.UTF-8. Если там C или en_US.UTF-8, кластер СУБД пересоздайте с нужной локалью, пока в нём нет данных.

Задайте пароль пользователю postgres — его будет вводить платформа при создании базы:

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

Для рабочих систем лучше завести отдельную роль с правом создавать базы, а не работать под суперпользователем.

Минимальная настройка postgresql.conf

Значения по умолчанию рассчитаны на слабую машину. Для сервера с 16 ГБ памяти, где 1С и PostgreSQL живут вместе, отправная точка такая:

shared_buffers = 4GB
effective_cache_size = 8GB
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 200

Логика: shared_buffers — около 25% памяти, effective_cache_size — около половины. Рабочим процессам 1С тоже нужна память, поэтому не отдавайте всё СУБД.

Если сервер 1С на другой машине, разрешите сетевой доступ: в postgresql.conf укажите listen_addresses = '*', в pg_hba.conf добавьте строку для адреса сервера 1С с методом scram-sha-256 или md5. После правок:

systemctl restart postgresql

Перезапуск PostgreSQL обрывает все сеансы 1С. На работающей системе делайте его вне рабочего времени.

Запуск службы сервера 1С и кластер по умолчанию

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

V=8.3.xx.xxxx
systemctl link /opt/1cv8/x86_64/$V/srv1cv8-$V@.service
systemctl enable srv1cv8-$V@default
systemctl start srv1cv8-$V@default
systemctl status srv1cv8-$V@default

Суффикс @default — имя экземпляра службы с настройками по умолчанию: порт 1540 и каталог данных /home/usr1cv8/.1cv8/1C/1cv8. Там хранятся реестр кластера, журналы регистрации и сеансовые данные.

Проверьте, что процессы поднялись и слушают порты:

ps aux | grep -E 'ragent|rmngr|rphost' | grep -v grep
ss -tlnp | grep -E '1540|1541'

При первом старте агент сам создаёт кластер по умолчанию с портом 1541. Отдельно «создавать кластер» не нужно.

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

Чтобы управлять кластером из командной строки, запустите ras. В каталоге релиза есть и его unit-файл:

systemctl link /opt/1cv8/x86_64/$V/ras-$V.service
systemctl enable --now ras-$V

Теперь работает утилита rac:

cd /opt/1cv8/x86_64/$V
./rac cluster list

Команда выведет идентификатор кластера (cluster : <uuid>), имя хоста и порт 1541. Идентификатор понадобится для создания базы.

Если удобнее графическая консоль, поставьте на Windows-машину платформу того же номера с компонентом «Администрирование сервера 1С:Предприятия» и добавьте в консоль центральный сервер по имени srv1c. Консоль подключается к агенту на порт 1540.

Лицензия на сервер

Служба запускается и без лицензии, но рабочие процессы не дадут работать с базой: пользователи увидят сообщение об отсутствии лицензии. Программную лицензию сервера активируют либо с клиента при первом подключении к серверной базе, либо утилитой ring на самом сервере. Аппаратный ключ HASP подключают через драйвер aksusbd и менеджер лицензий. Файлы программных лицензий привязываются к оборудованию: после замены дисков, сетевых карт или переноса виртуальной машины лицензию может потребоваться активировать заново.

Создание информационной базы и проверка работы

Базу можно создать тремя способами.

СпособГдеКогда удобен
Окно запуска 1С на клиентеWindows или Linux с клиентомобычный случай, без командной строки
Консоль кластераWindows с консолью администрированиякогда уже настроена консоль
rac infobase createна самом сервереавтоматизация, сервер без Windows рядом

Через окно запуска клиента

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

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

Через rac

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

Полный перечень параметров для вашего релиза показывает ./rac help infobase. Созданную базу видно в списке:

./rac infobase summary list --cluster=<uuid>

Пустая база готова. Конфигурацию загружают через конфигуратор: файл .cf из дистрибутива или выгрузку .dt из старой базы.

Проверка

Сервер 1С на Linux готов к работе
Выполнено: 0 / 7

Последний пункт часто откладывают. Не надо: регулярный pg_dump по расписанию плюс периодическая выгрузка .dt закрывают большинство аварийных сценариев.

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

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

Любой перезапуск службы srv1cv8 обрывает сеансы пользователей без сохранения несохранённых данных. На рабочем сервере предупредите людей и выбирайте нерабочее время.

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

Можно ли поставить сервер 1С на Linux без графического окружения?
Да. Установщик работает в режиме unattended, служба управляется через systemd, а администрирование — через ras и rac или через консоль на Windows-машине.
Нужна ли отдельная лицензия на сервер для Linux?
Лицензия на сервер 1С одна для любой ОС: и для Windows, и для Linux. Ставить отдельную «линуксовую» не нужно, но активировать её нужно именно на этом сервере.
Можно ли держать на одном сервере две версии платформы?
Да. Каждый релиз ставится в свой каталог в /opt/1cv8/x86_64/. Чтобы службы не конфликтовали, второй экземпляр запускают на других портах и с отдельным каталогом данных.
Как обновить платформу на сервере?
Поставьте новый релиз тем же установщиком, остановите и отключите службу старой версии, подключите и запустите службу новой. Реестр кластера в /home/usr1cv8/.1cv8 сохраняется. Затем обновите клиентов до того же номера.
Где смотреть журнал службы, если что-то пошло не так?
Команда journalctl -u srv1cv8-<версия>@default показывает вывод службы. Технологический журнал платформы включается отдельно, через файл logcfg.xml в каталоге настроек 1С.