ค้นหาเว็บไซต์

การตั้งค่า OpenERP (Odoo) 9 ด้วย Nginx บน RHEL/CentOS และ Debian/Ubuntu


Odoo เดิมชื่อ OpenERP เป็นซอฟต์แวร์ธุรกิจบนเว็บ การวางแผนทรัพยากรองค์กรแบบโอเพ่นซอร์ส ERP ที่เขียนด้วยภาษา Python ซึ่งมาพร้อมกับชุดโปรแกรมเว็บ แอพที่ออกแบบมาสำหรับทุกธุรกิจ เช่น เครื่องมือสร้างเว็บไซต์ โมดูลอีคอมเมิร์ซ การเรียกเก็บเงินและการบัญชี ทรัพยากรบุคคล ระบบขายหน้าร้าน การจัดการลูกค้าสัมพันธ์ โมดูลสินค้าคงคลัง แชทสด รวมถึงแอพและคุณสมบัติอื่น ๆ อีกมากมาย

บทช่วยสอนนี้จะแนะนำวิธีการติดตั้ง Odoo เวอร์ชันเสถียรล่าสุด (เวอร์ชัน 9) บน RHEL/CentOS/Fedora หรือ < ระบบที่ใช้>Debian/Ubuntu ที่แข็งแกร่งพร้อมเซิร์ฟเวอร์ Nginx เพื่อทำหน้าที่เป็นพร็อกซีย้อนกลับในส่วนหน้าเพื่อเข้าถึงอินเทอร์เฟซเว็บได้รวดเร็วยิ่งขึ้น ปลอดภัย และจากพอร์ตการท่องเว็บมาตรฐาน โดยไม่จำเป็นต้อง สร้างภาระให้กับผู้ใช้ในการใช้พอร์ตเปลี่ยนเส้นทางของเบราว์เซอร์

ขั้นตอนที่ 1: ติดตั้งและรักษาความปลอดภัยฐานข้อมูล PostgreSQL

1. ก่อนที่คุณจะเริ่มดำเนินการติดตั้ง Odoo อันดับแรก ตรวจสอบให้แน่ใจว่าระบบของคุณจัดส่งแพ็คเกจที่มาจากที่เก็บ Epel เพื่อติดตั้งฐานข้อมูล PostgreSQL แบ็กเอนด์ .

ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ทันสมัยด้วยแพ็คเกจและแพตช์ความปลอดภัยล่าสุดโดยออกคำสั่งด้านล่าง:

----------- On RedHat/CentOS based systems ----------- 
yum update
yum install -y epel-release

----------- On Debian/Ubuntu based systems ----------- 
apt-get update && sudo apt-get upgrade # On Debian 

2. ต่อไป ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL ซึ่งเป็นฐานข้อมูลเริ่มต้นที่ Odoo ใช้เพื่อจัดเก็บข้อมูล

----------- On RedHat/CentOS based systems -----------
yum install postgresql-server

----------- On Debian/Ubuntu based systems -----------
apt-get install postgresql postgresql-client

เริ่มต้นฐานข้อมูล PostgreSQL

postgresql-setup initdb	

ในที่สุดก็เริ่มต้นฐานข้อมูล PostgreSQL โดยใช้คำสั่งด้านล่าง:

----------- On SystemD systems -----------
systemctl start postgresql

----------- On SysVinit systems -----------
service postgresql start

ขั้นตอนเพิ่มเติมในการรักษาความปลอดภัยให้กับผู้ใช้เริ่มต้น PostgreSQL ซึ่งมีรหัสผ่านว่างเปล่า ให้ออกคำสั่งด้านล่างด้วยสิทธิ์รูทเพื่อเปลี่ยนรหัสผ่าน:

sudo -u postgres psql
postgres=# \password postgres

ขั้นตอนที่ 2: ติดตั้ง Odoo 9 – OpenERP

3. ในการติดตั้ง Odoo 9 จากพื้นที่เก็บข้อมูลอย่างเป็นทางการ ขั้นแรกให้สร้างไฟล์พื้นที่เก็บข้อมูล yum ใหม่สำหรับ Odoo โดยมีเนื้อหาดังต่อไปนี้:

บนระบบ CentOS/RHEL

vi /etc/yum.repos.d/odoo.repo

เพิ่มข้อความที่ตัดตอนมาต่อไปนี้ลงในไฟล์ odoo.repo

[odoo-nightly]
name=Odoo Nightly repository
baseurl=http://nightly.odoo.com/9.0/nightly/rpm/
enabled=1
gpgcheck=1
gpgkey=https://nightly.odoo.com/odoo.key

บนระบบ Debian/Ubuntu

ใน Debian/Ubuntu ให้ออกคำสั่งต่อไปนี้เพื่อเพิ่มที่เก็บ Odoo:

wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list

