📑 Содержание статьи
В этой статье, я хочу показать, как можно легко и просто поставить на Astra Linux 1.8 x64 сервер 1С x86 (32 разрадная версия). Все началось с банального и простого, а именно с импортозамещения на отечественную операционную систему. У нас осталось много старых лицензий сервера 1С x86. Никто не смог поставить и настроить, по этому они просто валялись без дела. Я решил попробовать их задействовать. Методом проб и ошибок, я выработал рабочий алгоритм, при котором сервер 1С x86 работает на системе x64 и успешно подключается к Windows Server x64 (Серверу лицензирования 1С на Windows). На Windows все гораздо проще, ему все равно какое приложение, 32 разрядное или 64 разрядное, а вот Astra Linux нет. Астра хочет видеть 64-разрядное приложение и по этому появился затык с установкой сервера 1С для 32 разрядной версии. Погуглив в интернете, я выяснил что существует лишь одна статья про установку 32-разрядной версии сервера 1С (и то очень старая) на Ubuntu (кажется) и челая куча статей, как поставить на Linux 64-разрядную версию. В этой статье я покажу не только установку сервера 1С, но и поставим базу данных и настроим ПУСК (Панель Управления Сервисами и Компонентами) - проще говоря веб-морда для управления сервером 1С.
💡 Стенд:
- виртуальный сервер Astra Linux 1.8.6.39
P.s.: я лишь в ознакомительных целях и показать алгоритм установки - развернул 1 виртуальный сервер. Если Вас интересует совет, как лучше развернуть сервер 1С, то я рекомендую следующее:.
- 1) Создать, как минимум 2 сервера (сервер 1С, сервер с базой данных);
- 2) На сервере с базой данных создать при установке операционной системы 2 раздела (data, backup). data - будет служить отдельным разделом базы данных (отличным от штатного местоположения), а backup - отдельным разделом под бэкапы базы данных. Когда будут отдельные разделы с базой или бэкапами, проще восстановить и починить, нежели когда все в одном разделе (поверьте мне :D)
Установка сервера 1С x86
Если вы используете корпоративную сеть и у вас есть домен, то вводим первым этапом сервер в домен.

1. Для работы 32-разрядной версии сервера, понадобятся библиотеки для его работы. По этому поставим их.
sudo apt updatesudo apt install -y libc6-i386 ia32-libs gstreamer1.0-plugins-bad

2. Для корректной работы под 1.8, так же поставим дополнительные библиотеки
sudo apt install -y libgxps2 libstdc++6-amd64-cross libwebkit2gtk-4.0-37

