Giao diện người dùng Odoo 11

Cài đặt Odoo 11 từ mã nguồn lên Máy chủ Ubuntu 22.04

Trong bài này, tôi sẽ hướng dẫn bạn đi qua 6 bước cài đặt phiên bản Odoo 11 lỗi thời mà đã được phát hành từ ngày 5 tháng 10, 2017 và kết thúc vòng đời vào ngày 1 tháng 10 năm 2020 (khi Odoo 14 được phát hành)

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

Trong bài viết này, tôi sẽ hướng dẫn bạn 6 bước để cài đặt Odoo 11 trên máy chủ Ubuntu 22.04 để đạt được những điều sau:

  1. Mã nguồn của Odoo 11 sẽ được đặt tại /opt/odoo/odoo11
  2. Nó chạy dưới một tài khoản unix có tên odoo11 thuộc nhóm có tên odoo
  3. Nó có thể kết nối với PostgreSQL cục bộ dưới vai trò có tên odoo11 mà CÓ THỂ tạo cơ sở dữ liệu.
  4. Sau khi hoàn tất cài đặt, bạn có thể truy cập phiên bản Odoo 11 bằng trình duyệt web của mình
  5. Odoo 11 sẽ sử dụng PostgreSQL 10 để lưu trữ dữ liệu.

Bước1 - Tạo tài khoản người dùng để chạy Odoo

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

  • Tài khoản người dùng sẽ được đặt tên odoo11 và sẽ không thể đăng nhập cho mục đích bảo mật; Nó cũng phải là một tài khoản hệ thống mà theo đó daemon và các quy trình tự động khác chạy;
  • Một thư mục chính chuyên dụng để lưu trữ dữ liệu và các addon Odoo tùy chỉnh. Đó là một thực tiễn tốt để làm cho nó theo /home/ danh mục;
  • Tài khoản người dùng phải thuộc nhóm có quyền truy cập vào mã nguồn Odoo 11 (ví dụ: odoo);

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

sudo addgroup odoo

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

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

Bước 2 - Cài đặt PostgreSQL cho Odoo 11

Tôi chưa thử nghiệm đầy đủ Odoo 11 với phiên bản PostgreSQL mới nhất là 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, nếu bạn đang cài đặt Odoo 11 cho máy chủ vận hành thật của mình, tôi đoán bạn có thể muốn gắn bó với PostgreSQL 10.

Bạn có thể đọc một bài đăng khác của tôi nếu bạn muốn cài đặt nhiều phiên bản PostgreSQL trên Ubuntu 22.04 trong trường hợp bạn muốn một phiên bản PostgreSQL khác.

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 10

sudo apt install postgresql-10 # version 10

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 PostgreSQL 10 mới được cài đặt sẽ là 5432

Trong trường hợp bạn có nhiều phiên bản PostgreSQL đang chạy và bạn muốn sắp xếp lại việc gán các 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 các role SQL có cùng tên với tài khoản người dùng unix odoo11 cho mỗi phiên bản PostgreSQL để Odoo 11 chạy dưới odoo11 tài khoản sẽ có thể kết nối PostgreSQL bằng phương pháp xác thực danh tính (không sử dụng mật khẩu).

Vì cụm PostgreSQL 10 được cài đặt đang chạy trên cổng 5432, chúng tôi có thể sử dụng lệnh sau để tạo vai trò odoo11 cho PostgreSQL 10:

sudo -u postgres createuser odoo11 --interactive -p 5432

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

Tạo vai trò odoo11 trong PostgreSQL 10
Tạo vai trò odoo11 trong PostgreSQL 10

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

Như đã nói trong phần Tóm tắt điều hành, chúng tôi sẽ lưu trữ mã nguồn Odoo 11 trong / opt / odoo / odoo11.

sudo mkdir /opt/odoo

Cấp quyền truy cập cho các tài khoản người dùng trong nhóm odoo để đọc mã nguồn Odoo:

sudo chown root:odoo /opt/odoo

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

git clone -b 11.0 https://github.com/odoo/odoo.git /opt/odoo/odoo11

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 11.0 git@github.com:odoo/odoo.git /opt/odoo/odoo11

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. Xin hãy kiên nhẫn!

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

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 nó.

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

Bước 4 - Cài đặt Python 3.6 trên Ubuntu 22.04

Theo kinh nghiệm của tôi, Odoo nói chung đã hỗ trợ các phiên bản Python của và giữa các bản phát hành Ubuntu LTS trong suốt vòng đời của nó (tức là Python 3.6 và Python 3.7 và Python 3.8). Tuy nhiên, phiên bản Python đi kèm với Ubuntu 22.04, hệ điều hành đề cập đến trong bài này, là 3.10. Mặc dù một số người nói rằng nó sẽ hoạt động nhưng tôi khuyên bạn nên gắn bó với Python 3.6 hoặc 3.7 hoặc 3.8.

