Установка 1С Предприятие на Ubuntu 22.04 с PostgresQL и Apache 2024

Установка 1С Предприятие на Ubuntu 22.04 с PostgresQL и Apache 2024

Достаточно давно была опубликована статья о установке 1С Предприятия 8 на рабочую станцию Ubuntu. Прошло большое количество лет и то что раньше было экзотикой - постепенно становится все более и более привлекательным для организаций.

А учитывая последние события - для ряда предприятий еще и безальтернативным способом.

Что ж. В данной статье мы с нуля поставим современный дистрибутив 1С на версию Ubuntu 22.04 - это дистрибутив с долговременной поддержкой.

Сначала добавляем с список источников получения пакетов новый источник (в нем будет одна нужная библиотека):

sudo nano /etc/apt/sources.list

В конец файла добавляем:

deb http://cz.archive.ubuntu.com/ubuntu focal main universe

Запускаем получение списка новых пакетов,обновление на них и установку библиотеки:

sudo apt-get update

sudo apt-get upgrade

sudo apt install libenchant1c2a imagemagick unixodbc libgsf-1-114 ttf-mscorefonts-installer

Пакет ttf-mscorefonts-installer попросит принять лицензию — соглашаемся. Очищаем и формируем новый кеш шрифтов:

sudo fc-cache -f -v

Ставим русскую локаль:

sudo dpkg-reconfigure locales

Выбираем вдобавок к английской еще и ru_RU.UTF-8 UTF-8

Идем на сайт postgrespro https://postgrespro.ru и скачиваем 15 версию Postgresql. Прямой ссылки на сайте нет, надо оставить свой емайл и данные организации и вам на почту придет ссылка на файлик для добавления нового источника списка пакетов. Закачиваем его на наш Ubuntu сервер и запускаем:

wget https://repo.postgrespro.ru/1c-15/keys/pgpro-repo-add.sh

sh pgpro-repo-add.sh

apt-get install postgrespro-1c-15-contrib

/opt/pgpro/1c-15/bin/pg-setup service enable

/opt/pgpro/1c-15/bin/pg-setup service start

В строках 1 и 2 скачали файл добавления репозитария, 3 строка установка postgrespro, 4 и 5 строка добавление в автозапуск этого сервиса.

Давайте взглянем на статус установленного сервиса:

sudo systemctl status postgrespro-1c-15

status_postgres.png


 

Сервис запущен и работает.


 

Нам остается задать пароль для нашего рута postgres от имени которого мы и будем создавать и подключать базы на “Сервере 1С” (вместо слова в кавычках password введите свой пароль):

sudo -u postgres /opt/pgpro/1c-15/bin/psql

ALTER USER postgres WITH PASSWORD 'password';

\q

 

Обратите внимание на последнюю строку — это мы выходим из psql.

Скачиваем с сайта 1С дистрибутив 1С - server64_8_3_24_1586.zip и сохраняем на Ubuntu. Распаковываем и запускаем:

 

unzip server64_8_3_24_1586.zip

sudo -s

./installAsRoot

 

В данном случае мы устанавливаем кластер серверов 1С, сервер администрирования кластера и модули расширения веб-сервера в пакетном режиме.

С версии 8.3.21 1С стал использовать подсистему systemd. В состав дистрибутива включен systemd-сценарий запуска кластера серверов и сервера администрирования (ras) и их конфигурационные файлы. Он находится в папке с платформой – /opt/1cv8/x86_64/номер платформы.

Ниже мы включаем сервис 1С, ставим его в автозагрузку и проверяем статус:

 

systemctl link /opt/1cv8/x86_64/8.3.24.1586/srv1cv8-8.3.24.1586\@.service

sudo systemctl start srv1cv8-8.3.24.1586@default.service

sudo systemctl enable srv1cv8-8.3.24.1586@default.service

sudo systemctl status srv1cv8-8.3.24.1586@default.service

 

Устанавливаем Apache2:

 

apt install apache2