3. На 1.8 столкнулся с проблемой с evince (просмотрщик PDF), по этому для решения этой проблемы ставим дополнительные пакеты.
mkdir /tmp/evince
sudo wget -O /tmp/evince/evince-common_43.1-2_all.deb http://ftp.ru.debian.org/debian/pool/main/e/evince/evince-common_43.1-2_all.deb
sudo wget -O /tmp/evince/evince_43.1-2+b1_amd64.deb http://ftp.de.debian.org/debian/pool/main/e/evince/evince_43.1-2+b1_amd64.deb
sudo wget -O /tmp/evince/libevview3-3_43.1-2+b1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/e/evince/libevview3-3_43.1-2+b1_amd64.deb
sudo wget -O /tmp/evince/libevdocument3-4_43.1-2+b1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/e/evince/libevdocument3-4_43.1-2+b1_amd64.deb
sudo apt install -y /tmp/evince/*.deb
4. Заходим в личный кабинет 1С и загружаем установщик сервера 1С


Выбираем интересующую версию, а после выбираем Linux (32-bit).

Нажимаем «Скачать дистрибутив».

В загруженном архиве лежат: установщики (терминальный и графический, документация итд).

5. Закинем установщик для удобства в /tmp и перейдем туда:
cd /tmp
Распакуем архив
unzip /tmp/server32_8_3_27_2214.zip

Тут начинается самое интересное. Начиная с версии 1.8.2, при установке сервера 1С мы можем получить такую ошибку:
Unable to initialize installer.
Is /tmp writable ?
Is SELinux enabled? You may need to disable it temporarily
Please see below for details
http://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3037154

Такую ошибку мы получим если установка будет через терминал. Но в данном архиве есть два бинарника, один для запуска из под пользователя (root в названии файла) в графике - при запуске двойным кликом (при словии что файл имеет права на исполнении chmod +x файл), либо из под админа двойным кликом на обычный бинарный файл, без root в названии (при условии наличия chmod + x на файл). Но если мы запустим тот или другой файл в графике, то не увидем окно с ошибкой, а если мы попытаемся запустить бинарник через терминал ./setup... то получим как раз эту ошибку. В общем если запустили в графике установку и ничего не происходит, попробуйте в терминале запустить бинарник для проверки наличия ошибки.
По результатам 3-х месячного общения с тех.поддержкой Астры, была получена рекомендация внести в параметр ядра один параметр. Для вашего удобства, я обернул этот параметр в одну команду sed, чтобы не лазить в конфиг и не вставлять ее вручную, а просто выполнить одну команду.
sudo sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT="[^"]*\)"/\1 parsec.execstack=1"/' /etc/default/grub

Как можно заметить, параметр это parsec.execstack=1, насколько я понял, бинарник сервера 1С, пытается извлечь какие-то временные файлы в /tmp, на что астра негативно реагирует и блочит данную операцию. Данную теорию подтверждает и другой факт, когда я пытался установить сервер касперского, который тоже лезет в /tmp и я словил такую же ошибку с запретом.
После внесения изменения в параметры ядра Linux, необходимо обновить Grub и перезагрузиться, что мы и сделаем.
sudo update-grubsudo reboot
После перезагрузки, снова кидаем архив 1С в /tmp, распакуем заново:
unzip /tmp/server32_8_3_27_2214.zip
Теперь запускаем установку сервера 1С:
sudo /tmp/setup-full-8.3.27.2214-i386.run --mode unattended --enable-components server,ws,client_full
![]()
Для запуска установки в графике, запускаем двойным кликом по файлу (как в Windows) installAsRoot и выбираем компоненты.
📑 Выбираем параметры
- 1. 1С:Предприятие
- 2. Зависимости
- 3. Установить ярлыки
- 4. Сервер 1С:Предприятия 8
- 5. Администрирование сервера 1С:Предприятия
- 6. Сервер хранилища конфигураций 1С:Предприятия
- 7. Дополнительные функции администрирования
Но так как сервер у меня без графики, по этому мне это не интересно, меня интересует установка без графики.
6. Теперь необходимо переименовать встроенные библиотеки в 1С. Дело в том, что при запуске 1С, он берет две библиотеки встроенных, но из-за расхождения версий библиотек с системными, мы можем словить ошибки запуска. Для того, чтобы этого избежать и чтобы сервер 1С брал библиотеки с системы, а не у себя, мы переименуем их.
sudo mv /opt/1cv8/i386/8.3.27.2214/libstdc++.so.6 /opt/1cv8/i386/8.3.27.2214/libstdc++.so.6.old
sudo mv /opt/1cv8/common/libstdc++.so.6 /opt/1cv8/common/libstdc++.so.6.old
![]()
7. Накинем права пользователя 1С на всякий случай
sudo chown -R usr1cv8:grp1cv8 /opt/1cv8

8. Завершающим этапом, нам нужно создать службу, которая будет запускать сервер 1С даже после нештатной перезагрузки сервера.
Создаем линк службы
sudo systemctl link /opt/1cv8/i386/8.3.27.2214/srv1cv8-8.3.27.2214@.service
![]()
Добавляем службу в автозагрузку
sudo systemctl enable srv1cv8-8.3.27.2214@
Включаем службу
sudo systemctl start srv1cv8-8.3.27.2214@default.service
Проверим статус службы
sudo systemctl status srv1cv8-8.3.27.2214@default.service

Все, на этом установка сервера 1С завершена. Что тут сложного скажете вы? Чтобы разобраться с ошибкой установки 1С, мне потребовалось 3 месяца общения с технической поддержкой Астры. Чтобы понять, какие библиотеки поставить и как решить проблемы с evince и так далее, потребовалось тоже время.
По поводу лицензии и подключение сервера к серверу лицензирования 1С на Windows.
Я пытался найти в интернете информацию и нашел в основном утверждения, что такая связка работать не будет. Знакомый, который учился и работал с 1С, тоже сказал что такая связка работать не будет. Решил написать в тех.поддержку 1С, где мне ответили «У вас нестандартная работы приложения», короче они не знают, будет работать или нет. Лишь под одной статьей, в комментариях нашел комментарий, что работать будет. По итогу скажу я вот что, да, такая связка работать будет. Лично настраивал и все прекрасно работает.
Многие привыкли запрашивать лицензию через клиента 1С, ставят на сервер клиент, заходят и запрашивают лицензию (из-за чего у многих возникла проблема с 32-битным сервером, так как он не запустится на 64-х битном сервере). Есть два варианта, как запросить лицензию. Когда я первый раз ставил и настраивал, я изучал документацию 1С и узнал, что есть утилита Ring специально для Linux и терминала, где можно сформировать запрос. Потом применить файл ответа и получить файл с лицензией. Если будет интересно, могу создать отдельную статью, как сделать это через Ring, я ведь освоил этот дзен :D Но есть способ в разы проще. Запускаем на любом компьютере клиент x64, создаем тестовую базу (после настройки сервера БД) и пытаемся подключиться к ней, получаем ошибку об отсутствии лицензии, нажимаем запросить. Откроется окно с вводом данных, нажимаем дополнительно и ставим галочку на удаленный сервер. Вводим данные нашего сервера и какой смысл, мы заполняем данные, формируем файл запроса, отправляем его в 1С, получаем файл ответа. Загружаем в клиента и он формирует файл лицензии и сам отправляет его на сервер 1С который мы указали в дополнительно. Подробнее про получении лицензии описано здесь (скоро).
Установка базы данных
Базу данных можно ставить как на сервер 1С, так и на отельный сервер. В моем примере я буду ставить на один сервер с 1С. Все отличие лишь в том, что в конфиге postgres, мы укажем сервер 1С.
1. Для оптимизированной работы 1С, мы будем использовать специальную сборку postgrespro для 1С. Для этого заходим на официальный сайт postgrespro для 1С, заполняем данные для бесплатной версии под 1С. По заполнению и отправке данных, нам отправят на почту ссылку на скрипт с установкой. Я не особо хочу добавлять репозиторий postgrespro в свою астру, по этому я перешел по ссылку в почте на скрипт, открыл его и извлек ссылку на репозиторий с пакетами, откуда будут загружаться пакеты. Произвел вручную загрузку этих пакетов (20 штук) и их установку.


Заполняем данные для получения беслпатной сборки.

После заполнения анкеты, на почту сразу придет письмо с ссылкой на скрипт. Который пропишет репозиторий и произведет установку 20 пакетов.

Но как говорил ранее, я не хочу запускать скрипты, я взял ссылку из скрипта и произвел загрузку с репозитория вручную.


Так как астра построена на базе Debian, то загружать мы будем пакеты для debian.

Как видим, тут пакеты для Debian 12 (Bookworm) и Debian 13 (Trixie), Astra Linux 1.8 построена на Debian 12, по этому загружаем все пакеты в названии которого есть bookworm.
![]()


2. Создал в /tmp каталог pg18, закинул туда эти 20 пакетов и произвел установку.
sudo apt install -y /tmp/pg18/*.deb

Проверим состояние базы данных
sudo systemctl status postgrespro-1c-18.service

Если зеленый Active, значит база данных установилась и работает. Значит можно переходить к 3-ему пункту.
3. Поставим пакет rsync для копирования базы данных в другую директорию (чтобы не мудрить с правами)
sudo apt install -y rsync

4. Как говорил ранее, я советую перенести базу данных в другую директорию. По этому я покажу в данном примере, как это сделать. В идеале, во время установки операционной системы, нужно создать отдельный раздел /data, я же просто создам директорию в корне data и перенесу в нее базу.
sudo mkdir /data

Далее останавливаем базу данных.
sudo systemctl stop postgrespro-1c-18.service
![]()
Переписываем путь к новому местоположению базы данных в конфигах:
sudo vim /opt/pgpro/1c-18/bin/pg-setup
![]()
Заменяем на
PGDATA=/data
![]()
Так же делаем и в другом конфиге:
sudo vim /etc/default/postgrespro-1c-18
![]()
![]()
Заменяем на
PGDATA=/data
![]()
Накидываем права на новую директорию
sudo chmod 750 -R /data
sudo chown -R postgres:postgres /data
![]()
Переносим базу в новую директорию с сохранением прав
sudo rsync -av /var/lib/pgpro/1c-18/data/ /data/

Поправим конфиги, укажем кто может подключаться к базе:
sudo vim /data/postgresql.conf

Ищем параметр listen_addresses '*' - ставим звездочку что бы слушать все.
sudo vim /data/pg_hba.conf
![]()


Ищем и комментируем строчку ipv6 а так же добавляем подключение к БД только сервера 1С (только если сервер 1С отдельный от базы данных)
![]()
Если сервер 1С отдельно, то добавляем еще строчку в IPv4, как показано ниже
host all postgres АЙПИ_АДРЕС_1с/32 md5
Переименовываем старую версию базы (на черный день :D) в old
sudo mv /var/lib/pgpro/1c-18 /var/lib/pgpro/1c-18_old
![]()
Запускаем базу данных
sudo systemctl start postgrespro-1c-18.service
Проверяем статус и местоположение базы.
sudo systemctl status postgrespro-1c-18.service

Если статус выдает ошибку, значит где-то накосячили, смотрим инструкцию еще раз.
5. Задаем пароль postgres
Даем 63 права postgres (если релиз смоленск или воронеж)
Переходим в root
sudo -i
накидываем права
pdpl-user -i 63 postgres
su postgres
psql

Задаем пароль postgres
\password postgres

Выходим
\q
6. Проверяем корректность симлинков
pg_dump
Если ошибок нет, то выходим exit

Если есть, то правим симлинки (слетают после pgadmin)
ln -s /opt/pgpro/1c-18/bin/* /usr/bin/ -f
Добавляем службу postgrespro в автозагрузку
sudo systemctl enable postgrespro-1c-18.service
На этом установка и настройка базы данных для 1С завершена.
Резюмируя, мы установили сервер 1С 32-разрядной версии на Astra Linux 1.8.6.39 без графики, установили на него параллельно базу данных. Осталось применить лицензию и сервер готов к работе. В следующей части, мы установим веб-морду для управления нашим сервером 1С в браузере, как раньше это делали в Windows.

Установка ПУСК «Панель Управления Сервисами и Компонентами»

Мы привыкли использовать виндовые консоли администрирования для управления сервером 1С. Но допустим взять ситуацию нашу, у нас сервер на Astra Linux да и еще без графики, а свободных Windows машин в нашем парке нету или вообще их нету, то как администрировать сервером? Есть три варианта:
1) Можно управлять через клиента 1С на любом компьютере для подключения к базе в 1С;
2) Можно управлять сервером в терминале через утилиту ras (но это сложно).
3) Можно управлять с помощью стороннего веб-приложения, как ПУСК. Я покажу как использовать этот вариант.
1. Переходим на официальный сайт ПУСК от itexpertise
Загружаем ПУСК.

Я ставил версию 1.2.3, но у нее отсутствовала поддержка ssl, по этому я обернул ее через обратный прокси nginx, чтобы задействовать ssl, а в версии 1.3.1 добавили эту поддержку, но когда готовил материал еще не разобрался как это настроить, по этому будем постаринке, через обратный прокси.
2. ПУСК работает на Java, по этому поставим его.
sudo apt install openjdk-17-jre-headless -y

Проверяем версию Java.
sudo java --version

Но помимо Java, нужны библиотеки для работы с 1С, в документации об этом прямо говорится.
Качаем библиотеки java для 1С согласно инструкции.


Тут можете самостоятельно загрузить с официального сайта (прямая ссылка на библиотеки), но я же предлагаю загрузить пересобранный архив, так как загружая с сайта 1С, у архива большая вложенность самих библиотек, скриншот ниже. Я же упаковал все необходимое в один архив (lib_1C.zip), его я подкрепил внизу статьи в «Прикреплённые файлы».

Переходим в директорию /opt/pusk/lib и туда закидываем архив lib_1C.zip
cd /opt/pusk/lib
Далее извлекаем содержимое архива:
sudo unzip /opt/pusk/lib/lib_1C.zip
После успешного извлечения возвращаемся в /opt/pusk
cd /opt/pusk
3. Запускаем установку
sudo ./ite-pusk-linux.sh install

После установки, запускаем службу и проверяем ее.
sudo service ite-pusk start
sudo service ite-pusk status

4. Переходим в браузер и вводим либо localhost:8080 если вы заходите в браузере на сервере или если сидите на другой машине, то вводим IP-адрес сервера и порт 8080 (IP-адрес:8080), после этого попадаем на страницу веб-консоли администрирования 1С.

Сейчас любой может зайти и делать что хочет. Так дело не пойдет, по этому первым делом, создадим локального администратора. Справа нажимаем «Администрирование».

Задаем логин и пароль, после обновления страницы, у нас запрашивает логин и пароль. Теперь мы закрыли доступ к панели всем и вся.

Теперь снова идем в настройки. Для удаленного управления сервером нам потребуется запуск утилиты ras. Ее можно запустить вручную на сервере командой:
sudo /opt/1cv8/i386/8.3.27.2214/ras cluster --daemon
либо это можно сделать через веб-консоль, что мы и сделаем (зачем лазить на сервак, если можно это сделать не отходя от кассы?)
Идем в настройки, накинем темную тему для красоты и укажем путь до ras.


Нажимаем слева где службы, добавить → «службу сервера администрирования ras».

Нас интересует путь к исполняемому файлу ras.

Вводим реальный путь до ras:
/opt/1cv8/i386/8.3.27.2214/ras

Далее нам нужно изменить «Версия V8» и вписать путь до расположения 1С.
Вводим путь:
/opt/1cv8/i386/8.3.27.2214/


Потом нажимаем сохранить и видим статус создания службы.
![]()
Видим что она появилась, но горит красным (незапущена).

Нажимаем правой кнопкой на нее и запускаем ее.


Служба успешно запустилась и теперь не горит красным.

Отлично, теперь нужно добавить сервер для его администрирования. Так как ПУСК установлен локально, где и сервер 1С, то указываем localhost.


Сервер добавлен успешно.


В целом на этом все, когда ваш сервер будет в рабочем состоянии (лицензия применена, базы созданы), будет больше информации и статистики. Можно завершать сеансы пользователей, видеть кто и с чем работает, а так же создать локального администратора кластера (рекомендую кстати обязательно это сделать!).
5. Осталось добавить обратный прокси для рыботы по https и убрать порт из адреса.
![]()
Сейчас мы ходим по http://IP-адрес:8080. Согласитесь, не секьюрно, да и еще порт 8080 вводить нужно. Щас мы это дело поправим. Как говорил ранее, что в 1.3.1 добавили поддержку ssl, но я еще не разобрался. По этому буду делать, как делал со старой версией 1.2.3.
Создадим локальное хранилище под самоподписанный сертификат.
sudo mkdir -p /etc/ssl/localcerts
Перейдем в него:
cd /etc/ssl/localcerts
Теперь сгененируем сертификат сервера:
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -x509 -key server.key -out server.crt -days 3650 -subj "/C=RU/ST=NN/L=NN/O=CORP/CN=astraops"
Накинем права:
sudo chmod 600 server.key
sudo chmod 644 server.crt

Поставим nginx для обратного прокси.
sudo apt install -y nginx
Созаздим кастомный конфиг для nginx:
sudo vim /etc/nginx/sites-available/pusk-ssl
![]()
server {
listen 80;
server_name _
localhost
astraops.ru;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _
localhost
astraops.ru;
ssl_certificate /etc/ssl/localcerts/server.crt;
ssl_certificate_key /etc/ssl/localcerts/server.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers
ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
add_header Strict-Transport-Security "max-age=63072000" always;
location / {
proxy_pass http://127.0.0.1:8079;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
access_log /var/log/nginx/pusk-access.log;
error_log /var/log/nginx/pusk-error.log;
}

Создаем симлинк нашего конфига:
sudo ln -s /etc/nginx/sites-available/pusk-ssl /etc/nginx/sites-enabled/
![]()
Проверяем, что в конфиге нет ошибок:
sudo nginx -t

Теперь нужно изменить стандартный порт с 8080 на кастомный 8079:
переходим в директорию /opt/pusk/data/
cd /opt/pusk/data/
Копируем пример конфига
sudo cp application.properties.sample application.properties
Теперь открываем новый конфиг и правим его:
sudo vim application.properties
Комментируем первую строчку server.port=, а под ней создаем новые:
server.port=${PORT:8079}
server.address=127.0.0.1
Сохраняем и перезапускаем nginx и пуск:
sudo systemctl reload nginx
sudo service ite-pusk restart
Проверяем
![]()
Отлично, теперь у нас https и нету порта в названии.
То есть проект работает локально на порту 8079 и проксирует его на ip-адрес на 443 порт по https.
На этом мы закончим. Основную базу для работоспособного сервера я донес, а улучшать можно долго) Благодарю за внимание, что дочитали до этих слов!