Разворачиваем сервер 1С:Предприятия 8.3 и PostgreSQL на Linux с нуля
Содержание
Чтобы установить 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 |
| 5432 | PostgreSQL | только если СУБД на другой машине |
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С:Предприятия. - Заполните поля: кластер серверов
—
srv1c, имя базы в кластере —buh, сервер баз данных —localhost(или имя сервера СУБД), тип СУБД —PostgreSQL, база данных —buh, пользователь —postgresи пароль. - Отметьте
Создать базу данных в случае её отсутствияи нажмитеДалее.
Имя «сервер баз данных» указывается с точки зрения сервера 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 из старой базы.
Проверка
Последний пункт часто откладывают. Не надо: регулярный pg_dump по расписанию плюс периодическая выгрузка .dt закрывают большинство аварийных сценариев.
Типовые ошибки при установке и их причины
Любой перезапуск службы srv1cv8 обрывает сеансы пользователей без сохранения несохранённых данных. На рабочем сервере предупредите людей и выбирайте нерабочее время.