Установка сервера 1С версии 8.3 на Debian 8.3 x64

Установка будет производится на виртуальную машину на Linux-гипервизоре KVM.
Исходные параметры:
Хост-ПК:
Процессор: Intel(R) Core(TM) i5-3550S CPU @ 3.00GHz
Память: 22 704 240 кБ
Операционная система: Debian GNU/Linux 8 (jessie), версия 8.3 x64
Виртуальный-ПК:
Память: 1 024 332 кБ
Операционная система: Debian GNU/Linux 8 (jessie), версия 8.3 x64
проброс HASP-а:
<hostdev mode='subsystem' type='usb' managed='no'>
  <source>
    <vendor id='0x0529'/>
    <product id='0x0001'/>
    <address bus='2' device='3'/>
  </source>
  <alias name='hostdev0'/>
</hostdev>
Речь пойдёт об установке сервера 1С8 версии 8.3.8, PostgreSQL 9.4.2-1.1C. Драйвер HASP: haspd_7.40-eter8debian_amd64.
Итак:

1. Подготовка

Подробнее о настройке PostgreSQL

Немного тюнинга
#p=2;page_size=`getconf PAGE_SIZE`;phys_pages=`getconf _PHYS_PAGES`;shmall=`expr $phys_pages / $p`;shmmax=`expr $shmall \* $page_size`;echo kernel.shmmax = $shmmax;echo kernel.shmall = $shmall
kernel.shmmax = 524455936
kernel.shmall = 128041
где: p — часть памяти для postgresql, в данном случае половина

Скопипастил здесь

# echo "kernel.shmmax = 2746667008"  >> /etc/sysctl.conf
# echo "kernel.shmall = 670573" >> /etc/sysctl.conf 
# sysctl -p 
kernel.shmmax = 2746667008
kernel.shmall = 670573

Добавляем локализацию «en_US»:

# echo en_US ISO-8859-1 >> /etc/locale.gen
# locale-gen
Generating locales (this might take a while)...
  ru_RU.UTF-8... done
  en_US.ISO-8859-1... done
Generation complete.
Определяю место под deb-пакеты
# cd ~
# mkdir -p 1c83/{pg,srv,hasp}

2. PostgreSQL

Подготовка

# cd 1c83/pg
# apt-get install libxslt1.1 ssl-cert

Загрузка

# wget http://ftp.de.debian.org/debian/pool/main/i/icu/libicu48_4.8.1.1-12+deb7u3_amd64.deb
или здесь

Установка

# dpkg -i libicu48_4.8.1.1-12+deb7u3_amd64.deb
затем:
# dpkg -i libpq5_9.4.2-1.1C_amd64.deb
# dpkg -i postgresql-client-common_154.1.1C_all.deb
# dpkg -i postgresql-common_154.1.1C_all.deb
# dpkg -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb
# dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb
# dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb

Настройка

  • остановить
# service postgresql stop
 
  • отредактировать
# cat /etc/postgresql/9.4/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

local   all             postgres                                peer
local   all             all                                     md5

host    all             all             192.168.2.8/24          md5
host    all             all             127.0.0.1/32            md5
 
  • запустить
# service postgresql start
 
  • изменить пароль:
# su - postgres -c psql template
psql (9.4.2, сервер 9.4.6)
Введите "help", чтобы получить справку.

postgres=# ALTER USER postgres with PASSWORD 'pg5ql1c8';
ALTER ROLE
postgres=# \q
 
  • перезапустить
# service postgresql restart

Отключить обновление для пакетов 1С-овского PostgreSQL

  • что установлено
# dpkg -l |grep -E "post|pq5"
ii  libpq5:amd64		      9.4.2-1.1C	amd64	PostgreSQL C client library
ii  postgresql-9.4		9.4.2-1.1C	amd64	object-relational SQL database, version 9.4 server
ii  postgresql-client-9.4	9.4.2-1.1C	amd64	front-end programs for PostgreSQL 9.4
ii  postgresql-client-common 154.1.1C	all	manager for multiple PostgreSQL client versions
ii  postgresql-common	     154.1.1C	all	PostgreSQL database-cluster manager
ii  postgresql-contrib-9.4	       9.4.2-1.1C	amd64	additional facilities for PostgreSQL
 
  • то и отключаем
# echo "libpq5" hold | dpkg --set-selections
# echo "postgresql-9.4" hold | dpkg --set-selections
# echo "postgresql-client-9.4" hold | dpkg --set-selections
# echo "postgresql-client-common" hold | dpkg --set-selections
# echo "postgresql-common" hold | dpkg --set-selections
# echo "postgresql-contrib-9.4" hold | dpkg --set-selections
 
  • проверить
# apt-get update
…

# apt-get dist-upgrade 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Расчёт обновлений…Готово
Пакеты, которые будут оставлены в неизменном виде:
  libpq5 postgresql-9.4 postgresql-client-9.4 postgresql-client-common postgresql-common postgresql-contrib-9.4
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 6 пакетов не обновлено.
 
# apt-cache show postgresql-9.4 |grep -E -i "Package:|Status:|Version:|^$"
Package: postgresql-9.4
Version: 9.4.6-0+deb8u1

Package: postgresql-9.4
Version: 9.4.5-0+deb8u1

Package: postgresql-9.4
Status: hold ok installed
Version: 9.4.2-1.1C

3. 1C 8.3

Подготовка

# apt-get install unixODBC t1utils ttf-mscorefonts-installer libgsf-bin imagemagick texlive-binaries

Загрузка

С сайта https://releases.1c.ru/total скачать установочные пакеты, затем удобным способом скопировать в каталог ~/1c83/srv

Установка

