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:
- Cách cài đặt Odoo 8 trên Ubuntu 22.04
- Cách cài đặt Odoo 9 trên Ubuntu 22.04
- Cách cài đặt Odoo 10 trên Ubuntu 22.04
- Cách cài đặt Odoo 12 trên Ubuntu 22.04
- Cách cài đặt Odoo 13 trên Ubuntu 22.04
- Cách cài đặt Odoo 14 trên Ubuntu 22.04
- Cách cài đặt Odoo 15 trên Ubuntu 22.04
- Cách cài đặt Odoo 16 trên Ubuntu 22.04
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:
- Mã nguồn của Odoo 11 sẽ được đặt tại /opt/odoo/odoo11
- Nó chạy dưới một tài khoản unix có tên odoo11 thuộc nhóm có tên odoo
- 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.
- 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
- 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:

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

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:

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:

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