Giao diện người dùng Odoo 13 CE

Cài đặt và Triển khai Odoo 14 trên Máy chủ Ubuntu 22.04

Trong bài này, tôi sẽ hướng dẫn bạn 6 bước chi tiết để cài đặt Odoo 14 chạy với Python 3.8 và PostgreSQL 12 trên một máy chủ Ubuntu 22.04 duy nhất.

CẢNH BÁO: Odoo 14 KHÔNG hỗ trợ Python 3.10. Sẽ an toàn khi sử dụng Python 3.7 và Python 3.8!

Xin lưu ý rằng nếu bạn đang tìm cách cài đặt các phiên bản Odoo khác, bạn có thể đọc các bài liên quan khác của tôi:

Nếu bạn là nhà phát triển Odoo, bạn có thể quan tâm đến Cách thiết lập môi trường phát triển Odoo trên Ubuntu 22.04.

Tóm tắt

Sau khi hoàn thành cài đặt, chúng ta mong đợi sẽ đạt được những điều sau:

  1. Một phiên bản duy nhất của Odoo 14 chạy với Python 3.8:
    • Tài khoản Unix để chạy Odoo 14: odoo14
    • Phiên bản PostgreSQL: 12
    • Cổng HTTP: 8089, để người dùng có thể truy cập bằng trình duyệt web với địa chỉ kiểu như http://ip_cua_server:8089
  2. Phiên bản Odoo 14 sẽ chạy như một dịch vụ với tính năng tự động khởi động.
  3. Phiên bản này cũng sẽ được cách lý trong một môi trường chuyên biệt
  4. Nó cũng sẽ được đặt với một mật khẩu chính (master password) bảo mật để bảo vệ cơ sở dữ liệu của nó. Người dùng có mật khẩu chính sẽ có thể tạo / xóa / sao lưu / khôi phục cơ sở dữ liệu

Bước 1 - Tạo nhóm và người dùng để chạy Odoo

Để bảo mật, chúng ta nên chạy các phiên bản Odoo bằng các tài khoản người dùng Linux riêng biệt có các thông số kỹ thuật sau:

  1. Tài khoản và Nhóm:
    • Tên tài khoản: odoo14
    • Nhóm tài khoản: odoo
    • Thư mục home: /home/odoo14
  2. Tài khoản odoo14 sẽ không thể đăng nhập vì mục đích bảo mật và cũng phải là tài khoản hệ thống mà daemon và các tiến trình khác có thể dùng để chạy;

Tạo nhóm unix

Chạy lệnh sau để tạo nhóm odoo:

sudo addgroup odoo

Tạo tài khoản người dùng unix

Chạy lệnh sau để tạo tài khoản odoo14 và thêm nó vào nhóm odoo:

sudo adduser odoo14 --system \
--home=/home/odoo14 --disabled-login \
--disabled-password --ingroup odoo

Bước 2 - Cài đặt PostgreSQL 12

Tôi chưa thử nghiệm đầy đủ Odoo 14 với PostgreSQL 14 đi kèm với Ubuntu 22.04 nhưng tôi tin rằng nó sẽ hoạt động. Tuy nhiên, như đã thảo luận trong phần Tóm tắt, chúng ta sẽ cài đặt PostgreSQL 12. Nếu bạn muốn thử nghiệm với các phiên bản khác của PostgreSQL, bạn có thể thực hiện theo một bài hướng dẫn khác của tôi để cài đặt nhiều phiên bản PostgreSQL trên Ubuntu 22.04.

Thêm PPA PostgreSQL chính thức

Vì Ubuntu 22.04 không có biết gì về các phiên bản PostgreSQL ngoài 14, chúng ta cần thêm PPA chính thức từ tác giả PostgreSQL

# Create the file repository configuration: 
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 
# Import the repository signing key: 
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg 
# Update the package lists: 
sudo apt-get update 

Như thường lệ, chúng ta nên cập nhật hệ thống trước khi cài đặt bất kỳ thứ gì:

sudo apt dist-upgrade

Cài đặt PostgreSQL 12

sudo apt install postgresql-12

Sau khi cài đặt hoàn tất và tôi giả sử rằng bạn chưa cài đặt bất kỳ postgreSQL nào trước đó, cổng lắng nghe của cụm PostgreSQL mới được cài đặt sẽ là 5432.