Устанавливать буду версию 8.3.8, так как именно с этой версии в веб-модуль, включена поддержка Apache 2.4.
# cd ~/1c83/srv/8.3.8.1502
# ll
итого 220668
-rw-r--r-- 1 root root  34947588 мар 19 16:40 1c-enterprise83-common_8.3.8-1502_amd64.deb
-rw-r--r-- 1 root root 190697948 мар 19 16:40 1c-enterprise83-server_8.3.8-1502_amd64.deb
-rw-r--r-- 1 root root    309086 мар 19 16:40 1c-enterprise83-ws_8.3.8-1502_amd64.deb
устанавливать можно без NLS файлов
# dpkg -i *.deb

“Проверка”

# service srv1cv83 status
● srv1cv83.service - LSB: Starts and stops the 1C:Enterprise daemons
   Loaded: loaded (/etc/init.d/srv1cv83)
   Active: active (exited) since Вт 2016-03-29 13:30:53 MSK; 15s ago

мар 29 13:30:47 vm008srv1c8 su[454]: Successful su for usr1cv8 by root
мар 29 13:30:47 vm008srv1c8 su[454]: + ??? root:usr1cv8
мар 29 13:30:47 vm008srv1c8 su[454]: pam_unix(su:session): session opened for user usr1cv8 by (uid=0)
мар 29 13:30:53 vm008srv1c8 srv1cv83[417]: Starting 1C:Enterprise 8.3 server: OK
если вот такие строки видно, значит все должно быть хорошо.

4. HASP

Подготовка

Невзирая на компиляцию под х64, необходима библиотека libc6-i386, поэтому:
# apt-get install libc6-i386

Загрузка

64х-битного драйвера от Этерсофт-а
# cd ~/1c83/hasp/
# wget ftp://ftp.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Debian/8.0/haspd_7.40-eter8debian_amd64.deb

Установка

# dpkg -i haspd_7.40-eter8debian_amd64.deb 
Выбор ранее не выбранного пакета haspd.
(Чтение базы данных … на данный момент установлено 41583 файла и каталога.)
Подготовка к распаковке haspd_7.40-eter8debian_amd64.deb …
Распаковывается haspd (7.40-eter8debian) …
Настраивается пакет haspd (7.40-eter8debian) …
insserv: warning: script 'haspd.outformat' missing LSB tags and overrides
Обрабатываются триггеры для systemd (215-17+deb8u3) …
Обрабатываются триггеры для man-db (2.7.0.2-5) …

Проверка

# service haspd start
# service haspd status
● haspd.service - LSB: Hasp keys support
Loaded: loaded (/etc/init.d/haspd)
Active: active (running) since Вт 2016-03-29 16:22:46 MSK; 1s ago
Process: 6521 ExecStart=/etc/init.d/haspd start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/haspd.service
├─6557 aksusbd
├─6568 winehasp
├─6577 hasplm -c /etc/haspd/hasplm.conf
└─6586 hasplmd -s

мар 29 16:22:46 vm008srv1c8 haspd[6521]: Enable workaround for /proc/bus/usb (bind from /dev/bus/usb)[ DONE ]
мар 29 16:22:46 vm008srv1c8 haspd[6521]: [ DONE ]
мар 29 16:22:46 vm008srv1c8 aksusbd[6557]: loaded, daemon version: 7.40.1.50292, key API (USB) version: 3.88 (parallel driver not available)
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running aksusbd... [ DONE ]
мар 29 16:22:46 vm008srv1c8 winehasp[6568]: winehasp 2.00 loaded
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running winehasp... [ DONE ]
мар 29 16:22:46 vm008srv1c8 hasplm[6577]: HASP LM v8.30 loaded
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running hasplm... [ DONE ]
мар 29 16:22:46 vm008srv1c8 hasplmd[6586]: HASP LM v18.0.1.55506 loaded
мар 29 16:22:46 vm008srv1c8 haspd[6521]: Running hasplmd... [ DONE ]

5. Создать/восстановить базы 1С…

6. WEB-клиент

Подготовка

Установить веб-сервер
apt-get install apache2
Создать каталог(и) веб-сервера
# mkdir -p /var/www/1c8/{zik,buh,conf1,conf2}
Установить права на каталог
# chown -R www-data:www-data /var/www/1c8
Далее пойдёт речь о публикации одной базы zik! Создать конфигурационный файл веб-сервера
# nano /etc/apache2/sites-available/srv1c8zik.conf

LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"
# 1c publication
Alias "/zik" "/var/www/1c8/zik/"

<Directory "/var/www/1c8/zik/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/1c8/zik/default.vrd"
</Directory>

Публикация…

Создать default.vrd
/opt/1C/v8.3/x86_64/webinst -publish -apache24 -wsdir zik -dir /var/www/1c8/zik/ -connstr "Srvr=192.168.2.8;Ref=zik;" -confPath /etc/apache2/sites-available/srv1c8zik.conf
где:
  • /var/www/1c8/zik — каталог веб-сервера
  • 192.168.2.8 — IP (можно использовать «hostname -f» — при этом, имя должно ресолвится в локальной сети)
  • zik — название базы
# cat /var/www/1c8/zik/default.vrd
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                base="/zik"
                ib="Srvr=192.168.2.8;Ref=zik;"/>
Установить права доступа:
chown -R www-data:www-data /var/www/1c8
Активировать конфигурационный файл веб-сервера:
# a2ensite srv1c8zik
Enabling site srv1c8zik.
To activate the new configuration, you need to run:
  service apache2 reload
# service apache2 reload
По аналогии, опубликовать оставшиеся базы, вместо zik использовать buh,conf1,conf2
Перейти в интернет-проводнике по адресу: http://192.168.2.8/zik/, откроется окно:
1c83_web

1С8 WEB-клиент логин