sudo systemctl status apache2

 

Запускаем кластер управления:

 

/opt/1cv8/x86_64/8.3.24.1586/ras --daemon cluster

 

Получаем ИД кластера:

 

/opt/1cv8/x86_64/8.3.24.1586/rac cluster list

 

Создаем администратора кластера с ранее полученным ИД (внимание! Включайте мозги — вместо слова login и password добавляете свой логин и пароль):

 

/opt/1cv8/x86_64/8.3.24.1586/rac cluster admin --cluster=15d8a8bc-1aba-4031-9429-389b92a5491d register --name=login --pwd=password —auth=pwd

 

Создаем саму базу с названием unf (опять внимание — в конце выполнения этой команды вы получите ИД базы:

 

sudo /opt/1cv8/x86_64/8.3.24.1586/rac infobase create --cluster=15d8a8bc-1aba-4031-9429-389b92a5491d --cluster-user=login --cluster-pwd=password --create-database --name= unf --descr=mybase --dbms=PostgreSQL --db-server=localhost --db-name= unf --locale=ru --db-user=postgres --db-pwd=password --license-distribution=allow —scheduled-jobs-deny=off

 

Обращаем внимание на 2 параметра: --license-distribution=allow (это значит мы будем получать лицензии) и --scheduled-jobs-deny=off (это значит включаем запуск регламентных заданий на вновь создаваемой базе).

 

Однако сама по себе создаваемая база будет пустой — значит надо в нее закачать dt с полученной вами у кого нибудь базой:

 

sudo /opt/1cv8/x86_64/8.3.24.1586/ibcmd infobase restore --db-server=localhost --dbms=PostgreSQL --db-name=unf --db-user=postgres --db-pwd=password "/home/ubuntu/unf.dt"

 

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

 

Создаем пустую папку в которой будут настройки:

sudo mkdir -p /var/www/1c/unf

 

Создаем пустой файлик с настройками:

sudo touch /etc/apache2/conf-available/unf.conf

 

переходим в каталог 1С:

cd /opt/1cv8/x86_64/8.3.24.1586

 

запускаем утилиту генерации настроек подключения к 1С через apache2:

sudo ./webinst -apache24 -wsdir unf -dir '/var/www/1c/unf' -connstr 'Srvr="localhost";Ref="unf";' -confPath /etc/apache2/conf-available/unf.conf

 

Говорим apache2 подхватить настройки:

sudo a2enconf unf

 

Перезапускаем apache2:

sudo systemctl restart apache2

 

На этом этапе вы вполне можете открыть вашу базу через незащищенное соединение. Например если у вас IP 31.12.133.41 то строка доступа к базе:

http:// 31.12.133.41/unf. Однако в целях безопасности крайне желательно получить какой нибудь домен, получить на него сертификат, закрыть порт 80 и открыть 443 и входить в базу по этому домену. Например у вас есть домен https://test.ru. У вашего провайдера в настройках DNS записей устанавливаете запись А вашего домен (https://test.ru) на ваш IP 31.12.133.41

И подключаетесь к базе по адресу:

https://test.ru/unf

Установка сертификатов SSL для доступа к базе через защищенное соединение:

 

sudo apt install snapd

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

sudo certbot --apache

 

Эта утилита задаст ряд вопросов самыми главными из которых будут емайл и домен доступа.

 

После этого перезагружаем apache2:

sudo systemctl restart apache2

 

Закрываем порт 80 и открываем 443

sudo ufw deny 80/tcp

sudo ufw allow 443/tcp

 

Теперь вместо небезопасного протокола http:// 31.12.133.41/unf вы можете подключаться по https://test.ru/unf.

Ну вот и все (хотя на самом деле нет — надо настроить систему бэкапов, реиндексации баз, запустить vacuumdb у postgres, но это все другая история).

Обращайтесь к нам если вам нужно настроить 1С на Linux. Телефон +7 (495) 109-04-3


0 комментариев.

Ваш комментарий

Required for comment verification