Trong trường hợp bạn có các phiên bản PostgreSQL khác đang chạy và bạn muốn sắp xếp lại việc gán cổng, vui lòng làm theo hướng dẫn thay đổi cổng PostgreSQL.

Tạo Role cho cơ sở dữ liệu

Trong phần này, chúng tôi sẽ tạo một role trong PostgreSQL có cùng tên với tài khoản unix để Odoo 14 có thể xác thực PosgreSQL bằng cách sử dụng phương thức ident (không cần mật khẩu):

sudo -u postgres createuser odoo14 --interactive

Xin lưu ý là nếu PostgreSQL của bạn không đang kết nối trên cổng 5432, bạn sẽ cần chỉ định rõ cổng bạn sử dụng bawnfh cách sử dụng tùy chọn -p. Câu lệnh sẽ là:

sudo -u postgres createuser odoo14 --interactive -p <your_port_number>

Khi được hỏi trong phiên tương tác, vui lòng nhập như sau:

Tạo role odoo14 trong PostgreSQL 12
Tạo role odoo14 trong PostgreSQL 12

Bước 3 - Tải xuống mã nguồn Odoo 14 từ GitHub

Trong phần này, chúng ta sẽ tải xuống mã nguồn Odoo 14 từ GitHub và thực hiện chính sách bảo mật để truy cập đọc cho người dùng trong nhóm odoo.

Để tải xuống mã nguồn của Odoo 14 từ GitHub, chỉ cần chạy lệnh bên dưới để sao chép nó bằng git qua HTTP:

git clone -b 14.0 https://github.com/odoo/odoo.git /opt/odoo/odoo14

Hoặc, bạn có thể sao chép kho lưu trữ từ GitHub qua SSH để có hiệu suất và bảo mật tốt hơn bằng cách sử dụng lệnh sau:

git clone -b 14.0 git@github.com:odoo/odoo.git /opt/odoo/odoo14

Tùy thuộc vào tốc độ kết nối internet của bạn, quá trình này có thể mất vài phút hoặc hơn. Hãy kiên nhẫn hoặc mở một phiên khác để thực hiện bước tiếp theo để cài đặt Python 3.8 trong lúc chờ đợi.

Sau khi quá trình hoàn tất, bạn sẽ tìm thấy mã nguồn Odoo 14 trong thư mục /opt/odoo/odoo14/.

Bây giờ, hãy bảo mật mã nguồn của bạn để chỉ cho phép những người dùng của nhóm odoo có thể đọc nó bằng cách thay đổi quyền truy cập cho nhóm odoo.

sudo chown -hR root:odoo /opt/odoo/odoo14

Bước 4 - Cài đặt Python 3.8

Odoo 14 hỗ trợ chính thức Python 3.7 và 3.8. Tuy nhiên, phiên bản Python đi kèm với Ubuntu 22.04 là 3.10 nên chúng tôi cần tự cài đặt Python 3.7 và 3.8 theo cách thủ công. Đối với phạm vi của bài này, chúng ta sẽ chỉ cài đặt Python 3.8. Nếu bạn muốn Python 3.7, quá trình này cũng tương tự. Hoặc bạn có thể làm theo hướng dẫn về cách cài đặt nhiều phiên bản Python nếu bạn muốn có cả hai. Giờ thì hãy bắt tay với Python 3.8:

Thêm PPA Deadsnakes

sudo add-apt-repository ppa:deadsnakes/ppa

Cài đặt Python 3.8 và công cụ Môi trường ảo của nó

Vì chúng ta cần tạo một môi trường Python riêng biệt để Odoo 14 chạy để tránh làm hỏng những thứ hiện có, chúng ta cũng cần cài đặt Công cụ môi trường ảo Python. Đây là lệnh để cài đặt cả Python 3.8 và công cụ môi trường ảo của nó:

sudo apt install python3.8 python3.8-venv

Bây giờ, hãy chạy lệnh bên dưới để xác minh xem Python 3.8 có được cài đặt đúng cách hay không:

python3.8 -V

Sau đó, bạn sẽ thấy kết quả như dưới đây:

Xác minh xem Python 3.8 có được cài đặt đúng hay không
Xác minh xem Python 3.8 có được cài đặt đúng hay không

Bước 5 - Cài đặt Odoo 14

Các yêu cầu tiên quyết

Cài đặt phần mềm Ubuntu và các gói được yêu cầu để chạy Odoo 14 sau này:

