Cách cài đặt Odoo ERP 13 trên CentOS 8

theanh

Administrator
Nhân viên
Odoo là phần mềm ERP miễn phí, mã nguồn mở và phổ biến nhất, cung cấp nhiều ứng dụng kinh doanh bao gồm quản lý quan hệ khách hàng (CRM), kênh bán hàng, quản lý dự án, sản xuất, lập hóa đơn, kế toán, thương mại điện tử và nhiều ứng dụng khác. Đây là ứng dụng dựa trên web và có đầy đủ tính năng giúp bạn duy trì ERP trong bất kỳ doanh nghiệp nào. Odoo đi kèm với 30 mô-đun cốt lõi và hơn 4500 mô-đun do cộng đồng tạo ra giúp bạn tùy chỉnh từ một cửa hàng nhỏ đến một tập đoàn cấp doanh nghiệp.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình Odoo 13 với Nginx làm proxy ngược trên máy chủ CentOS 8.

Yêu cầu​

  • Máy chủ chạy CentOS 8 với RAM tối thiểu 2 GB.
  • Tên miền hợp lệ trỏ đến IP máy chủ của bạn. Trong hướng dẫn này, chúng ta sẽ sử dụng tên miền exmaple.com.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Bắt đầu​

Trước tiên, hãy cập nhật hệ thống và cài đặt kho lưu trữ EPEL bằng lệnh sau:
Mã:
dnf update
 dnf install epel-release
Tiếp theo, bạn sẽ cần cài đặt một số công cụ và phần phụ thuộc cần thiết để xây dựng Odoo trên hệ thống của mình.

Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.

Tạo người dùng Odoo​

Tiếp theo, bạn sẽ cần tạo một người dùng hệ thống mới có tên là odoo và thư mục gốc /opt/odoo bằng lệnh sau:
Mã:
useradd -m -U -r -d /opt/odoo -s /bin/bash odoo
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình PostgreSQL​

Odoo sử dụng PostgreSQL để lưu trữ dữ liệu của họ. Vì vậy, bạn sẽ cần cài đặt PostgreSQL trên máy chủ của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install postgresql postgresql-server postgresql-contrib
Sau khi cài đặt, hãy khởi tạo cơ sở dữ liệu bằng lệnh sau:
Mã:
/usr/bin/postgresql-setup initdb
Bạn sẽ nhận được kết quả sau:
Mã:
* Đang khởi tạo cơ sở dữ liệu trong '/var/lib/pgsql/data' * Đã khởi tạo, nhật ký nằm trong /var/lib/pgsql/initdb_postgresql.log
Tiếp theo, hãy khởi động dịch vụ PostgreSQL và cho phép dịch vụ này khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Mã:
systemctl start postgresql
 systemctl enable postgresql
Bây giờ bạn có thể xác minh PostgreSQL bằng lệnh sau:
Mã:
systemctl status postgresql
Bạn sẽ thấy kết quả sau:
Mã:
? postgresql.service - Máy chủ cơ sở dữ liệu PostgreSQL Đã tải: đã tải (/usr/lib/systemd/system/postgresql.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2019-12-02 01:01:44 EST; 6 giây trước Tiến trình: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS) PID chính: 31808 (postmaster) Nhiệm vụ: 8 (giới hạn: 12552) Bộ nhớ: 16,5M CGroup: /system.slice/postgresql.service ??31808 /usr/bin/postmaster -D /var/lib/pgsql/data ??31809 postgres: tiến trình ghi nhật ký ??31811 postgres: tiến trình kiểm tra con trỏ ??31812 postgres: tiến trình ghi ??31813 postgres: tiến trình ghi wal ??31814 postgres: tiến trình khởi chạy autovacuum ??31815 postgres: tiến trình thu thập số liệu thống kê ??31816 postgres: bgworker: trình khởi chạy sao chép logic
Tiếp theo, bạn sẽ cần tạo một Người dùng PostgreSQL có cùng tên với người dùng hệ thống như hiển thị bên dưới:
Mã:
su - postgres -c "createuser -s odoo"

