Установка сервера 1с x86 на AstraLinux 1.8

Представляем Вашему вниманию наше уникальное разработанное решение, которое возникло в ходе решения задачи перехода на отечественное ПО.
В чем его уникальность?
Мы решили несколько важных задач:
- Применили высвободившиеся серверные 32битные лицензии 1С.
- Установили и сконфигурировали 32 разрядный сервер 1С на 64 разрядную ОС Астра Линукс.
- Решили проблему получения клиентских лицензий на рабочих местах, подключенных к нашему 32разрядному серверу с сервера лицензирования х64 на ОС Windows.
Установка сервера 1с будет осуществляться версии x86 (32 битная) на сервер AstraLinux 1.8 x64. Лицензию использовать для 1с сервера x86 и подключение к серверу лицензирования на MS Windows x64
Установка сервера 1с на Astra Linux 1.8 (с отдельным сервером БД)
Стенд:
- 1. Сервер БД на базе Astra Linux 1.8.1.12
- 1.1. Отдельный раздел под базу данных postgres
- 1.2. Отдельный раздел под резервные копии базы данных
- 2. Сервер 1с на базе Astra Linux 1.8.1.12
- 3. Сервер лицензирования MS Windows 2008 R2
Есть ряд особенностей связанных с лицензиями, смотрите внизу статьи под установкой сервера базы данных.
ВАЖНО! Данная инструкция работает на версии 1С 8.3.24.1586 и работает только до версии ОС 1.8.1.12, выше не работает или если обновить, то служба падает. Версия 8.3.27.1688 работает начиная с 1.8.2.X - 1.8.3.X. Все остальные версии 1С не пробовал, но по идеи новые версии должны так же работать и на 1.8.1, а вот если у Вас 1.8.2 или 1.8.3 то лучше использовать свежии версии 1С.
УСТАНОВКА
Сервер 1с
1) Начнем с установки пакетов для 32-х разрядной версии 1с.
sudo apt install -y libc6-i386 ia32-libs gstreamer1.0-plugins-bad
2) Ставим для 1.8 дополнительные пакеты библиотек
sudo apt install libgxps2 libstdc++6-amd64-cross libwebkit2gtk-4.0-37 -fy
3) Теперь так же для 1.8 решаем проблему с evince (просмотрщик pdf)
Загружаем необходимые пакеты:
mkdir /tmp/evincesudo 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.debsudo 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.debsudo 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.debsudo 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.debsudo apt install -y /tmp/evince/*.deb
Загружаем 1с x86 и после загрузки, кидаем в /tmp
P.S.: в моем случае версия 8.3.24.1586! В командах не забываем заменять на свою версию!
cd /tmpunzip /tmp/server32_8_3_24_1586.zip
Тут два варианта установки (в графике или терминале), рассмотрим оба, но приоритетней в терминале
Терминал:
sudo /tmp/setup-full-8.3.24.1586-i386.run --mode unattended --enable-components server,ws,client_full
Графика (опционально):
Запускаем в графике installAsRoot Ставим галки:
- 1. 1С:Предприятие
- 2. Зависимости
- 3. Установить ярлыки
- 4. Сервер 1С:Предприятия 8
- 5. Администрирование сервера 1С:Предприятия
- 6. Сервер хранилища конфигураций 1С:Предприятия
- 7. Дополнительные функции администрирования
4) Переименовываем системные библиотеки, чтобы брал с системы
sudo mv /opt/1cv8/i386/8.3.24.1586/libstdc++.so.6 /opt/1cv8/i386/8.3.24.1586/libstdc++.so.6.old
sudo mv /opt/1cv8/common/libstdc++.so.6 /opt/1cv8/common/libstdc++.so.6.old
5) Накидываем права на 1с
sudo chown -R usr1cv8:grp1cv8 /opt/1cv8
6) Создаем службу
sudo systemctl link /opt/1cv8/i386/8.3.24.1586/srv1cv8-8.3.24.1586@.service
sudo systemctl enable srv1cv8-8.3.24.1586@
sudo systemctl start
sudo systemctl status
На этом установка сервера 1с завершена. Переходим к базе данных.
Установка базы данных
0) У меня созданы два раздела (/data и /backup).
/data - новый раздел под базу данных
/backup - раздел под резервные копии баз
1) Ставим пакет rsync
sudo apt install -y rsync
2) Ставим postgrespro-17
Загружаем сборку postgres 17 - Здесь
Вводим данные на сайте, получаем ссылку на загрузку postgres 17. После загрузки распаковываем архив и ставим все deb пакеты в нем. Вот мой пример, но у меня уже был архив, только назвал его по другому.
tar -xvf /tmp/pg17.tar.gz -C /tmpsudo apt install -y /tmp/pg17/*.deb
Проверяем работоспособность postgres
sudo systemctl status postgrespro-1c-17.service
3) Перенесем нашу базу данных в раздел /data
Тормозим службу postgrespro
sudo systemctl stop postgrespro-1c-17.service
sudo vim /opt/pgpro/1c-17/bin/pg-setup
Заменяем путь к базе данных на новый каталог PGDATA=/data
sudo vim /etc/default/postgrespro-1c-17
Заменяем путь к базе данных на новый каталог PGDATA=/data
Задаем права на новом каталоге
sudo chmod 750 -R /data
sudo chown -R postgres:postgres /data
Копируем postgresql в новый каталог с сохранением меток, для этого пригодится rsync
sudo rsync -av /var/lib/pgpro/1c-17/data/ /data/
sudo vim /data/postgresql.conf
Ищем параметр listen_addresses '*' - ставим звездочку что бы слушать ВСЕ
sudo vim /data/pg_hba.conf
комментируем строчку ipv6,
добавляем подключение к БД только сервера 1с
host all postgres АЙПИ_АДРЕС_1с/32 md5
Переименовываем старую версию базы данных в old
sudo mv /var/lib/pgpro/1c-17 /var/lib/pgpro/1c-17_old
Включаем базу данных
sudo systemctl start postgrespro-1c-17.service
sudo systemctl status postgrespro-1c-17.service
Если статус выдает ошибку, значит где-то накосячили, смотрим инструкцию еще раз.
4) Задаем пароль postgres
Даем 63 права postgres
Переходим в root
sudo -i
pdpl-user -i 63 postgres
su postgres
psql
Задаем пароль postgres
\password postgres
Выходим
\q
Проверяем корректность симлинков
pg_dump
Если ошибок нет, то выходим exit
Если есть, то правим симплинки (слетают после pgadmin)
ln -s /opt/pgpro/1c-17/bin/* /usr/bin/ -f
sudo systemctl enable postgrespro-1c-17.service
На этом настройка сервера базы данных завершена.
Получение лицензии
1) В файле /etc/hosts на машине пользователя, кто будет работать с 1с незабываем прописать наш сервер 1с
sudo vim /etc/hosts
Прописываем запись такого плана IP-адрес HOSTNAME.DOMAIN HOSTNAME
Пример: 192.168.1.50 1c-app.entnet.ru 1c-app
Сохраняем и выходим.
2) Теперь открываем 1с (если первый запуск 1с на клиенте, то предложит сразу добавить информационную базу, соглашаемся на создание новой информационной базы), нажимаем добавить информационную базу и далее создать.
Выбираем создание информационной базы без конфигурации для разработки новой конфигурации...
Вводим название нашего соединения (может быть любое) и ставим галку "На сервере 1С:Предприятия"
Вводим данные сервера 1с, так как в моем случае, сервер 1с и база данных на разных серверах, я прописываю разные ip адреса базы и сервера 1с, если у вас на одном сервере, то указываем 1 ip адрес
- Кластер серверов 1С:Предприятия:ВАШ_IP_СЕРВЕРА_1С
- Имя информационной базы в кластере: любое название, но лучше использовать одинаковые названия с именем базы данных.
- Тип СУБД: PostgreSQL
- Сервер базы данных: IP там где база данных развернута
- Имя базы данных: новое имя базы данных, как будет называться
- Пользователь базы данных: по умолчанию postgres (либо свою, если создавали отдельно)
- Пароль пользователя: (пароль от учетной записи postgres или своей, которую создавали в базе данных учетной записи)
3) Новая база в 1с создалась, теперь давайте к ней подключимся.
При попытке к ней подключитьсчя, получаем сообщение, что лицензия отсутствует. Нажимаем кнопку Получить лицензию.
Нажимаем кнопку "Дополнительно" и вводим IP адрес сервера 1С.
Полученный файл лицензии, он сразу отправит на наш сервер и пропишет его в нужное место. То есть мы запрашиваем лицензию для удаленной машины (сервера) используя свою машину в качестве посредника.
Далее необходимо ввести регистрационный номер и пин-код активации комплекта поставки, снимаем галку с "Автоматическое получение" если сервер не под интернетом и нажимаем далее.
Далее в зависимости от нашей ситуации, выбираем "Первый запуск" или "Восстановление". В моем случае "Первый запуск"
Далее необходимо ввести сведения об организации.
ВАЖНО! Запишите (распечатайте) и сохраните данные сведения в комплекте с документациейй на программный продукт. При повторной активации продукта необходимо ввести регистрационные данные в точности как при первой активации (до каждого символа).
Следующим этапом будет предложен выбор привязки программной лицензии.
ВАЖНО! При выборе привязки к аппаратному ключу необходимо обеспечить его постоянную доступность в сети, а так же наличие на нем не менее 1 свободной лицензии!
После подтверждения выбора необходимо сохранить файл запроса лицензии (если без доступа в инетнет) - выбираем пункт "На электронном носителей (через файл)". Если через интернет, то выбираем "Автоматически"
ВАЖНО! Обратите внимание, что в дальнейшем восстановить лицензию можно только тем способом, которым она активирована.
Сохраняем файл запроса лицензии на компьютер путем нажатия "Сохранить".
Сохраненный файл запроса лицензии переносим на носитель и перемещаемся на интернет. Отврываем сайт центра лицензирования 1С (Если выбрали "На электронном носителе").
4) Объединяем файл ответа с файлом запроса через клиента "1С:Предприятия".
5) Файл лицензии устанавливается на свое место на сервере "1С" (Astra Linux 1.8), но сервер лицензирования его не видит, а вот сервер "1С" его видит и работает. Лицензии с сервера лицензирования не получает из-за того, что не может увидеть лицензию. Вся проблема в правах на файл.
Чтобы получить специальные права нужно:
- 1) либо ввести sudo chmod 2664 /var/1C/licenses/FILE(ВАШ_ФАЙЛ).lic
- 2) либо переустановить сервер 1с, в момент переустановки накинет нужные права на файл с лицензией.
Права должны быть: -rw-rwSr-- usr1cv8 grp1cv8
6) После всех манипуляций, вводим сервер 1с в домен.
Снятие бэкапа и восстановление (бонусом)
Ни один сервер не может обходиться без бэкапов, по этому здесь, в качестве бонуса, рассмотрим самый примитивный, рабочий способ снятия и восстановления бэкапов.
Так как у меня отдельный раздел под backup, то и бэкапить я буду туда.
pg_dump -h localhost -U ВАША_УЗ(в моем случае postgres) ВАШЕ_НАЗВАНИЕ_БАЗЫ_ДАННЫХ | gzip -c --best > /backup/backup_db_NAME_DB_2025-07-11__21-23-20.sql.gz
Вот простой пример команды с подставленными параметрами:
pg_dump -h localhost -U postgres fin_base | gzip -c --best > /backup/backup_db_fin_base_2025-07-11__21-23-20.sql.gz
Отлично, но и самое главное, какой бэкап без его восстановления.
psql -h localhost -U ВАША_УЗ(в моем случае postgres) -d ВАШЕ_НАЗВАНИЕ_БАЗЫ_ДАННЫХ -f /backup/ИМЯ_БЭКАПА.sql
Но, для восстановления бэкапа в новую базу, необходимо создать ее с правильной локалью:
- Переходим в учетную запись postgres
su postgres
- После этого создаем новую базу
createdb --username postgres -T template0 -E UTF8 -l ru_RU.UTF-8 НОВОЕ_НАЗВАНИЕ_БАЗЫ
- Потом восстанавливаем в нее бэкап
psql -h localhost -U postgres -d НОВОЕ_НАЗВАНИЕ_БАЗЫ -f /backup/backup_db...sql

Будьте взаимовежливы и корректны.
Все сообщения проходят премодерацию.
Рекламные сообщения и комментарии с ссылками, не несущими смысловую нагрузку по тематике материала будут удаляться.