Solleviamo il server 1C con la pubblicazione del database e dei servizi web su Linux

Solleviamo il server 1C con la pubblicazione del database e dei servizi web su Linux

Oggi vorrei parlare di come avviare un server 1C su Linux Debian 9 con la pubblicazione di servizi web.

Cosa sono i servizi web 1C?

Servizi web — sono uno dei meccanismi della piattaforma, utilizzati per l'integrazione con altri sistemi informativi. Sono uno strumento di supporto per l'architettura orientata ai servizi (SOA) — un'architettura orientata ai servizi che è uno standard moderno per l'integrazione di applicazioni e sistemi informativi. In sostanza, è la possibilità di creare una pagina HTML con dati, a cui poi è possibile accedere da qualsiasi altra applicazione e recuperarli.

Vantaggi — funziona rapidamente (anche con un volume di dati piuttosto grande), relativamente comodo.

Svantaggi — il tuo programmatore 1C si lamenterà molto e a lungo mentre scrive il servizio web per il tuo database. È una cosa molto particolare da scrivere.

Non parlerò di come scrivere un servizio web… parlerò di come pubblicarlo su Linux dalla console del server, e anche un po' sull'installazione del server 1C su Linux.

Allora, abbiamo Debian 9 netinst, iniziamo:

Installiamo PostgresPro (Si noti che non è gratuito e viene distribuito solo nell'ambito della familiarizzazione con le funzionalità):

# 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 'ВашПароль';"

Diciamo che PostgreSQL ascolti tutti gli indirizzi anziché solo localhost

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

Decommentiamo e cambiamo quali indirizzi ascoltare:


#listen_addresses = ‘localhost’

A


listen_addresses = ‘*’

Successivamente, consentiamo agli utenti della nostra rete di autenticarsi

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

Modifichiamo:

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

in

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

Per ulteriori informazioni sulle diverse installazioni di Postgres per 1C, si può leggere qui.

Successivamente installiamo il server 1C.

Carichiamo sul server l'archivio scaricato dal sito di 1C (nel mio caso deb64_8_3_15_1534.tar.gz)


# tar -xzf deb64_8_3_15_1534.tar.gz

# dpkg -i *.deb

ancora un paio di dettagli:

# apt install imagemagick unixodbc libgsf-bin

Ora installiamo Apache2

# apt install apache2

Dalla console di amministrazione o tramite il client 1C creiamo il database e carichiamo la nostra configurazione…

Ora pubblichiamo il database:

andiamo nella cartella di 1C.

# 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

Andiamo in var/www/test/ e vediamo cosa è apparso.

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

«
<?xml version=«1.0» encoding=«UTF-8»?>
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"/>

«

Questi sono gli schemi necessari per avviare il client web 1C... ora è possibile accedere al nostro database di test tramite il browser all'indirizzo «http ://IndirizzoServer/Test» (rispettare le maiuscole! è Linux) oppure specificare nel client il «tipo di posizione del database» all'indirizzo «http ://IndirizzoServer/Test», e il client funzionerà con il database pubblicato.

MA

E riguardo ai web service? (nella mia configurazione di test ce ne sono due: WebBuh per lo scambio di dati con la contabilità e toplog integrazione con il sistema wms della stessa azienda).

Bene, aggiungiamo un paio di righe al nostro file vrd...

<?xml version=«1.0» encoding=«UTF-8»?>
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" # Nome del servizio web nel configuratore
alias="Web_buh.1cws" # Web_buh.1cws - alias del servizio web nel browser
enable="true" # penso che le righe seguenti siano già chiare
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<point name="TopLog" # secondo servizio web
alias="toplog.1cws" # toplog.1cws
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

salviamo.

E ora il nostro web service è disponibile all'indirizzo «http ://IndirizzoServer/Test/Web_buh.1cws?»

Perché dovevamo farlo manualmente?

Poiché il nostro server non ha un'interfaccia grafica, non è possibile avviare il configuratore su di esso, e di conseguenza eseguire la pubblicazione con i mezzi standard. Il configuratore remoto, che è installato sul client, non pubblica i web service sul server. Pertanto, dobbiamo modificare il config manualmente secondo il modello descritto sopra.

Script per generare .vrd — grazie TihonV

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster