Привет! Сегодня разберём, как на свежую Ubuntu (18.04 / 20.04 / 22.04) поставить сервер 1С:Предприятие 8.3 с PostgreSQL и веб-публикацией. Пока не проверял, так чисто стартовая статья, потом доработаю. Это не "теория про IT-инфраструктуру", а именно рабочий сценарий — без лишних пакетов, без лицензионной магии и с акцентом на то, что реально работает. Всё делаем вручную, без "умных" установщиков, чтобы потом не удивляться, почему ничего не запускается.
1. Подготовка системы
Имя сервера — не опционально
1С не любит безымянных машин. Задайте имя и пропишите его в /etc/hosts, особенно если DNS у вас "потом сделаю".
hostnamectl set-hostname server1c.local
echo "127.0.1.1 server1c.local" | sudo tee -a /etc/hosts
Брандмауэр
Открыть нужно три порта:
1540-1541— для кластера 1С1560— для взаимодействия с базой (если включён внешний доступ)80— если хотите веб-доступ
Если используете UFW:
ufw allow 1540:1541/tcp
ufw allow 1560/tcp
ufw allow 80/tcp
2. Установка PostgreSQL для 1С
Не обычная PostgreSQL, а специальная сборка от Postgres Pro, адаптированная под 1С. Обычная PostgreSQL не поддерживает нужные для платформы 1С расширения.
Установка локалей
apt install -y locales
locale-gen ru_RU.UTF-8 en_US.UTF-8
update-locale
Добавление репозитория Postgres Pro 15 для 1С
Скрипт от Postgres Pro сам определит вашу ОС и архитектуру.
curl -sLO https://repo.postgrespro.ru/1c/1c-15/keys/pgpro-repo-add.sh
sudo sh pgpro-repo-add.sh
Установка СУБД
apt install -y postgrespro-1c-15
Инициализация кластера
Сначала остановим службу и очистим пустой каталог data, иначе initdb не запустится.
systemctl stop postgrespro-1c-15
rm -rf /var/lib/pgpro/1c-15/data/*
/opt/pgpro/1c-15/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8
systemctl start postgrespro-1c-15
Пароль для пользователя postgres
Не забудьте убрать пароль из истории:
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'ваш_надёжный_пароль';"
history -d $((HISTCMD-1))
3. Установка сервера 1С
Зависимости
apt install -y imagemagick unixodbc ttf-mscorefonts-installer
Распаковка дистрибутива
Дистрибутив берётся из личного кабинета 1С. Допустим, у вас архив 8.3.25.1336.tar.gz.
mkdir 1c_install
tar -zxf 8.3.25.1336.tar.gz -C 1c_install/
Установка пакетов
dpkg -i 1c_install/1c-enterprise83*.deb
Настройка systemd
Найдите путь к .service-файлу:
find /opt -name "srv1cv8*service"
Скопируйте его в /etc/systemd/system:
cp /opt/1cv8/x86_64/8.3.25.1336/srv1cv8-8.3.25.1336@.service /etc/systemd/system/srv1cv83.service
systemctl daemon-reload
systemctl enable srv1cv83
systemctl start srv1cv83
4. Первичная настройка кластера
Подключитесь с любого ПК в сети через "Утилиту администрирования серверов 1С". Создайте кластер, укажите:
- Сервер БД:
localhost - Пользователь:
postgres - Пароль: тот, что задали выше
- Галочку "Создать базу данных в случае отсутствия"
Если выскакивает "Этот хост неизвестен" — проверьте разрешение имени сервера. Лучше всего использовать IP или прописать в hosts.
5. Веб-публикация через Apache
1С поддерживает веб-клиент через Apache + модуль webinst.
Установка Apache
apt install -y apache2
systemctl enable apache2
systemctl start apache2
Публикация базы
Предположим, у вас база называется prod и сервер доступен по IP 192.168.1.10.
DBNAME=prod
SERVER1C=192.168.1.10
mkdir -p /var/www/html/$DBNAME
# Узнаём путь к установленной версии 1С:
# systemctl status srv1cv83 → смотрим путь к ragent
cd /opt/1cv8/x86_64/8.3.25.1336/
./webinst -apache24 -wsdir $DBNAME -dir /var/www/html/$DBNAME -connstr "Srvr=${SERVER1C};Ref=${DBNAME};" -confPath /etc/apache2/apache2.conf
systemctl restart apache2
Теперь база доступна по адресу: http://192.168.1.10/prod
6. Обновление сервера 1С
Обновление — это почти та же установка, только с заменой systemd-юнита.
systemctl stop srv1cv83
# распаковываем новую версию → dpkg -i *.deb
# находим новый .service → копируем поверх старого
cp /opt/1cv8/x86_64/8.3.26.1500/srv1cv8-8.3.26.1500@.service /etc/systemd/system/srv1cv83.service
systemctl daemon-reload
systemctl start srv1cv83
7. Важно: не обновляйте PostgreSQL!
Если вы случайно обновите postgrespro-1c-15 через apt upgrade, вы получите обычную PostgreSQL — и 1С перестанет работать с базой.
Зафиксируйте версию:
apt-mark hold postgrespro-1c-15 postgresql-client-1c-15
Заключение
Всё. Сервер 1С на Linux — это не миф и не "костыль", а вполне рабочее решение, особенно если вы готовы немного поковыряться в терминале. Главное — не пытайтесь совместить "обычную" PostgreSQL с 1С, не пропускайте локаль ru_RU.UTF-8, и не забывайте, что веб-клиент — это отдельная компонента, зависящая от Apache.
Если у вас есть старая файловая база — выгружайте через конфигуратор в .dt и загружайте в новую PostgreSQL-базу. Это самый надёжный универсальный способ миграции.
Удачи, и пусть ваши сервера не падают в пятницу вечером!
Комментарии
Пока нет комментариев. Будьте первым!