ການຕັ້ງຄ່າ OpenERP (Odoo) 9 ກັບ Nginx ໃນ RHEL/CentOS ແລະ Debian/Ubuntu


Odoo, ໃນເມື່ອກ່ອນເອີ້ນວ່າ OpenERP, ແມ່ນໂປແກຼມທຸລະກິດທີ່ໃຊ້ເວບໄຊທ໌ Source Source Resource Planning ERP ທີ່ຂຽນຂື້ນໃນ Python ເຊິ່ງມາພ້ອມກັບຊຸດເວັບຕ່າງໆທີ່ອອກແບບມາ ສຳ ລັບທຸກໆທຸລະກິດ, ເຊັ່ນ Website Builders, ໂມດູນອີຄອມເມີຊ, ການເອີ້ນເກັບເງິນແລະບັນຊີ, ຊັບພະຍາກອນມະນຸດ, ຈຸດຂາຍ, ການຄຸ້ມຄອງຄວາມ ສຳ ພັນຂອງລູກຄ້າ, ໂມດູນສິນຄ້າຄົງຄັງ, ການສົນທະນາສົດແລະອີກຫລາຍໆແອັບແລະຄຸນສົມບັດ.

ບົດແນະ ນຳ ນີ້ຈະແນະ ນຳ ທ່ານກ່ຽວກັບວິທີການຕິດຕັ້ງລຸ້ນ ໃໝ່ ຫຼ້າສຸດທີ່ມີຄວາມ ໝັ້ນ ຄົງຂອງ Odoo (ຮຸ່ນ 9) ໃນລະບົບ RHEL/CentOS/Fedora ຫຼື Debian/Ubuntu ທີ່ມີ Nginx server ເຮັດ ໜ້າ ທີ່ເປັນຕົວແທນດ້ານຫລັງໃນ frontend ເພື່ອເຂົ້າເຖິງເວັບ ອິນເຕີເຟດໄວຂື້ນ, ປອດໄພແລະຈາກບັນດາເວັບໄຊທ໌ທ່ອງເວັບແບບມາດຕະຖານ, ໂດຍບໍ່ ຈຳ ເປັນຕ້ອງແບກຫາບຜູ້ໃຊ້ທີ່ຈະໃຊ້ພອດປ່ຽນເສັ້ນທາງຂອງຕົວທ່ອງເວັບ.

ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງແລະປອດໄພຖານຂໍ້ມູນ PostgreSQL

1. ກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນ ດຳ ເນີນການຕິດຕັ້ງ Odoo ກ່ອນຮັບປະກັນວ່າລະບົບຂອງທ່ານຈະຈັດສົ່ງກັບແພັກເກັດທີ່ຈັດໂດຍຫໍ Epel ເພື່ອຕິດຕັ້ງຖານຂໍ້ມູນ PostgreSQL backend.

ພ້ອມທັງໃຫ້ແນ່ໃຈວ່າເຊີບເວີໄດ້ປັບປຸງໃຫ້ທັນກັບຊຸດແລະຄວາມປອດໄພລ້າສຸດໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:

----------- 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. ຕໍ່ໄປ, ສືບຕໍ່ເດີນ ໜ້າ ແລະຕິດຕັ້ງ server server ຖານຂໍ້ມູນ 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 repository ໃໝ່ ສຳ ລັບ Odoo ດ້ວຍເນື້ອຫາຕໍ່ໄປນີ້:

# 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 ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອເພີ່ມຫໍຄອຍ 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 ຈາກ binaries.

----------- 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 ຈາກ Web Interface

5. ເພື່ອ ກຳ ຫນົດຄ່າຂອງໂປແກຼມ Odoo ໃຫ້ຕື່ມຕົວທ່ອງເວັບແລະເຂົ້າໃຊ້ອິນເຕີເຟດ Odoo ທີ່ URI ຕໍ່ໄປນີ້:

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

6. ຕໍ່ໄປທ່ານຈະໄດ້ຮັບການກະຕຸ້ນໃຫ້ສ້າງຖານຂໍ້ມູນ ໃໝ່ ສຳ ລັບ Odoo ແລະຕັ້ງລະຫັດລັບ ສຳ ລັບບັນຊີ admin.