Nếu bạn đang xây dựng một máy chủ Odoo 11 mới, tôi tin rằng 3.8 sẽ là lựa chọn tốt nhất. Tuy nhiên, tại thời điểm viết bài này (tháng 10 năm 2022, Odoo 11 đã hết tuổi thọ từ lâu), lý do bạn đang cài đặt Odoo 11 có thể là bạn đang di chuyển phiên bản Odoo 11 hiện có sang máy chủ mới mà bạn quyết định chọn Ubuntu 22.04 làm hệ điều hành của bạn. Vì vậy, có thể bạn sẽ muốn sử dụng phiên bản Python cũ hơn để đảm bảo khả năng tương thích với cơ sở mã hiện tại của bạn (bao gồm cả mã tùy chỉnh của bạn). Vì vậy, tôi sẽ giúp bạn đạt được điều đó bằng cách hướng dẫn bạn cài đặt Odoo 11 với Python 3.6. Trong trường hợp bạn không ở trong tình trạng phải sử dụng phiên bản Python lỗi thời đó, bạn có thể làm theo quy trình tương tự hoặc xem bài đăng của tôi trên cách cài đặt nhiều phiên bản Python.

Điều kiện tiên quyết cho Python 3.6

Như thường lệ, trước tiên chúng ta cần cập nhật hệ thống:

sudo apt update; sudo apt dist-upgrade

Để biên dịch và cài đặt Python 3.6, chúng ta cần cài đặt một số gói và thư viện bắt buộc bằng cách thực hiện lệnh sau:

sudo apt install make build-essential libreadline-dev \
wget curl llvm libssl-dev zlib1g-dev libbz2-dev  \
libsqlite3-dev libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev libgdbm-dev \
libnss3-dev libedit-dev libc6-dev

Tải xuống mã nguồn Python 3.6

wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz

Giải nén và biên dịch Python 3.6

tar -xzf Python-3.6.15.tgz
cd Python-3.6.15
./configure --enable-optimizations --with-lto --with-pydebug
make -j 4  # adjust 4 for number of your CPU cores

Cài đặt Python 3.6

sudo make altinstall

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

python3.6 -V

Bạn sẽ thấy kết quả như bên dưới

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

Cài đặt PIP (Trình cài đặt gói Python)

sudo apt install python3-pip

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

Tạo thư mục chứa môi trường ảo Odoo 11

sudo mkdir -p /python-venv/3.6/odoo11

Đặt quyền truy cập thích hợp cho nhóm odoo và tài khoản odoo11:

sudo chown -hR odoo11: /python-venv/3.6/odoo11

Chuyển tài khoản sang bash của odoo11:

sudo su - odoo11 -s /bin/bash

Tạo một môi trường ảo và đặt tên là odoo11:

python3.6 -m venv /python-venv/3.6/odoo11

Bây giờ, hãy thoát odoo11 để quay lại tài khoản người dùng trước đó.

exit

Bước 5 - Cài đặt các gói và thư viện bắt buộc của Odoo 11

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

Chạy lệnh sau để cài đặt các gói cần thiết để cài đặt thư viện Python sau này.

sudo apt install libjpeg-dev libjpeg-turbo8-dev \
libjpeg8-dev libldap-dev libldap2-dev libpq-dev \
libsasl2-dev libxslt1-dev

Cài đặt Less Compiler

Odoo 11 yêu cầu trình biên dịch Less (Less Compiler) để biên dịch less sang css. Đây là cách chúng ta cài đặt less compiler:

Đầu tiên, chúng ta sẽ cài đặt nodejs:

sudo apt install nodejs

Thứ hai, chúng ta sẽ cài đặt trình quản lý gói Nodejs (còn gọi là npm):

sudo apt install npm

Sau đó, nâng cấp npm lên phiên bản mới nhất:

sudo npm install -g npm

Bây giờ, hãy cài đặt trình biên dịch Less bằng npm. Xin lưu ý rằng phiên bản Less mới nhất sẽ không hoạt động với Odoo 11. Chúng ta chỉ chỉ cài Less 3.10.3 để có thể hoạt động với tất cả các phiên bản Odoo sử dụng Less (cụ thể là Odoo 9, Odoo 10, Odoo 11).

sudo npm install -g less@3.10.3
sudo npm install -g less-plugin-clean-css

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

Cài đặt các thư viện Python cho Odoo 11

Đầu tiên, chúng ta cần kích hoạt môi trường ảo Odoo 11 mà chúng ta đã tạo ở trên bằng cách thực hiện lệnh:

