Как установить 1С и PostgreSQL на Linux-сервер

Для корректной работы сервера, необходимо открыть порты:

1540 и 1541 для сервера 1С. 1560 — запросы к базе данных.

Для этого запустим следующие команды:

# iptables -I INPUT 1 -p tcp --dport 1540:1541 -j ACCEPT
# iptables -I INPUT 1 -p tcp --dport 1560 -j ACCEPT

Установим iptables-persistent:

# apt -y install iptables-persistent

И сохраним правила с помощью этой команды:

# netfilter-persistent save

В качестве СУБД задействуем PostgreSQL. Для 1С требуется специальная сборка postgresql, которая может быть установлена из специального дистрибутива или от поставщика 1С.

Настраиваем локаль:

# dpkg-reconfigure locales

В открывшемся окне выбираем ru_RU.UTF-8 UTF-8.

В следующем окне также выбираем ru_RU.UTF-8.

Для работы 1С рекомендуется установить специальный выпуск PostgreSQL Pro. Она может быть загружена и установлена бесплатно.

Заходим на страницу 1c.postgres.ru — проходим 3 шага мастера, выбрав нужную версию Postgresql и Linux.

На указанную в форме почту придет инструкция по установке выбранной версии PostgreSQL.

Скачиваем скрипт для установки репозитория:

# curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-13/keys/apt-repo-add.sh

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

# apt-get install gnupg2

Запускаем скачанный скрипт:

# sh apt-repo-add.sh && apt update

Устанавливаем базу данных:

# apt-get install postgrespro-1c-13

Включаем автозагрузку сервиса:

# systemctl enable postgrespro-1c-13

Для инициализации базы данных:

1. Останавливаем сервис

# systemctl stop postgrespro-1c-13

2. Удаляем содержимое каталога data

# rm -rf /var/lib/pgpro/1c-13/data/*

3. Инициализируем базу с использованием русской локали и подстройки под 1С

# /opt/pgpro/1c-13/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8

4. Вновь запускаем сервис

# systemctl start postgrespro-1c-13

Задаем пароль для пользователя postgres:

# su - postgres -c /opt/pgpro/1c-13/bin/psql template
psql (13.2)
Введите "help", чтобы получить справку.

postgres=# ALTER USER postgres with PASSWORD 'password';
ALTER ROLE
postgres=# \q

Для корректной работы сервера 1С необходимо установить:

1. шрифты из состава Microsoft Core Fonts

# apt -y install ttf-mscorefonts-installer fontconfig && fc-cache -fv

2. дополнительные внешние библиотеки:

Для 1с 64 бит

# apt-get -y install imagemagick unixodbc libfreetype6 libgsf-1-common glib2.0

Для 1с 32 бит

# dpkg --add-architecture i386 && sudo apt update
# apt-get install imagemagick-6.q16:i386 imagemagick:i386 unixodbc:i386 libgsf-bin:i386

Для удобства создадим каталоги для deb пакетов:

# mkdir -p ~/srv1c/{srv,hasp}

Скопируем файлы сервера 1С в папку srv, а файлы установки драйвера HASP в папку hasp. Архив с deb пакетами можно загрузить с сайта 1С или получить у поставщика. Загружаем драйвер HASP:

Для ключа 64 бит

# cd  ~/srv1c/hasp/
# wget http://ftp.etersoft.ru/pub/Etersoft/HASP/last/x86_64/Debian/9/haspd-modules_7.90-eter2debian_amd64.deb
# wget http://ftp.etersoft.ru/pub/Etersoft/HASP/last/x86_64/Debian/9/haspd_7.90-eter2debian_amd64.deb

Для ключа 32 бит

# cd  ~/srv1c/hasp/
# wget https://download.etersoft.ru/pub/Etersoft/HASP/last/Debian/9/haspd_7.90-eter2debian_i386.deb
# wget https://download.etersoft.ru/pub/Etersoft/HASP/last/Debian/9/haspd-modules_7.90-eter2debian_i386.deb

Копируем на сервер архив с дистрибутивом 1С в папку ~/srv1c/srv и распаковываем:

Для 1с 64 бит

# cd ~/srv1c/srv
# tar zxvf 8.3.18.891_deb64.tar.gz

Для 1с 32 бит

# cd ~/srv1c/srv
# tar zxvf 8.3.18.891_deb.tar.gz

Устанавливаем пакеты:

# cd ~/srv1c/srv
# dpkg -i 1c*.deb

Делаем симлинк в каталог /etc/init.d на файл srv1cv83:

Для 1с 64 бит

# ln -s /opt/1cv8/x86_64/8.3.18.891/srv1cv83 /etc/init.d/srv1cv83

Для 1с 32 бит

# ln -s /opt/1cv8/i386/8.3.18.891/srv1cv83 /etc/init.d/srv1cv83

Запускаем сервер 1С

# systemctl start srv1cv83

Разрешаем автозапуск сервиса:

# systemctl enable srv1cv83

Понадобятся 32-битные библиотеки:

# apt -y install libc6-i386

И собственно драйвера

# cd ~/srv1c/hasp
# dpkg -i *.deb
# apt -f install

Запускаем

# systemctl start haspd.service

Доступ к серверу лицензий осуществляется по адресу http://host:1947 Если возникает ошибка 403, в /etc/hasplm/ создать файл hasplm.ini. Пример файла:

[SERVER]
name = 1ctest
idle_session_timeout_mins = 720
pagerefresh = 3
linesperpage = 20
ACCremote = 1
enablehaspc2v = 0
old_files_delete_days = 90

enabledetach = 0
reservedseats = 0
reservedpercent = 0
detachmaxdays = 14
commuter_delete_days = 7
disable_um = 0

requestlog = 0
loglocal = 0
logremote = 0
logadmin = 0
errorlog = 0
rotatelogs = 0
access_log_maxsize = 0 ;kB
error_log_maxsize = 0 ;kB
zip_logs_days = 0
delete_logs_days = 0
pidfile = 0
passacc = 0

accessfromremote = 1
accesstoremote = 1
bind_local_only = 0  ; 0=all adapters, 1=localhost only

proxyconnect = 0  ; 0=disabled, 1=WPAD, 2=manual
proxyhost = 
proxyport = 3128


[UPDATE]
download_url = www.safenet-inc.com/hasp/language_packs/end-user
update_host = www3.safenet-inc.com
language_url = /hasp/language_packs/end-user/


[REMOTE]
broadcastsearch = 1
aggressive = 0
serversearchinterval = 30


[ACCESS]


[USERS]


[VENDORS]


[EMS]
emsurl = http://localhost:8080
emsurl = http://127.0.0.1:8080


[LOGPARAMETERS]
text = {timestamp} {clientaddr}:{clientport} {clientid} {method} {url} {function}({functionparams}) result({statuscode}){newline}