Cài đặt Wkhtmltopdf​

Tiếp theo, bạn sẽ cần cài đặt công cụ wkhtmltopdf trong hệ thống của mình để Odoo có thể in báo cáo PDF. Bạn có thể cài đặt bằng lệnh sau:
Mã:
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
 dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm
Sau khi cài đặt, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình Odoo 13​

Trước tiên, chuyển sang người dùng Odoo bằng lệnh sau:
Mã:
su - odoo
Tiếp theo, tải xuống phiên bản mới nhất của Odoo 13 từ kho lưu trữ Git bằng lệnh git:
Mã:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13
Tiếp theo, tạo một môi trường ảo mới cho phiên bản Odoo 13 bằng lệnh sau:
Mã:
cd /opt/odoo
 python3 -m venv odoo13-venv
Tiếp theo, kích hoạt môi trường ảo bằng lệnh sau:
Mã:
source odoo13-venv/bin/activate
Bạn sẽ nhận được kết quả sau:
Mã:
(odoo13-venv) [odoo@centos8 ~]$
Tiếp theo, cài đặt tất cả các mô-đun Python cần thiết cho Odoo 13 bằng lệnh sau:
Mã:
pip3 install -r odoo13/requirements.txt
Sau khi tất cả các mô-đun cần thiết được cài đặt, hãy hủy kích hoạt môi trường ảo bằng lệnh sau:
Mã:
deactivate
Cuối cùng, thoát khỏi người dùng Odoo bằng lệnh sau:
Mã:
exit
Tiếp theo, tạo một thư mục mới để lưu trữ các mô-đun tùy chỉnh Odoo và nhật ký Odoo:
Mã:
mkdir /opt/odoo/odoo13-custom-addons
 mkdir /var/log/odoo13
 touch /var/log/odoo13/odoo.log
Tiếp theo, thay đổi quyền sở hữu của cả hai thư mục thành người dùng odoo bằng lệnh sau:
Mã:
chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
 chown -R odoo:odoo /var/log/odoo13/
Tiếp theo, tạo tệp cấu hình mới cho Odoo 13 bằng lệnh sau:
Mã:
nano /etc/odoo.conf
Thêm các dòng sau:
Mã:
[options]admin_passwd = admin@123db_host = Falsedb_port = Falsedb_user = odoodb_password = Falsexmlrpc_port = 8069logfile = /var/log/odoo13/odoo.loglogrotate = Trueaddons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons
Lưu và đóng tệp khi bạn hoàn tất.

Tạo tệp Systemd Service cho Odoo 13​

Tiếp theo, bạn sẽ cần tạo tệp đơn vị systemd mới cho Odoo 13 để quản lý dịch vụ Odoo.

Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/systemd/system/odoo13.service
Thêm các dòng sau:
Mã:
[Unit]Description=Odoo13#Requires=postgresql-10.6.service#After=network.target postgresql-10.6.service[Service]Type=simpleSyslogIdentifier=odoo13PermissionsStartOnly=trueUser=odooGroup=odooExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.confStandardOutput=journal+console[Install]WantedBy=multi-user.target
Lưu và đóng tệp. Sau đó, tải lại daemon systemd bằng lệnh sau:
Mã:
systemctl daemon-reload
Tiếp theo, khởi động dịch vụ Odoo và cho phép nó khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Mã:
systemctl start odoo13
 systemctl enable odoo13