# switch to odoo11's bash
sudo su - odoo11 -s /bin/bash
# activate the virtual environment
source /python-venv/3.6/odoo11

Sau khi kích hoạt, bạn sẽ thấy (odoo11) là tiền tố của dấu nhắc lệnh của bạn. Bây giờ, hãy nâng cấp pip (Trình cài đặt gói Python) lên phiên bản mới nhất của nó như thường lệ:

pip install --upgrade pip

Sau đó, bạn có thể bắt đầu cài đặt các gói và thư viện bắt buộc của Odoo 11 bằng lệnh pip như sau:

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

Khởi chạy Odoo 11

Bây giờ, hãy thử chạy lệnh sau để kiểm tra xem mọi thứ có ổn không:

/opt/odoo/odoo11/odoo-bin

Hoặc, nếu bạn muốn chạy Odoo 11 trên một cổng khác 8069 (cổng mặc định của Odoo), ví dụ 8089:

/opt/odoo/odoo11/odoo-bin --xmlrpc-port=8089

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

Chạy Odoo11 từ giao diện dòng lệnh
Chạy Odoo11 từ giao diện dòng lệnh

Bây giờ, bạn có thể bắt đầu mở trình duyệt web của mình và nhập địa chỉ http://ip_cua_server:8089 để xem kết quả như bên dưới:

Giao diện người dùng tạo cơ sở dữ liệu Odoo 11
Giao diện người dùng tạo cơ sở dữ liệu Odoo 11

Bây giờ, bạn có thể bắt đầu nhập tên cơ sở dữ liệu và các thông tin khác để Odoo 11 sẽ khởi tạo mọi thứ cho bạn

  • Tên cơ sở dữ liệu: v11_psql10
  • Email: your_name@example.com
  • Mật khẩu: mật khẩu bảo mật của bạn
  • Ngôn ngữ: chọn ngôn ngữ bạn thích trong danh sách ngôn ngữ thả xuống
  • Quốc gia: chọn quốc gia mà công ty của bạn được đăng ký chính thức. Chọn đúng có thể mang lại sự dễ dàng cho bạn sau này (ví dụ: các mô-đun bản địa hóa sẽ được cài đặt tương ứng)

Dừng Odoo 11

Để dừng phiên bản Odoo, chỉ cần nhấn Ctrl + C hai lần.

Thoát

Sau một số thao tác như trên, chúng ta có thể cần thoát khỏi môi trường chạy cho các tác vụ khác bằng cách sử dụng các lệnh sau:

# Deactivate the virtual environment
deactivate
# exit odoo11's bash session to get back the previous unix user
exit

Bước 6 - Chạy Odoo 11 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 dịch vụ khởi động cho Odoo 11 mới cài đặt của bạn để Odoo 11 của bạn sẽ chạy như một dịch vụ và khởi động mỗi khi máy chủ được khởi động.

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

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, mình sẽ tạo một tập tin cấu hình có tên odoo11.conf và lưu trữ trong / home / odoo11 để Odoo 11 sử dụng sau này. Tôi sẽ sử dụng trình chỉnh sửa nano để tạo tệp:

sudo nano /home/odoo11/odoo11.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/odoo11/odoo/addons,/opt/odoo/odoo11/addons
admin_passwd = admin
csv_internal_sep = ,
data_dir = /home/odoo11/.local/share/Odoo
db_host = False
db_maxconn = 64
db_name = False
db_password = False
db_port = False
db_sslmode = prefer
db_template = template1
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 = None
logrotate = False
longpolling_port = 8072
max_cron_threads = 2
osv_memory_age_limit = 1.0
osv_memory_count_limit = False
pg_path = None
pidfile = None
proxy_mode = False
reportgz = False
server_wide_modules = web
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
syslog = False
test_commit = False
test_enable = False
test_file = False
test_report_directory = False
translate_modules = ['all']
unaccent = False
without_demo = False
workers = 0

Bây giờ, lưu tệp và thoát bằng cách nhấn Ctrl + X, sau đó nhập y và nhấn nút Enter.

Để cho phép odoo11 truy cập tệp cấu hình:

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

Tạo tệp dịch vụ

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

Bây giờ, sao chép và dán nội dung sau vào giao diện trình soạn thảo nano của bạn

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

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

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

Bây giờ, lưu tệp và thoát bằng cách nhấn Ctrl + X, sau đó nhập y và nhấn nút Enter.

Chạy lệnh sau để thông báo cho systemd rằng có một tệp đơn vị dịch vụ mới:

sudo systemctl daemon-reload

Bây giờ, hãy kích hoạt dịch vụ và yêu cầu nó chạy khi khởi động:

sudo systemctl enable --now odoo11

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

sudo systemctl start odoo11

Rồi, 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 11.

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

sudo systemctl stop odoo11

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