การตั้งค่า 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