Bạn cũng có thể xác minh trạng thái Odoo bằng lệnh sau:
Mã:
systemctl status odoo13
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? odoo13.service - Odoo13 Đã tải: đã tải (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2019-12-02 01:15:43 EST; 2 giây trước PID chính: 17022 (python3) Nhiệm vụ: 4 (giới hạn: 12552) Bộ nhớ: 63,7M CGroup: /system.slice/odoo13.service ??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf02/12 01:15:43 centos8 systemd[1]: Đã khởi động Odoo13.
Theo mặc định, Odoo lắng nghe trên cổng 8069. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
netstat -plntu | grep 8069
Bạn sẽ thấy kết quả đầu ra sau:
Mã:
tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 17022/python3

Cấu hình Nginx làm Proxy ngược cho Odoo 13​

Tiếp theo, bạn sẽ cần cài đặt và cấu hình Nginx làm proxy ngược cho phiên bản Odoo 13.

Đầu tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau:
Mã:
dnf install nginx
Sau khi cài đặt, hãy tạo tệp cấu hình máy chủ ảo mới bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/odoo13.conf
Thêm nội dung sau dòng:
Mã:
upstream odoo { server 127.0.0.1:8069;}server { listen 80; server_name example.com; access_log /var/log/nginx/odoo13.access.log; error_log /var/log/nginx/odoo13.error.log; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_redirect tắt; proxy_pass http://odoo; }location ~* /web/static/ { proxy_cache_valid 200 90 phút; proxy_buffering bật; hết hạn 864000; proxy_pass http://odoo; } gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on;}
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động dịch vụ Nginx và cho phép nó khởi động sau khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start nginx
 systemctl enable nginx
Bạn có thể xác minh trạng thái của dịch vụ Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy đầu ra sau:
Mã:
? nginx.service - Máy chủ proxy ngược và HTTP nginx Đã tải: đã tải (/usr/lib/systemd/system/nginx.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2019-12-02 01:25:15 EST; 6 giây trước Tiến trình: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Tiến trình: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Tiến trình: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) PID chính: 17245 (nginx) Nhiệm vụ: 3 (giới hạn: 12552) Bộ nhớ: 5,4M CGroup: /system.slice/nginx.service ??17245 nginx: tiến trình chính /usr/sbin/nginx ??17246 nginx: tiến trình công nhân ??17247 nginx: tiến trình công nhân02/12 01:25:15 centos8 systemd[1]: Đang khởi động máy chủ proxy ngược và HTTP nginx...02/12 01:25:15 centos8 nginx[17241]: nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là ok02/12 01:25:15 centos8 nginx[17241]: nginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành công02/12 01:25:15 centos8 systemd[1]: Đã khởi động máy chủ proxy ngược và HTTP nginx.

Cấu hình Tường lửa​

Tiếp theo, bạn sẽ cần cho phép dịch vụ Nginx thông qua firewalld để truy cập phiên bản Odoo 13 từ hệ thống từ xa.

Bạn có thể chạy lệnh sau để cho phép dịch vụ Nginx thông qua firewalld:
Mã:
firewall-cmd --permanent --zone=public --add-service=nginx
 firewall-cmd --reload
Theo mặc định, SELinux được bật trong CentOS 8. Vì vậy, bạn sẽ cần cho phép HTTP thông qua SELinux. Bạn có thể cho phép bằng lệnh sau:
Mã:
setsebool -P httpd_can_network_connect on

Truy cập Giao diện web Odoo 13​

Bây giờ, Odoo 13 đã được cài đặt và định cấu hình. Đã đến lúc truy cập giao diện web Odoo 13.

Mở trình duyệt web của bạn và nhập URL . Bạn sẽ được chuyển hướng đến trang sau:



Bây giờ, hãy cung cấp Mật khẩu chính, Tên cơ sở dữ liệu, Email, Mật khẩu, Quốc gia và nhấp vào nút Tạo cơ sở dữ liệu. Bạn sẽ được chuyển hướng đến trang Quản trị Odoo 13:


Kết luận​

Trong hướng dẫn trên, bạn đã học cách cài đặt và cấu hình Odoo 13 trên máy chủ CentOS 8. Bạn cũng đã học cách cấu hình Nginx làm proxy ngược cho Odoo 13. Bây giờ bạn có thể tùy chỉnh phiên bản Odoo 13 của mình theo nhu cầu kinh doanh của mình.
 
Back
Bên trên