4. ถัดไปติดตั้งซอฟต์แวร์ Odoo 9 จากไบนารี

----------- On RedHat/CentOS based systems -----------
yum install odoo

----------- On Debian/Ubuntu based systems -----------
apt-get update && sudo apt-get install odoo

จากนั้นให้เริ่มต้นและตรวจสอบสถานะ daemon โดยใช้คำสั่งด้านล่าง:

----------- On SystemD systems -----------
systemctl start odoo
systemctl status odoo

----------- On SysVinit systems -----------
service odoo start
service odoo status

ในขั้นตอนเพิ่มเติม คุณสามารถตรวจสอบพอร์ตการรับฟังบริการ Odoo ได้โดยการเรียกใช้คำสั่ง ss หรือ netstat:

ss -tulpn
OR
netstat -tulpn

ตามค่าเริ่มต้น Odoo จะรับฟังการเชื่อมต่อเครือข่ายบนพอร์ต 8069/TCP

ขั้นตอนที่ 3: กำหนดค่า Odoo จากอินเทอร์เฟซเว็บ

5. เพื่อกำหนดค่า Odoo เพิ่มเติม ให้เปิดเบราว์เซอร์และเข้าถึงอินเทอร์เฟซเว็บของ Odoo ที่ URI ต่อไปนี้:

http://host-or-IP-address:8069/

6. ถัดไป คุณจะได้รับแจ้งให้สร้างฐานข้อมูลใหม่สำหรับ Odoo และตั้งรหัสผ่านที่รัดกุมสำหรับบัญชีผู้ดูแลระบบ

7. เมื่อสร้างฐานข้อมูลแล้ว คุณจะถูกเปลี่ยนเส้นทางไปยังแผงเว็บการดูแลระบบ ซึ่งคุณสามารถติดตั้งแอปพลิเคชันเพิ่มเติมและกำหนดค่า ERP ของคุณได้ ปล่อยให้แอปพลิเคชันเป็นค่าเริ่มต้นและออกจากระบบในขณะนี้

8. เมื่อกลับมาที่หน้าจอเข้าสู่ระบบ คลิกลิงก์ จัดการฐานข้อมูล และตั้งรหัสผ่านหลักเพื่อรักษาความปลอดภัยให้กับตัวจัดการฐานข้อมูล Odoo

9. เมื่อคุณมีตัวจัดการฐานข้อมูล Odoo ที่ปลอดภัยแล้ว คุณสามารถเข้าสู่ระบบแอปพลิเคชันของคุณและเริ่มกำหนดค่าเพิ่มเติมด้วยแอปและการตั้งค่าที่จำเป็น

ขั้นตอนที่ 4: เข้าถึง Odoo จาก Nginx Frontend

คุณสามารถกำหนดค่าระบบเพื่อให้ผู้ใช้สามารถเข้าถึงแผงเว็บ Odoo ผ่านทางพร็อกซีย้อนกลับ Nginx สิ่งนี้สามารถอำนวยความสะดวกให้ผู้ใช้สามารถนำทางอินเทอร์เฟซเว็บ Odoo ได้เร็วขึ้น เนื่องจากการแคชส่วนหน้าของ Nginx บนพอร์ต HTTP มาตรฐาน โดยไม่จำเป็นต้องป้อนพอร์ต http 8069 ด้วยตนเองบนเบราว์เซอร์ .

เพื่อกำหนดการตั้งค่านี้ก่อนอื่น คุณต้องติดตั้งและกำหนดค่า Nginx บนระบบของคุณโดยทำตามขั้นตอนต่อไปนี้

10. ขั้นแรกให้ติดตั้งเว็บเซิร์ฟเวอร์ Nginx ด้วยคำสั่งต่อไปนี้:

----------- On RedHat/CentOS based systems -----------
yum install nginx

----------- On Debian/Ubuntu based systems -----------
apt-get install nginx

11. จากนั้น เปิดไฟล์การกำหนดค่าหลักของ Nginx ด้วยโปรแกรมแก้ไขข้อความ และแทรกบล็อกต่อไปนี้หลังบรรทัดที่ระบุตำแหน่งรูทของเอกสาร Nginx

----------- On RedHat/CentOS based systems -----------
vi /etc/nginx/nginx.conf 

----------- On Debian/Ubuntu based systems -----------
nano /etc/nginx/sites-enabled/default

เพิ่มข้อความที่ตัดตอนมาจากการกำหนดค่าต่อไปนี้ลงในไฟล์ nginx.conf:

 location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

นอกจากนี้ ให้แสดงความคิดเห็นคำสั่ง location ของ Nginx โดยการวาง # ไว้หน้าบรรทัดต่อไปนี้ ใช้ภาพหน้าจอด้านล่างเป็นแนวทาง

#location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #       try_files $uri $uri/ =404;
        #}