sudo apt install python3.8-dev \
build-essential libsass-dev libjpeg-dev \
libjpeg8-dev libldap-dev libldap2-dev \
libpq-dev libsasl2-dev libxslt1-dev \
zlib1g-dev

Cài đặt wkhtmltopdf

Odoo tạo PDF từ HTML, đó là lý do tại sao chúng ta cần wkhtmltopdf.

Tải xuống wkhtmltopdf:

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb

Cài đặt wkhtmltopdf:

sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb
# force install dependencies
sudo apt -f install -y

Cài đặt Odoo 14 với Python 3.8 và PostgreSQL 12

Tạo môi trường ảo Odoo 14 Python 3.8

Tạo thư mục cha cho Odoo 14 với môi trường ảo Python 3.8:

sudo mkdir -p /python-venv/3.8/odoo14

Bảo mật môi trường ảo:

sudo chown -hR odoo14:odoo /python-venv/3.8/odoo14

Chuyển tài khoản hiện tại sang odoo14 với hỗ trợ bash:

sudo su - odoo14 -s /bin/bash

Tạo môi trường ảo:

python3.8 -m venv /python-venv/3.8/odoo14

Cài đặt các thư viện Python bắt buộc cho Odoo 14

Kích hoạt môi trường ảo mà chúng ta đã tạo ở trên:

source /python-venv/3.8/odoo14/bin/activate

Như thường lệ, trước tiên chúng ta cần nâng cấp pip lên phiên bản mới nhất cho môi trường ảo hiện hành trước:

pip install --upgrade pip

Bây giờ, hãy bắt đầu cài đặt các thư viện theo yêu cầu của Odoo 14 cho môi trường ảo. Hãy chắc chắn rằng bạn đã hoàn thành việc nhân bản mã nguồn Odoo 14.

pip install -r /opt/odoo/odoo14/requirements.txt

Khởi động Odoo 14

Bây giờ, chúng ta có thể khởi động Odoo 14 trong môi trường ảo bằng cách chạy lệnh sau kết nối PostgreSQL trên cổng 5432 và cung cấp cổng HTTP 8089 để máy khách truy cập:

/opt/odoo/odoo14/odoo-bin --http-port=8089

Nếu cụm PostgreSQL của bạn được lắng nghe trên một cổng khác không phải là 5432, lệnh của bạn sẽ là:

/opt/odoo/odoo14/odoo-bin --db_port=<your_db_port> --http-port=8089

Bạn sẽ thấy kết quả ở terminal như hình dưới đây:

Khởi động Odoo 14 với Python 3.8 và PostgreSQL 12 từ Giao diện dòng lệnh
Khởi động Odoo 14 với Python 3.8 và PostgreSQL 12 từ Giao diện dòng lệnh

Bây giờ, bạn có thể mở trình duyệt của mình và nhập địa chỉ kiểu như http://your_id:8089 để xem Giao diện Trình tạo / chọn Cơ sở dữ liệu Odoo 14 như bên dưới:

Giao diện Trình chọn / tạo cơ sở dữ liệu Odoo 14
Giao diện Trình chọn / tạo cơ sở dữ liệu Odoo 14

Bây giờ, bạn có thể nhập tên cơ sở dữ liệu, email, v.v. sau đó nhấn nút Create database để khởi tạo cơ sở dữ liệu đầu tiên cho phiên bản Odoo 14 của bạn.

Bạn cũng có thể nhập master password ở lần đầu tiên và sử dụng nó cho lần sau thay vì sử dụng gợi ý mặc định khó nhớ. Hoặc, bạn có thể thiết lập nó sau đó ở trong Tệp cấu hình Odoo.

Dừng Odoo 14 và Thoát

Để dừng Odoo 14, chỉ cần quay lại ga cuối và nhấn Ctrl + C hai lần.

Hủy kích hoạt môi trường ảo

deactivate

Quay lại tài khoản người dùng unix trước đó:

exit

Bước 6 - Chạy Odoo 14 dưới dạng dịch vụ / daemon

Trong phần này, tôi sẽ hướng dẫn bạn cách tạo một dịch vụ khởi động cho phiên bản Odoo 14 mới được cài đặt của bạn để nó sẽ chạy như một dịch vụ và khởi động mỗi khi máy chủ khởi động lại.

Tạo tệp cấu hình Odoo 14

