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.
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:
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.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi cài đặt, hãy khởi tạo cơ sở dữ liệu bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
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:
Bây giờ bạn có thể xác minh PostgreSQL bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
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:
Sau khi cài đặt, bạn có thể tiến hành bước tiếp theo.
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:
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:
Tiếp theo, kích hoạt môi trường ảo bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
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:
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:
Cuối cùng, thoát khỏi người dùng Odoo bằng lệnh sau:
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:
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:
Tiếp theo, tạo tệp cấu hình mới cho Odoo 13 bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Bạn có thể tạo tệp này bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp. Sau đó, tải lại daemon systemd bằng lệnh sau:
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:
Bạn cũng có thể xác minh trạng thái Odoo bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
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:
Bạn sẽ thấy kết quả đầu ra sau:
Đầu tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau:
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:
Thêm nội dung sau dòng:
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:
Bạn có thể xác minh trạng thái của dịch vụ Nginx bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bạn có thể chạy lệnh sau để cho phép dịch vụ Nginx thông qua firewalld:
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ở 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:
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
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
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
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
Mã:
/usr/bin/postgresql-setup initdb
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
Mã:
systemctl start postgresql
systemctl enable postgresql
Mã:
systemctl status postgresql
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
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
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
Mã:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13
Mã:
cd /opt/odoo
python3 -m venv odoo13-venv
Mã:
source odoo13-venv/bin/activate
Mã:
(odoo13-venv) [odoo@centos8 ~]$
Mã:
pip3 install -r odoo13/requirements.txt
Mã:
deactivate
Mã:
exit
Mã:
mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log
Mã:
chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/
Mã:
nano /etc/odoo.conf
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
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
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
Mã:
systemctl daemon-reload
Mã:
systemctl start odoo13
systemctl enable odoo13
Mã:
systemctl status odoo13
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.
Mã:
netstat -plntu | grep 8069
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
Mã:
nano /etc/nginx/conf.d/odoo13.conf
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;}
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
systemctl status nginx
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
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: