วันนี้ฉันอยากจะบอกคุณถึงวิธีการยกเซิร์ฟเวอร์ 1c บน linux debian 9 ด้วยการเผยแพร่บริการบนเว็บ
บริการเว็บ 1c คืออะไร?
ข้อดี - ทำงานได้อย่างรวดเร็ว (แม้จะมีข้อมูลค่อนข้างมาก) ค่อนข้างสะดวก
จุดด้อย - โปรแกรมเมอร์ 1c ของคุณจะบ่นคุณเป็นเวลานานขณะเขียนบริการเว็บสำหรับฐานข้อมูลของคุณ สิ่งนี้แปลกประหลาดมากในการเขียน
ฉันจะไม่บอกคุณว่าจะเขียนอย่างไร
เรามี 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'
...
На
...
ฟัง_ที่อยู่ = '*'
...
ต่อไป ให้ผู้ใช้จากเครือข่ายของเราเข้าสู่ระบบได้
# 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 ต่างๆ เป็นเวลา 1 วินาที
นอกจากนี้เรายังใส่เซิร์ฟเวอร์ 1 วินาที
อัปโหลดไฟล์เก็บถาวรที่ดาวน์โหลดจากไซต์ 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 = "ใช้อัตโนมัติ"
sessionMaxAge="20"
ขนาดพูล = "10"
พูลไทม์เอาท์ = "5"/>
«
นี่คือโครงร่างที่จำเป็นในการเปิดตัวเว็บไคลเอ็นต์ 1c ... ตอนนี้คุณสามารถเข้าถึงฐานข้อมูลทดสอบของเราจากเบราว์เซอร์ได้ที่ที่อยู่ "http://ServerAddress/Test" (ตัวพิมพ์สำคัญมาก! นี่คือ Linux) หรือระบุ ที่อยู่ "ประเภทตำแหน่งฐาน" ในไคลเอนต์ http://ServerAddress/Test" และไคลเอนต์จะทำงานกับฐานข้อมูลที่เผยแพร่
แต่
แต่บริการบนเว็บล่ะ? (ในการกำหนดค่าการทดสอบของฉันมีอยู่สองรายการ: WebBuh สำหรับการแลกเปลี่ยนข้อมูลด้วยการบัญชีและการรวมโทโพลล็อกกับระบบ 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"
ฐาน="/TestWeb"
ib="Srvr=IP_addres;Ref=TestWebServ">
<standardOdata enable=«false»
reuseSessions = "ใช้อัตโนมัติ"
sessionMaxAge="20"
ขนาดพูล = "10"
พูลไทม์เอาท์ = "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?"
ทำไมคุณต้องทำด้วยมือ?
เนื่องจากเซิร์ฟเวอร์ของเราไม่มีเชลล์แบบกราฟิก จึงไม่สามารถเรียกใช้ตัวกำหนดค่าบนเซิร์ฟเวอร์ได้ และด้วยเหตุนี้ จึงเผยแพร่โดยใช้วิธีการปกติ ตัวกำหนดค่าระยะไกลที่ติดตั้งบนไคลเอ็นต์ไม่ได้เผยแพร่บริการเว็บบนเซิร์ฟเวอร์ ดังนั้นเราจึงต้องแก้ไขการกำหนดค่าด้วยตนเองตามเทมเพลตที่อธิบายไว้ข้างต้น
ที่มา: will.com