Tệp cấu hình là tệp lưu trữ các chỉ thị cấu hình cho phép Odoo biết cách chạy (ví dụ: đường dẫn đến các module bổ trợ, cổng cơ sở dữ liệu, v.v.).

Trong phần này, tôi sẽ tạo một tệp cấu hình đặt tên là odoo14.conf và lưu trữ trong /home/odoo14. Tôi sẽ sử dụng trình soạn thảo văn bản nano để tạo tệp này:

sudo nano /home/odoo14/odoo14.conf

Bây giờ, hãy copy và paste những thứ sau vào giao diện người dùng trình soạn thảo nano của bạn:

[options]
addons_path = /opt/odoo/odoo14/odoo/addons,/opt/odoo/odoo14/addons
admin_passwd = admin
csv_internal_sep = ,
data_dir = /home/odoo14/.local/share/Odoo
db_host = False
db_maxconn = 64
db_name = False
db_password = False
db_port = False
db_sslmode = prefer
db_template = template0
db_user = False
dbfilter =
demo = {}
email_from = False
geoip_database = /usr/share/GeoIP/GeoLite2-City.mmdb
http_enable = True
http_interface =
http_port = 8089
import_partial =
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 60
limit_time_real = 120
limit_time_real_cron = -1
list_db = True
log_db = False
log_db_level = warning
log_handler = :INFO
log_level = info
logfile =
longpolling_port = 8090
max_cron_threads = 2
osv_memory_age_limit = False
osv_memory_count_limit = False
pg_path =
pidfile =
proxy_mode = False
reportgz = False
screencasts =
screenshots = /tmp/odoo_tests
server_wide_modules = base,web
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
syslog = False
test_enable = False
test_file =
test_tags = None
transient_age_limit = 1.0
translate_modules = ['all']
unaccent = False
upgrade_path =
without_demo = False
workers = 0

Xin lưu ý rằng mật khẩu chính để bảo mật được kiểm soát bởi chỉ mục admin_passwd trong tệp cấu hình. Bạn nên thay đổi nó thành một mật khẩu mạnh. Bạn cũng có thể bắt đầu tinh chỉnh Odoo 14 bằng cách sửa đổi các chỉ thị khác. Sau khi mọi thứ đều ổn, bạn lưu tệp và thoát bằng cách nhấn Ctrl+X và nhập y rồi bấm Enter.

Để cho phép tài khoản odoo14 truy cập được vào tệp cấu hình trong khi vẫn ngăn ngừa các tài khoản khác truy cập vào đó, hãy thực hiện lệnh sau:

sudo chown odoo14:root /home/odoo14/odoo14.conf

Tạo tệp dịch vụ

Tôi đang sử dụng lại trình soạn thảo văn bản nano để tạo tệp bằng cách chạy lệnh bên dưới:

sudo nano /lib/systemd/system/odoo14.service

Sau đó, sao chép và dán những thứ sau vào giao diện người dùng trình soạn thảo văn bản nano của bạn:

[Unit]
Description=Odoo14
After=network.target postgresql.service

[Service]
Type=simple
PermissionsStartOnly=true
User=odoo14
Group=odoo
SyslogIdentifier=odoo14
PIDFile=/run/odoo14/odoo14.pid
ExecStartPre=/usr/bin/install -d -m755 -o odoo14 -g odoo /run/odoo14
ExecStart=/python-venv/3.8/odoo14/bin/python /opt/odoo/odoo14/odoo-bin -c /home/odoo14/odoo14.conf --pid=/run/odoo14/odoo14.pid
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
Alias=odoo14.service
WantedBy=multi-user.target

Để lưu tệp và thoát, chỉ cần nhấn Ctrl + X, sau đó nhập y và nhấn nút Enter.

Bây giờ, hãy chạy lệnh sau để thông báo systemd rằng tệp đơn vị dịch vụ mới tồn tại:

sudo systemctl daemon-reload

Để kích hoạt dịch vụ và đặt nó chạy khi khởi động:

sudo systemctl enable --now odoo14

Bây giờ, hãy khởi động Odoo 14 của bạn bằng systemd:

sudo systemctl start odoo14

Hãy mở trình duyệt web của bạn và nhập địa chỉ http://ip_cua_server:8089 để xem Giao diện người dùng tạo cơ sở dữ liệu Odoo 14.

Để dừng nó, chỉ cần chạy:

sudo systemctl stop odoo14

Để lại một câu trả lời