Δημιουργούμε έναν διακομιστή 1c με τη δημοσίευση μιας βάσης δεδομένων και υπηρεσιών web στο Linux

Δημιουργούμε έναν διακομιστή 1c με τη δημοσίευση μιας βάσης δεδομένων και υπηρεσιών web στο Linux

Σήμερα θα ήθελα να σας πω πώς να ρυθμίσετε έναν διακομιστή 1c στο Linux Debian 9 με τη δημοσίευση υπηρεσιών web.

Τι είναι οι υπηρεσίες ιστού 1C;

διαδικτυακές υπηρεσίες είναι ένας από τους μηχανισμούς πλατφόρμας που χρησιμοποιείται για την ενοποίηση με άλλα πληροφοριακά συστήματα. Είναι ένα μέσο υποστήριξης SOA (Service-Oriented Architecture), μια αρχιτεκτονική προσανατολισμένη στις υπηρεσίες που αποτελεί σύγχρονο πρότυπο για την ενοποίηση εφαρμογών και συστημάτων πληροφοριών. Ουσιαστικά, πρόκειται για τη δυνατότητα δημιουργίας μιας σελίδας html με δεδομένα, η οποία στη συνέχεια μπορεί να προσπελαστεί από οποιαδήποτε άλλη εφαρμογή και να ανακτηθεί.

Πλεονεκτήματα - λειτουργεί γρήγορα (ακόμη και με αρκετά μεγάλο όγκο δεδομένων) και είναι σχετικά βολικό.

Μειονεκτήματα - ο προγραμματιστής σας 1C θα σας γκρινιάζει πολύ και για πολύ ενώ γράφει μια υπηρεσία web για τη βάση δεδομένων σας. Το πράγμα είναι πολύ περίεργο στη γραφή.

Δεν θα σου πω πώς να γράψεις υπηρεσία Ιστού... Θα σας πω πώς να το δημοσιεύσετε σε Linux από την κονσόλα διακομιστή, καθώς και λίγα λόγια για την εγκατάσταση του διακομιστή 1C σε 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:
φιλοξενεί όλα τα 127.0.0.1/32 md5

επί

φιλοξενεί όλα τα 192.168.188.0/24 md5
φιλοξενεί όλα τα 127.0.0.1/32 md5

Μπορείτε να διαβάσετε περισσότερα για διάφορες εγκαταστάσεις Postgres για 1c εδώ.

Στη συνέχεια εγκαθιστούμε διακομιστή 1c.

Ανεβάστε το αρχείο που κατεβάσατε από τον ιστότοπο 1c στον διακομιστή (στην περίπτωσή μου 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

Μέσω της κονσόλας διαχείρισης ή μέσω του προγράμματος-πελάτη 1c, δημιουργούμε μια βάση δεδομένων και ανεβάζουμε τη διαμόρφωσή μας...

Τώρα δημοσιεύουμε τη βάση δεδομένων:

μεταβείτε στο φάκελο με 1s.

# 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”
βάση=”/Δοκιμή”
ib="Srvr=192.168.188.150;Ref=Test;">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

«

Αυτά είναι τα σχήματα που χρειάζονται για την εκκίνηση του προγράμματος-πελάτη ιστού 1c... τώρα μπορείτε να μεταβείτε στη δοκιμαστική βάση δεδομένων μας από ένα πρόγραμμα περιήγησης στη διεύθυνση "http://ServerAddress/Test" (η περίπτωση είναι σημαντική! αυτό είναι το Linux) ή να καθορίσετε στον υπολογιστή-πελάτη τη διεύθυνση «τύπος τοποθεσίας βάσης δεδομένων» « http://ServerAddress/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://ServerAddress/Test/Web_buh.1cws?"

Γιατί έπρεπε να το κάνεις με το χέρι;

Δεδομένου ότι ο διακομιστής μας δεν διαθέτει γραφικό κέλυφος, δεν θα είναι δυνατή η εκτέλεση του διαμορφωτή σε αυτό και, κατά συνέπεια, η δημοσίευση χρησιμοποιώντας τυπικά μέσα. Ο απομακρυσμένος διαμορφωτής, ο οποίος βρίσκεται στον υπολογιστή-πελάτη, δεν δημοσιεύει υπηρεσίες web στο διακομιστή. Επομένως, πρέπει να επεξεργαστούμε τις ρυθμίσεις με μη αυτόματο τρόπο σύμφωνα με το πρότυπο που περιγράφεται παραπάνω.

Σενάριο για τη δημιουργία .vrd - Ευχαριστώ TihonV

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο