Паднімаем сервер 1с з публікацыяй базы і вэб сэрвісаў на Linux

Паднімаем сервер 1с з публікацыяй базы і вэб сэрвісаў на Linux

Сёння я б хацеў расказаць, як падняць сервер 1с на linux debian 9 з публікацыяй web-сэрвісаў.

Што такое web-сэрвісы 1С?

Web-сэрвісы - гэта адзін з механізмаў платформы, якія выкарыстоўваюцца для інтэграцыі з іншымі інфармацыйнымі сістэмамі. Ён з'яўляецца сродкам падтрымкі SOA (Service-Oriented Architecture) - сэрвіс-арыентаванай архітэктуры, якая з'яўляецца сучасным стандартам інтэграцыі прыкладанняў і інфармацыйных сістэм. Па сутнасці - гэта магчымасць стварыць html старонку з дадзенымі, да якой, потым можна звярнуцца любым іншым дадаткам і забраць іх.

Плюсы - працуе хутка (нават пры досыць вялікім аб'ёме дадзеных), адносна зручна.

Мінусы - ваш праграміст 1с будзе шмат і доўга на вас бурчэць, пакуль будзе пісаць вэб-сэрвіс для вашай базы. Штука вельмі своеасаблівая ў напісанні.

Я не буду расказваць як напісаць вэб-сэрвіс… я распавяду як яго апублікаваць на Linux з кансолі сервера, а гэтак жа крыху пра ўсталёўку 1с сервера на Linux.

І так, у нас есць debian 9 netinst, прыступаем:

Усталёўваны PostgresPro (Прашу заўважыць што ён не бясплатны, і распаўсюджваецца, толькі ў рамках азнаямлення з магчымасцямі):

# apt-get update -y

# apt-get install -y wget gnupg2 || apt-get install -y gnupg

# wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add -

# echo deb http://repo.postgrespro.ru/pgpro-archive/pgpro-11.4.1/debian stretch main > /etc/apt/sources.list.d/postgrespro-std.list

# apt-get update -y
# apt-get install -y postgrespro-std-11-server
# /opt/pgpro/std-11/bin/pg-setup initdb
# /opt/pgpro/std-11/bin/pg-setup service enable
# service postgrespro-std-11 start
# su - postgres
# /opt/pgpro/std-11/bin/psql -U postgres -c "alter user postgres with password 'ВашПароль';"

Скажам postgresql слухаць усе адрасы, а не толькі localhost

# nano /var/lib/pgpro/std-11/data/postgresql.conf

Раскаментуем і памяняем якія адрасы слухаць:

...
#listen_addresses = 'localhost'
...

На

...
listen_addresses = '*'
...

Далей дазволім аўтарызавацца карыстальнікам з нашай сеткі

# nano /var/lib/pgpro/std-11/data/pg_hba.conf

Зменім:

# IPv4 local connections:
host all all 127.0.0.1/32 md5

на

host all all 192.168.188.0/24 md5
host all all 127.0.0.1/32 md5

Больш падрабязна аб розных усталёўках Postgres для 1с можна пачытаць тут.

Далей ставім 1С сервер.

Заліваем на сервер архіў запампаваны з сайта 1с (у маім выпадку deb64_8_3_15_1534.tar.gz)


# tar -xzf deb64_8_3_15_1534.tar.gz

# dpkg -i *.deb

яшчэ пара дробязяў:

# apt install imagemagick unixodbc libgsf-bin

Цяпер усталюем Apache2

# apt install apache2

Праз кансоль адміністравання ці праз кліент 1с ствараем базу і заліваем нашу канфігурацыю…

Цяпер публікуем базу:

пераходзім у тэчку з 1с.

# cd /opt/1C/v8.3/x86_64/

./webinst -publish -apache24 -wsdir Test -dir /var/www/test/ -connstr  "Srvr=10.7.12.108;Ref=test;" -confPath /etc/apache2/apache2.conf

Лезем у var/www/test/ і глядзім што тамака з'явілася.

# cd /var/www/test
# nano default.vrd

«

v8.1c.ru/8.2/virtual-resource-system»
href=»http://www.w3.org/2001/XMLSchema»>www.w3.org/2001/XMLSchema»
href=»http://www.w3.org/2001/XMLSchema-instance»>www.w3.org/2001/XMLSchema-instance»
base=»/Test»
ib=«Srvr=192.168.188.150;Ref=Test;»>
<standardOdata enable=«false»
reuseSessions=«autouse»
sessionMaxAge="20"
poolSize="10"
poolTimeout=«5»/>

«

Гэта схемы якія патрэбныя для запуску вэб-кліента 1с… зараз у нашу тэставую базу можна зайсці з браўзэра па адрасе "http://АдрасСервера/Test" (рэгістр важны! гэта ж лінукс) або паказаць у кліенце "тып размяшчэння базы" адрас " http://АдресСервера/Test», і кліент будзе працаваць з апублікаванай базай.

АЛЕ

А што ж на рахунак вэб-сэрвісаў? (у маёй тэставай канфігурацыі іх два: WebBuh для абмену дадзенымі з бухгалтэрыяй і toplog інтэграцыя з сістэмай wms аднайменнай кампаніі).

Што ж, дадамо пару радкоў у наш vrd файлік…


v8.1c.ru/8.2/virtual-resource-system»
href=»http://www.w3.org/2001/XMLSchema»>www.w3.org/2001/XMLSchema»
href=»http://www.w3.org/2001/XMLSchema-instance»>www.w3.org/2001/XMLSchema-instance»
base=»/TestWeb»
ib=«Srvr=IP_addres;Ref=TestWebServ»>
<standardOdata enable=«false»
reuseSessions=«autouse»
sessionMaxAge="20"
poolSize="10"
poolTimeout=«5»/>

# Вот тут начинается код который публикует веб-сервисы
<point name="WebBuh" # Имя веб-сервиса в конфигураторе
alias="Web_buh.1cws" # Web_buh.1cws - алиас веб-сервиса в браузере
enable="true" # дальше я думаю строки и так понятны
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # второй веб сервис
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

захаваем.

І зараз наш вэб-сэрвіс даступны па адрасе "http://АдресСервера/Test/Web_buh.1cws?"

Нашто трэба было рабіць гэта рукамі?

Паколькі наш сервер без графічнай абалонкі, запусціць на ім канфігуратар - не атрымаецца, і адпаведна выканаць публікацыю штатнымі сродкамі. Выдалены ж канфігуратар, які стаіць на кліенце не публікуе на серверы вэб-сэрвісы. Таму нам даводзіцца кіраваць канфіг уручную па шаблоне апісанаму вышэй.

Скрыпт для генерацыі. - дзякуй TihonV

Крыніца: habr.com

Дадаць каментар