Hướng dẫn cài đặt Odoo trên Ubuntu 18.04
Bài viết này sẻ hướng dẫn các bước để cài đặt Odoo trên Ubuntu 18.04 Linux. Tôi sẽ bắt đầu với các bản cập nhật hệ điều hành tiêu chuẩn. Chúng tôi sẽ không xây dựng Odoo theo cách thủ công vì các gói ‘deb‘ của Odoo có sẵn cho Ubuntu 18.04.
Bước 1: Cập nhật hệ thống Ubuntu
Bắt đầu bằng cách cập nhật Ubuntu Linux của bạn.
sudo apt update
sudo apt -y upgrade
Khởi động lại là cần thiết sau khi nâng cấp.
sudo reboot
Bước 2: Cài đặt cơ sở dữ liệu PostgreSQL
Odoo khuyên bạn nên sử dụng máy chủ cơ sở dữ liệu PostgreQuery để lưu trữ dữ liệu, cài đặt máy chủ cơ sở dữ liệu PostgreQuery trên Ubuntu 18.04 Linux bằng hướng dẫn bên dưới.
Cài đặt PostgreSQL 12 trên Ubuntu 18.04
Bước 3: Cài đặt wkhtmltopdf
wkhtmltopdf là cần thiết để in báo cáo vì nó chuyển đổi html sang pdf. Phiên bản wkhtmltopdf có sẵn trong kho Ubuntu không hỗ trợ các tiêu đề và chân trang nên nó không được sử dụng như một phụ thuộc trực tiếp.
Phiên bản được đề xuất của wkhtmltopdf để cài đặt là0.12,5và có sẵn trên trang tải xuống wkhtmltopdf , trong phần lưu trữ.
Cài đặt wkhtmltopdf & wkhtmltoimage trên Ubuntu 18.04 / Debian 10 Linux
Bước 4: Cài đặt Odoo 13 trên Ubuntu 18.04 LTS
Thêm kho lưu trữ gỡ lỗi Odoo để bạn có thể cài đặt Odoo 13 trên Ubuntu 18.04.
wget -O - //nightly.odoo.com/odoo.key | sudo apt-key add -
echo "deb //nightly.odoo.com/13.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list
Cập nhật bộ đệm Apt và cài đặt Odoo 13 trên Ubuntu 18.04.
sudo apt update
sudo apt install odoo
Dịch vụ được khởi động tự động sau khi cài đặt Odoo trên Ubuntu 18.04 Linux.
$ systemctl status odoo ● odoo.service - Odoo Open Source ERP and CRM Loaded: loaded (/lib/systemd/system/odoo.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 14:02:14 UTC; 3h 11min ago Main PID: 24088 (odoo) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo.service └─24088 /usr/bin/python3 /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo/odoo-server.log Oct 19 14:02:14 foreman.example.com systemd[1]: Started Odoo Open Source ERP and CRM.
Đặt dịch vụ để bắt đầu trên mỗi lần khởi động lại hệ thống.
$ sudo systemctl enable --now odoo enabled
Dịch vụ được bắt đầu trên cổng 8069. Điều này có thể được xác nhận bằng lệnh bên dưới.
$ ss -tunelp | grep 8069 tcp LISTEN 0 128 0.0.0.0:8069 0.0.0.0:* uid:113 ino:1906251 sk:d <->
Bước 5: Định cấu hình Nginx Proxy cho Odoo 13
Cài đặt Nginx trên hệ thống Ubuntu của bạn,
sudo apt -y install nginx vim
Có hai kịch bản cho cấu hình proxy Nginx – Với HTTPS và khi lưu lượng truy cập không được phục vụ qua kết nối an toàn. Trong phần này, chúng tôi sẽ xem xét cả hai thiết lập.
Thiết lập proxy Nginx HTTP cho Odoo
Tạo một tập tin cấu hình mới cho odoo.
sudo vim /etc/nginx/conf.d/odoo.conf
Sửa đổi đoạn cấu hình này để phù hợp với thiết lập của bạn.
# Odoo Upstreams
upstream odooserver {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name erp.computingforgeeks.com;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# Proxy settings
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Request for root domain
location / {
proxy_redirect off;
proxy_pass //odooserver;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass //odooserver;
}
# Gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
Tên miền dịch vụ của tôi trong ví dụ này làerp.computingforgeek.com, thay thế nó bằng tên miền chính xác của bạn sẽ được sử dụng với Odoo. Một bản ghi DNS hợp lệ là cần thiết để truy cập bên ngoài là tốt.
Kiểm tra cú pháp cấu hình của bạn:
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Nếu các cài đặt được coi là ok, hãy khởi động lại dịch vụ nginx.
sudo systemctl restart nginx
Không có lỗi nên gặp khi khởi động lại.
$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-10-19 17:34:39 UTC; 5s ago
Docs: man:nginx(8)
Process: 626 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 615 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 631 (nginx)
Tasks: 2 (limit: 2362)
CGroup: /system.slice/nginx.service
├─631 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─632 nginx: worker process
....
Sử dụng Chứng nhận SSL mã hóa cho Odoo trên Nginx
Chúng tôi luôn khuyến nghị sử dụng mã hóa SSL để triển khai sản xuất. Let Encrypt là một ưu đãi SSL miễn phí mà bạn có thể sử dụng trong Cài đặt của mình.
Nhận mã hóa chứng chỉ SSL cho tên miền của bạn.
wget //dl.eff.org/certbot-auto
chmod +x certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo systemctl stop nginx
export DOMAIN="erp.computingforgeeks.com"
export EMAIL="myemail@computingforgeeks.com"
sudo /usr/local/bin/certbot-auto certonly --standalone -d ${DOMAIN} --preferred-challenges http --agree-tos -n -m ${EMAIL} --keep-until-expiring
Nếu quá trình thực thi được thực hiện, các đường dẫn đến tệpchứng chỉvàchuỗisẽ được in ra.
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/erp.computingforgeeks.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/erp.computingforgeeks.com/privkey.pem Your cert will expire on 2020-01-17. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: //letsencrypt.org/donate Donating to EFF: //eff.org/donate-le
Tạo cron để gia hạn chứng chỉ.
$ sudo crontab -e 15 3 * * * /usr/local/bin/certbot-auto renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
Tạo tập tin cấu hình Nginx.
sudo vim /etc/nginx/conf.d/odoo.conf
Sửa đổi dưới đây và thêm vào tập tin.
# Odoo Upstreams
upstream odooserver {
server 127.0.0.1:8069;
}
# http to https redirection
server {
listen 80;
server_name erp.computingforgeeks.com;
return 301 //erp.computingforgeeks.com$request_uri;
}
server {
listen 443 ssl;
server_name erp.computingforgeeks.com;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# SSL
ssl_certificate /etc/letsencrypt/live/erp.computingforgeeks.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/erp.computingforgeeks.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/erp.computingforgeeks.com/chain.pem;
# Proxy settings
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Request for root domain
location / {
proxy_redirect off;
proxy_pass //odooserver;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass //odooserver;
}
# Gzip Compression
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
Đừng quên thay thếerp.computingforgeek.combằng tên miền của bạn.
Khởi động lại Nginx.
sudo systemctl restart nginx
Bước 6: Truy cập giao diện Odoo Web