7. ເມື່ອຖານຂໍ້ມູນຖືກສ້າງຂື້ນແລ້ວທ່ານຈະຖືກໂອນເຂົ້າຫາກະດານບໍລິຫານທີ່ທ່ານສາມາດຕິດຕັ້ງໂປແກຼມແລະຕັ້ງຄ່າ ERP ຂອງທ່ານຕໍ່ໄປ. ສຳ ລັບຕອນນີ້ປ່ອຍໃບສະ ໝັກ ເປັນຄ່າເລີ່ມຕົ້ນແລະອອກຈາກລະບົບ.

8. ເມື່ອກັບມາທີ່ ໜ້າ ຈໍເຂົ້າສູ່ລະບົບ, ກົດປຸ່ມເຊື່ອມຕໍ່ການຄຸ້ມຄອງຖານຂໍ້ມູນແລະຕັ້ງລະຫັດລັບເພື່ອຮັບປະກັນຜູ້ຈັດການຖານຂໍ້ມູນ Odoo.

9. ເມື່ອທ່ານໄດ້ຮັບປະກັນຜູ້ຈັດການຖານຂໍ້ມູນ Odoo ທ່ານສາມາດເຂົ້າສູ່ລະບົບໃນແອັບພລິເຄຊັນຂອງທ່ານແລະເລີ່ມຕັ້ງຄ່າມັນຕື່ມອີກກັບແອັບແລະການຕັ້ງຄ່າທີ່ທ່ານຕ້ອງການ.

ຂັ້ນຕອນທີ 4: ເຂົ້າເຖິງ Odoo ຈາກ Nginx Frontend

ທ່ານສາມາດຕັ້ງຄ່າລະບົບດັ່ງກ່າວເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດເຂົ້າເຖິງແຜງເວັບ Odoo ຜ່ານຕົວແທນດ້ານການຊໍ້າຊ້ອນ Nginx. ສິ່ງນີ້ສາມາດ ອຳ ນວຍຄວາມສະດວກໃຫ້ຜູ້ໃຊ້ສາມາດ ນຳ ໃຊ້ອິນເຕີເນັດໂຕ້ຕອບເວັບໄຊທ໌ Odoo ໄດ້ໄວຂື້ນ, ເນື່ອງຈາກບາງຖານຂໍ້ມູນຈາກຖານຂໍ້ມູນ Nginx, ຢູ່ໃນພອດ HTTP ມາດຕະຖານໂດຍບໍ່ ຈຳ ເປັນຕ້ອງໃສ່ http port 8069 ໂດຍຕົນເອງໃນ browser ຂອງພວກເຂົາ.

ເພື່ອ ກຳ ນົດການຕັ້ງຄ່ານີ້ກ່ອນອື່ນ ໝົດ ທ່ານ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງແລະ ກຳ ຫນົດຄ່າ Nginx ໃນລະບົບຂອງທ່ານໂດຍການອອກຂັ້ນຕອນຕໍ່ໄປນີ້.

10. ທຳ ອິດຕິດຕັ້ງ Nginx web server ດ້ວຍ ຄຳ ສັ່ງຕໍ່ໄປນີ້:

----------- 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;

ພ້ອມນີ້, ໃຫ້ ຄຳ ເຫັນກ່ຽວກັບ 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 ເປີດໃຊ້ງານຢູ່ໃນເຄື່ອງຂອງທ່ານຫຼືບໍ່.

ໃນກໍລະນີນະໂຍບາຍຖືກ ກຳ ນົດໃຫ້ ບັງຄັບໃຊ້ ປິດການໃຊ້ງານມັນໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:

# 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 ກຳ ລັງຟັງຢູ່, ປ່ຽນທີ່ຢູ່ທີ່ຜູກມັດຈາກທຸກອິນເຕີເຟດ (ຫລືທີ່ຢູ່) ໄປທີ່ localhost ເທົ່ານັ້ນ.

ການປ່ຽນແປງນີ້ຕ້ອງເຮັດພຽງແຕ່ສົມທົບກັບໂປແກຼມຕົວແທນຍ້ອນກັບ 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. ໃນກໍລະນີທີ່ເຄື່ອງຂອງທ່ານມີສາຍປ້ອງກັນເຄືອຂ່າຍທີ່ສະ ໜອງ ໂດຍ Firewall, ໃຫ້ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອເປີດພອດ Firewall ສູ່ໂລກພາຍນອກ ສຳ ລັບຕົວແທນ 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

ນັ້ນແມ່ນມັນ! ຕອນນີ້ທ່ານສາມາດເຂົ້າໃຊ້ໂປແກຼມ 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.