12. หลังจากที่คุณได้ทำการเปลี่ยนแปลงข้างต้นทั้งหมดแล้ว ให้รีสตาร์ท Nginx daemon แต่อย่ารีสตาร์ทก่อนที่คุณจะรันคำสั่ง getenforce เพื่อตรวจสอบว่า Selinux เปิดใช้งานอยู่หรือไม่ เครื่องของคุณ

บนระบบ CentOS/RHEL

ในกรณีที่ตั้งค่านโยบายเป็น บังคับใช้ ให้ปิดใช้งานโดยออกคำสั่งด้านล่าง:

setenforce 0
getenforce

หากต้องการปิดใช้งาน Selinux โดยสมบูรณ์ ให้เปิดไฟล์ /etc/selinux/config ด้วยโปรแกรมแก้ไขข้อความ และตั้งค่าบรรทัด SELINUX เป็นปิดใช้งาน

หากคุณไม่ต้องการปิดการใช้งานนโยบาย Seliux อย่างสมบูรณ์และเพียงต้องการผ่อนคลายกฎเพื่อให้สิทธิ์พร็อกซี Nginx พร้อมการเข้าถึงซ็อกเก็ตเครือข่ายที่อนุญาต ให้รันคำสั่งต่อไปนี้:

setsebool httpd_can_network_connect on -P
getsebool -a | grep httpd 

จากนั้นรีสตาร์ท Nginx daemon เพื่อให้สอดคล้องกับการเปลี่ยนแปลงที่ทำข้างต้น:

systemctl restart nginx
OR
service nginx restart

13. ขั้นตอนถัดไปนี้เป็นคุณลักษณะเสริมด้านความปลอดภัย และแสดงถึงการเปลี่ยนแปลงซ็อกเก็ตเครือข่ายที่แอปพลิเคชัน Odoo กำลังรับฟัง โดยเปลี่ยนที่อยู่การเชื่อมโยงจากอินเทอร์เฟซ (หรือที่อยู่) ทั้งหมดเป็น โลคัลโฮสต์เท่านั้น

การเปลี่ยนแปลงนี้ต้องทำร่วมกับพร็อกซีย้อนกลับ Nginx เท่านั้น เนื่องจากการเชื่อมโยงแอปพลิเคชันบน localhost หมายความว่าจะไม่สามารถเข้าถึง Odoo จากผู้ใช้ภายใน LAN หรือเครือข่ายอื่น ๆ ได้

เพื่อที่จะใช้งานการเปลี่ยนแปลงนี้ ให้เปิดไฟล์ /etc/odoo/openerp-server.conf และแก้ไขบรรทัด xmlrpc_interface เพื่อผูกกับ localhost ตามที่แนะนำในภาพหน้าจอด้านล่างเท่านั้น

xmlrpc_interface = 127.0.0.1

เพื่อให้สอดคล้องกับการเปลี่ยนแปลง ให้เริ่มบริการ Odoo ใหม่โดยรันคำสั่งด้านล่าง:

systemctl restart odoo.service
OR
service odoo restart

14. ในกรณีที่เครื่องของคุณมีสายป้องกันเครือข่ายที่ไฟร์วอลล์มอบให้ ให้ออกคำสั่งต่อไปนี้เพื่อเปิดพอร์ตไฟร์วอลล์ไปยังโลกภายนอกสำหรับพร็อกซี Nginx:

----------- On FirewallD based systems -----------
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
----------- On IPTables based systems -----------
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
----------- On UFW Firewall systems -----------
ufw allow http

15. แค่นั้นแหละ! ตอนนี้คุณสามารถเข้าถึงแอปพลิเคชัน ERP Odoo ของคุณได้สำเร็จโดยไปที่ที่อยู่ IP ของเซิร์ฟเวอร์หรือชื่อโดเมน

http://192.168.1.40
http://domain.tld

16. เพื่อเรียกใช้บริการโดยอัตโนมัติหลังจากการรีบูตระบบ ให้ออกคำสั่งต่อไปนี้เพื่อเปิดใช้งาน daemons ทั้งหมดทั้งระบบด้วยการถ่ายภาพครั้งเดียว

------------ On SystemD Systems ------------  
systemctl enable postgresql.service 
systemctl enable odoo.service
systemctl enable nginx.service
------------ On SysVinit Systems ------------ 

chkconfig postgresql on
chkconfig odoo on
chkconfig nginx on

หมายเหตุ: สำหรับรายงาน PDF คุณต้องดาวน์โหลดและติดตั้งแพ็คเกจไบนารี wkhtmltopdf ด้วยตนเองเพื่อการแจกจ่ายของคุณเอง โดยไปที่ลิงก์ต่อไปนี้ ติดตั้ง wkhtmltopdf เพื่อแปลงหน้า HTML เป็น PDF