Сервер 1С:Предприятия 8.3 на Ubuntu с нуля: от пакетов до первой базы
Содержание
Чтобы установить 1С на Ubuntu, скачайте с портала поддержки архив «Технологическая платформа 8.3. Сервер 1С:Предприятия (64-bit) для DEB-based Linux-систем», запустите из него установщик setup-full-8.3.xx.xxxx-x86_64.run с компонентами server и ws, подключите службу srv1cv8-<версия>@default в systemd и поставьте рядом PostgreSQL в сборке для 1С. Дальше остаются лицензия и создание базы через консоль или rac.
На практике сервер чаще всего не стартует не из-за самой 1С, а из-за мелочей: нет русской локали, имя хоста не резолвится, закрыты порты, PostgreSQL собран без патчей. Если пройти шаги по порядку, эти мелочи не всплывут. Примеры даны для Ubuntu 22.04/24.04 LTS и платформы 8.3.20 и новее; номер 8.3.24.1467 везде подставляйте свой.
1. Подготовка Ubuntu к установке 1С: локаль, имя хоста, пакеты
Начните с чистой серверной Ubuntu LTS и пользователя с правами sudo. Перед установкой сверьте версию дистрибутива с системными требованиями вашей версии платформы: список поддерживаемых систем меняется от релиза к релизу.
Русская локаль
Сервер 1С и PostgreSQL работают с локалью ru_RU.UTF-8. Без неё база создаётся с неверной сортировкой или не создаётся вовсе.
sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8
locale -a | grep ru_RU
Последняя команда должна вывести ru_RU.utf8. После смены локали перезайдите в сессию.
Имя сервера
Клиенты обращаются к серверу 1С по имени, и сам сервер должен это имя знать. Проверьте:
hostname
cat /etc/hosts
В /etc/hosts должна быть строка с реальным IP и именем, например 192.168.1.20 srv1c. Та же запись нужна на клиентских машинах или в DNS. Иначе позже получите «сервер не обнаружен», хотя служба работает.
Зависимости
Набор библиотек зависит от версии платформы, но базовый минимум такой:
sudo apt update
sudo apt install -y fontconfig libfreetype6 libglib2.0-0 libgsf-1-114 \
imagemagick unixodbc ttf-mscorefonts-installer
sudo fc-cache -fv
- 🔤
ttf-mscorefonts-installer— шрифты Arial и Times New Roman. Без них печатные формы и отчёты едут по разметке. - 🖼
imagemagickиlibgsf— работа с картинками и офисными файлами на сервере. - 🔌
unixodbc— нужен, если база обращается к внешним источникам данных.
Если после установки сервер падает при старте, проверьте недостающие библиотеки командой ldd /opt/1cv8/x86_64/8.3.24.1467/ragent | grep "not found". Каждая строка not found — пакет, который надо доставить.
Порты
Если включён ufw, откройте порты сервера 1С. Агент слушает 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591 (он задаётся в свойствах рабочего сервера).
sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
Порт PostgreSQL 5432 наружу открывать не нужно, если СУБД стоит на той же машине.
2. Скачать и установить сервер 1С на Ubuntu
Дистрибутив берут на портале поддержки 1С при активной подписке ИТС или по договору с партнёром. Для Ubuntu нужен вариант именно для DEB-based систем, 64-bit.
Платформа 8.3.20 и новее: единый установщик
С версии 8.3.20 сервер поставляется одним файлом .run в архиве server64_8_3_xx_xxxx.tar.gz. Распакуйте и запустите его без графики:
tar -xzf server64_8_3_24_1467.tar.gz
chmod +x setup-full-8.3.24.1467-x86_64.run
sudo ./setup-full-8.3.24.1467-x86_64.run --mode unattended \
--enable-components server,ws,server_admin
Что ставят эти компоненты:
| Компонент | Что даёт | Когда нужен |
|---|---|---|
server | Агент, менеджер кластера, рабочие процессы | Всегда |
ws | Модуль веб-сервера для публикации | Веб-клиент, HTTP-сервисы, мобильные приложения |
server_admin | Сервер администрирования ras и утилита rac | Управление кластером без Windows-консоли |
Платформа ляжет в /opt/1cv8/x86_64/8.3.24.1467/. Установщик сам создаст системного пользователя usr1cv8, от имени которого работает сервер.
Версии до 8.3.20: deb-пакеты
В старых архивах лежат отдельные пакеты 1c-enterprise-8.3.xx-common, -server, -ws. Их ставят одной командой из папки с файлами:
sudo dpkg -i 1c-enterprise*.deb
sudo apt -f install
Вторая команда дотягивает зависимости, на которые пожаловался dpkg.
Версия сервера и версия клиентов должны совпадать до последней цифры. Клиент 8.3.24.1467 к серверу 8.3.24.1368 не подключится. Планируйте обновление сервера вместе с обновлением клиентов.
3. PostgreSQL для 1С на Ubuntu: какую сборку ставить и как настроить
Обычный PostgreSQL из репозитория Ubuntu для 1С не подходит: платформе нужны доработки, которые есть только в специальных сборках. Варианта два.
| Сборка | Где взять | Особенности |
|---|---|---|
| PostgreSQL от фирмы 1С | Портал поддержки, раздел дистрибутивов СУБД | Бесплатно при подписке, привычный путь для небольших компаний |
| Postgres Pro для 1С (Postgres Professional) | Репозиторий вендора | Свежие версии, отдельные пакеты под 1С, есть коммерческие редакции |
Версию СУБД подбирайте под платформу: в списке поддерживаемых СУБД для каждой версии 8.3 указано, какие версии PostgreSQL с ней проверены.
Инициализация кластера базы данных
Кластер PostgreSQL создавайте с русской локалью. Для сборки 1С это делается при initdb с ключом --locale=ru_RU.UTF-8; у Postgres Pro есть собственный скрипт настройки, он вызывает initdb с нужными параметрами.
После запуска СУБД задайте пароль пользователю postgres — им сервер 1С будет создавать базы:
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'СложныйПароль';"
Для рабочих баз лучше завести отдельную роль с правом создавать базы, а не держать в строке подключения суперпользователя.
Базовая настройка postgresql.conf
Значения по умолчанию рассчитаны на слабую машину. Ориентиры для выделенного сервера 1С с 16 ГБ ОЗУ:
| Параметр | Ориентир | Смысл |
|---|---|---|
shared_buffers | 4GB (около 25% ОЗУ) | Кеш страниц самой СУБД |
effective_cache_size | 10–12GB | Подсказка планировщику о кеше ОС |
work_mem | 32–64MB | Память на одну сортировку |
maintenance_work_mem | 512MB–1GB | Индексы, VACUUM |
max_connections | 200–500 | Под число сеансов и фоновых заданий |
После правки перезапустите СУБД. Если сервер 1С и PostgreSQL на одной машине, в pg_hba.conf достаточно разрешить подключения с 127.0.0.1 по паролю (scram-sha-256 или md5).
4. Запуск службы сервера 1С в systemd
Начиная с 8.3.21 в папке платформы лежит готовый unit-файл. Его подключают в systemd, включают автозапуск и стартуют экземпляр default:
sudo systemctl link /opt/1cv8/x86_64/8.3.24.1467/srv1cv8-8.3.24.1467@.service
sudo systemctl enable srv1cv8-8.3.24.1467@default
sudo systemctl start srv1cv8-8.3.24.1467@default
sudo systemctl status srv1cv8-8.3.24.1467@default
В статусе должно быть active (running). Проверьте, что порты заняты:
sudo ss -tlnp | grep -E '1540|1541'
Данные кластера (список баз, настройки, сеансовые данные) хранятся в домашнем каталоге usr1cv8, обычно /home/usr1cv8/.1cv8/1C/1cv8. Этот каталог стоит включить в резервное копирование
.
Сервер администрирования ras
Чтобы управлять кластером командой rac прямо на Ubuntu, запустите ras. Рядом с основным unit-файлом в той же папке лежит unit-файл для ras (его имя начинается с ras-) — подключите его так же через systemctl link и enable. Для разовой проверки можно запустить вручную:
/opt/1cv8/x86_64/8.3.24.1467/ras cluster --daemon
/opt/1cv8/x86_64/8.3.24.1467/rac cluster list
rac cluster list выведет кластер с его идентификатором (cluster), портом 1541 и именем. Идентификатор понадобится на следующем шаге.
Windows-консоль «Администрирование серверов 1С:Предприятия» тоже работает с Linux-сервером: добавьте центральный сервер по имени (srv1c) с портом 1540. Версия консоли должна совпадать с версией сервера.
Лицензия на сервер
Без серверной лицензии кластер принимает подключения, но базы на нём не запустятся. Вариантов два:
- 🔑 Программная лицензия. Активируется с клиента при первом подключении к базе: мастер запросит пин-код и данные организации. Файлы лицензий на Linux хранятся в
/var/1C/licenses. - 🔐 Аппаратный ключ HASP. Нужен драйвер от производителя ключа (пакет
aksusbd) и проброс USB, если сервер виртуальный.
Не переносите и не копируйте файлы программной лицензии на другую машину вручную — она привязана к параметрам оборудования и после переноса перестанет действовать. Для переезда предусмотрена повторная активация резервным пин-кодом.
5. Создание информационной базы и веб-публикация
Базу можно создать тремя способами. Результат одинаковый: запись о базе в кластере 1С и пустая база данных в PostgreSQL.
| Способ | Где | Удобно, когда |
|---|---|---|
| Окно запуска 1С | Клиентская машина | Одна-две базы, есть Windows-клиент |
| Консоль администрирования | Windows с консолью той же версии | Привычный администратору вариант |
rac | Сам сервер Ubuntu | Скрипты, массовое создание, нет Windows |
Через окно запуска
В списке баз нажмите Добавить, выберите создание новой базы, затем вариант размещения «На сервере 1С:Предприятия». Заполните поля: кластер srv1c, имя базы в кластере, тип СУБД PostgreSQL, сервер баз данных localhost (если СУБД на том же сервере), имя базы в СУБД, пользователь и пароль. Отметьте флажок создания базы данных, если она отсутствует.
Через rac
RAC=/opt/1cv8/x86_64/8.3.24.1467/rac
$RAC infobase --cluster=<id-кластера> create --create-database \
--name=buh --dbms=PostgreSQL --db-server=localhost \
--db-name=buh --locale=ru --db-user=postgres --db-pwd='СложныйПароль' \
--license-distribution=allow
Если не уверены в параметре, посмотрите встроенную справку: rac help infobase. Затем загрузите в пустую базу конфигурацию или выгрузку .dt через Конфигуратор с клиента.
Публикация на Apache
Для веб-клиента и HTTP-сервисов поставьте Apache и опубликуйте базу утилитой webinst (она входит в компонент ws):
sudo apt install -y apache2
sudo mkdir -p /var/www/buh
sudo /opt/1cv8/x86_64/8.3.24.1467/webinst -publish -apache24 \
-wsdir buh -dir /var/www/buh \
-connstr "Srvr=srv1c;Ref=buh;" -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2
База откроется по адресу http://srv1c/buh. Для доступа из интернета публикуйте только по HTTPS и за обратным прокси, а не голым портом 80.
6. Проверка после установки 1С на Ubuntu
Пройдите список до того, как отдавать сервер пользователям. Каждый пункт ловит отдельную классическую проблему.
7. Ошибки при установке 1С на Ubuntu и что с ними делать
Первое место, куда смотреть, — журнал службы:
journalctl -u srv1cv8-8.3.24.1467@default -n 100 --no-pager
Если журнала мало, включите технологический журнал: файл logcfg.xml кладётся в каталог /opt/1cv8/conf/, сервер подхватывает его без перезапуска. Пишите в журнал только нужные события (EXCP, CONN), иначе он за день займёт гигабайты.
Оптимизация после запуска
Когда сервер поднялся, дайте ему ресурсы по нагрузке, а не по умолчанию:
- 💾 Включите своп хотя бы на 4–8 ГБ: при нехватке памяти ядро без свопа убивает рабочий процесс
rphost, и у пользователей обрываются сеансы. - 📂 Держите каталог данных PostgreSQL на SSD отдельно от системного раздела.
- ⚙️ Настройте в консоли ограничения рабочего сервера по памяти, чтобы один тяжёлый отчёт не выедал всё ОЗУ.
- 🧹 Запланируйте регулярный
VACUUM ANALYZEсредствами СУБД в ночное время.
Любой перезапуск службы srv1cv8 или PostgreSQL обрывает сеансы всех пользователей, а несохранённые документы теряются. Делайте это вне рабочего времени и предупреждайте людей заранее.
8. Частые вопросы
Можно ли поставить на Ubuntu клиент 1С, а не только сервер?
setup-full есть компоненты толстого и тонкого клиента (client_full, client_thin). Для работы бухгалтера на Linux-десктопе обычно хватает тонкого клиента.