Cài đặt Odoo 17 trên Ubuntu 22.04
Bước 1: Cài đặt các thư viện cần thiết.
Tiến hành cập nhật các packages bằng
sudo apt-get update -y
Sau đó tiến hành cài đặt thư viện cần cho Odoo qua câu lệnh dưới đây.
sudo apt-get install python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev
Cài thư viện wkhtmltopdf:
sudo apt-get install wkhtmltopdf -y
Cài đặt Postgresql:
sudo apt install postgresql -y
Bước 2: Tạo user và clone source
Tại bước này, ta tiến hành tạo postgres user, tạo folder chứa Odoo và cấp quyền cho user vừa tạo. Sau đó clone source Odoo 17 từ github và tiến hành tạo môi trường và config Odoo. Cụ thể như sau: Tạo postgres user có tên là odoo:
sudo su - postgres -c "createuser -s odoo"
Tạo folder /opt/odoo17 và add quyền cho user odoo:
sudo useradd -m -d /opt/odoo17 -U -r -s /bin/bash odoo
Đăng nhập vào user odoo:
sudo su - odoo
Tiến hành clone source và chép vào đường dẫn /opt/odoo17/odoo:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odoo17/odoo
Bước 3: Tạo môi trường cho Odoo.
Đầu tiên ta tạo môi trường và kích hoạt theo dòng lệnh dưới đây:
python3 -m venv /opt/odoo17/env
source /opt/odoo17/env/bin/activate
Sau khi đã tạo xong, ta tiến hành cài packages “wheel” – một thành phần của hệ sinh thái Python giúp cài đặt gói hoạt động bình thường.
pip3 install wheel
Sau đó ta cài đặt các packages có trong file requirements.txt bằng wheel.
sudo pip3 install -r /opt/odoo17/odoo/requirements.txt
Sau khi đã cài đặt xong mà không có lỗi nào, chúng ta sẽ qua bước tiếp theo.
Bước 4: Config Odoo
Tại bước này, chúng ta đăng nhập dưới user odoo vừa tạo ở trên (không cần đăng nhập lại nếu vừa xong bước 3) và tiến hành tạo file odoo.conf nhằm cấu hình Odoo. Ta tạo file odoo.conf và cấp quyền cho user odoo theo câu lệnh sau:
sudo mkdir /var/log/odoo
sudo chown odoo:root /var/log/odoo
Tiếp theo ta dùng một text editor nào đó như vim hoặc nano để edit file odoo.conf vừa tạo.
sudo nano /etc/odoo.conf
Chép nội dung config này vào odoo.conf
[options]
; This is the password that allows database operations:
; admin_passwd = admin_password
db_host = False
db_port = 5432
db_user = odoo
proxy_mode = True
db_password = False
http_port = 8069
xmlrpc_port = 8069
logfile = /var/log/odoo/odoo.log
addons_path = /opt/odoo17/odoo/addons, /opt/odoo17/odoo/odoo/addons
Chú ý: Nếu bạn đang setup cho localhost thì có thể thay đổi proxy_mode = False
; Nếu bạn đang setup cho hosting và thuận tiện cho việc cài đặt NGINX thì hãy bật proxy_mode = True
nhé
Sau khi copy xong, nếu bạn đang chỉnh sửa bằng nano, hãy ấn Ctrl + X + y
để lưu và thoát.
Bước 5: Tạo Odoo services
Tiến hành tạo odoo services và chỉnh sửa:
sudo nano /etc/systemd/system/odoo.service
Copy nội dung này và dán vào file vừa tạo.
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo17/env/bin/python3 /opt/odoo17/odoo/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
Sau khi copy xong, nếu bạn đang chỉnh sửa bằng nano, hãy ấn Ctrl + X + y
để lưu và thoát.
Vậy là chúng ta đã tạo xong, đây là các câu lệnh để kiểm soát được Odoo services:
sudo systemctl enable odoo.service
sudo systemctl start odoo
sudo systemctl stop odoo
sudo systemctl status odoo
- enable: cho phép service được hoạt động
- start: chạy service
- stop: dừng service
- status: xem tình trạng của service
Ngoài ra ta có thể xem log của odoo bằng cách:
tail -f /var/log/odoo/odoo.log
Tới đây là bạn đã setup thành công Odoo trên Ubuntu. Chúc bạn thành công!
2 comments
Andy Anderson
March 12, 2022
This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.
Mary Williams
March 12, 2022
This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.