Ubuntu 安裝 Odoo 17 詳細教程
本教程將指導您在 Ubuntu 系統上從源代碼安裝 Odoo 17。Odoo 是一款功能強大的開源 ERP 和 CRM 軟件套件。本教程適用于希望自行配置和管理 Odoo 環境的用戶,尤其適合開發者和系統管理員。
教程概述
本教程將涵蓋以下步驟:
- 系統更新: 確保您的 Ubuntu 系統是最新的。
- 安裝依賴: 安裝 Odoo 17 運行所需的軟件包,包括 Python、PostgreSQL、wkhtmltopdf 等。
- 配置 PostgreSQL: 安裝并設置 PostgreSQL 數據庫,Odoo 使用它來存儲數據。
- 安裝 wkhtmltopdf: 安裝用于生成 PDF 報表的 wkhtmltopdf 工具。
- 下載 Odoo 17 源代碼: 從 GitHub 克隆 Odoo 17 的源代碼。
- 創建 Python 虛擬環境: 為 Odoo 創建獨立的 Python 運行環境。
- 安裝 Python 依賴: 在虛擬環境中安裝 Odoo 的 Python 依賴包。
- 首次運行 Odoo: 初始化數據庫并啟動 Odoo 服務。
- (可選)配置 systemd 服務: 將 Odoo 配置為 systemd 服務,以便長期穩定運行。
本教程假設您具備基本的 Linux 終端操作知識。
詳細步驟
1. 系統更新
首先,更新您的 Ubuntu 系統軟件包列表并升級已安裝的軟件包,確保系統處于最新狀態。
sudo apt update && sudo apt upgrade -y
2. 安裝依賴項
安裝 Odoo 17 所需的各種依賴項,包括 Python 開發環境、PostgreSQL 數據庫客戶端庫、XML 和 XSLT 處理庫、壓縮庫、認證庫、編譯工具、Git 和 PostgreSQL 服務器。
sudo apt install -y python3-pip python3-dev python3-venv python3-wheel libpq-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential git postgresql wget
這些依賴項的功能簡要說明:
python3-pip
: Python 包管理工具 pip。python3-dev
: Python 開發頭文件,用于編譯 Python 擴展。python3-venv
: Python 虛擬環境工具,用于創建隔離的 Python 環境。python3-wheel
: Python wheel 打包格式支持。libpq-dev
: PostgreSQL 客戶端庫開發文件,Python 需要連接 PostgreSQL。libxml2-dev
和libxslt1-dev
: XML 和 XSLT 處理庫開發文件。zlib1g-dev
: 壓縮庫開發文件。libsasl2-dev
和libldap2-dev
: 認證和 LDAP 支持庫開發文件。build-essential
: 編譯軟件所需的基本工具包,例如 gcc, make。git
: 版本控制系統,用于下載 Odoo 源代碼。postgresql
: PostgreSQL 數據庫服務器。wget
: 命令行下載工具,用于下載 wkhtmltopdf。
3. 設置 PostgreSQL
Odoo 使用 PostgreSQL 作為數據庫后端。在之前的步驟中,我們已經安裝了 PostgreSQL 服務器。現在需要進行一些基本設置。
- 啟動并啟用 PostgreSQL 服務:
sudo systemctl start postgresql
sudo systemctl enable postgresql
- 創建 PostgreSQL 用戶: 為了安全起見,建議創建一個專門用于 Odoo 的 PostgreSQL 用戶。通常使用當前 Ubuntu 用戶名作為 PostgreSQL 用戶名。
sudo -u postgres createuser --createdb --username postgres --no-createrole --no-superuser $USER
這條命令的含義:
-
sudo -u postgres
: 以postgres
用戶身份執行命令(PostgreSQL 的默認管理用戶)。 -
createuser
: PostgreSQL 命令,用于創建用戶。 -
--createdb
: 允許新用戶創建數據庫。 -
--username postgres
: 指定創建用戶的用戶名為postgres
(此參數是指定createuser
命令自身的用戶名,而非要創建的用戶名)。 -
--no-createrole
: 禁止新用戶創建角色。 -
--no-superuser
: 禁止新用戶成為超級用戶。 -
$USER
: 環境變量,代表當前的 Ubuntu 用戶名,新創建的 PostgreSQL 用戶名將與此相同。 -
(可選)設置 PostgreSQL 用戶密碼: 為了增強安全性,可以為 PostgreSQL 用戶設置密碼。
sudo -u postgres psql -c "ALTER USER $USER WITH PASSWORD 'your_password';"
將 your_password
替換為您想要設置的密碼。
4. 安裝 wkhtmltopdf
wkhtmltopdf 是一個用于將 HTML 轉換為 PDF 的工具,Odoo 使用它來生成 PDF 報表。務必下載與您的 Ubuntu 版本相匹配的 wkhtmltopdf 版本,否則可能導致 PDF 生成失敗。
訪問 wkhtmltopdf GitHub releases 頁面,找到適合您 Ubuntu 版本的 .deb
包鏈接。
例如,對于 Ubuntu 22.04 (Jammy),可以使用以下命令下載并安裝:
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb
rm wkhtmltox_0.12.6.1-2.jammy_amd64.deb
請根據您的 Ubuntu 版本,替換下載鏈接中的版本號和 Ubuntu 代號 (例如 jammy
, focal
, kinetic
等)。 如果您不確定您的 Ubuntu 版本,可以運行 lsb_release -a
命令查看。
5. 下載 Odoo 17 源代碼
使用 Git 克隆 Odoo 17 的源代碼倉庫到您的用戶主目錄下的 odoo17
文件夾。
git clone https://github.com/odoo/odoo --depth 1 --branch 17.0 ~/odoo17
git clone
: Git 命令,用于克隆倉庫。https://github.com/odoo/odoo
: Odoo 的官方 GitHub 倉庫地址。--depth 1
: 僅克隆最近一次提交,減少下載量。--branch 17.0
: 指定克隆 Odoo 17.0 分支。~/odoo17
: 指定克隆到的本地目錄,這里是用戶主目錄下的odoo17
文件夾。
6. 創建 Python 虛擬環境
進入 Odoo 源代碼目錄,并創建一個 Python 虛擬環境,以隔離 Odoo 的 Python 依賴,避免與系統 Python 環境沖突。
cd ~/odoo17
python3 -m venv venv
source venv/bin/activate
python3 -m venv venv
: 在當前目錄下創建名為venv
的 Python 虛擬環境。source venv/bin/activate
: 激活虛擬環境。激活后,您的終端提示符前會顯示(venv)
,表示您正在虛擬環境中工作。
7. 安裝 Python 依賴
在激活的虛擬環境中,安裝 Odoo 17 的 Python 依賴包。這些依賴包在 Odoo 源代碼目錄下的 requirements.txt
文件中列出。
pip install wheel
pip install -r requirements.txt
pip install wheel
: 安裝wheel
包,用于安裝 wheel 格式的 Python 包,可以提高安裝速度。pip install -r requirements.txt
: 使用 pip 安裝requirements.txt
文件中列出的所有 Python 包。
8. 首次運行 Odoo
現在可以首次運行 Odoo 17,初始化數據庫并啟動服務。
python3 odoo-bin -i base --addons-path=addons -d odoo17db
python3 odoo-bin
: 執行 Odoo 的主程序odoo-bin
,在虛擬環境的bin
目錄下。-i base
: 指定安裝base
模塊,這是 Odoo 的核心模塊,初始化數據庫時需要安裝。--addons-path=addons
: 指定附加模塊的路徑,默認為addons
目錄(位于 Odoo 源代碼根目錄下)。-d odoo17db
: 指定要創建的數據庫名稱為odoo17db
。
首次運行 Odoo 會初始化數據庫,并加載 base
模塊。您可以在終端看到 Odoo 的日志輸出。當看到類似 Odoo server is running ...
的信息時,表示 Odoo 服務已經啟動。
打開瀏覽器,訪問 http://localhost:8069
,您應該能看到 Odoo 的設置界面,可以創建管理員賬戶并開始使用 Odoo。
注意: 首次運行 Odoo 時,為了初始化數據庫,可能需要一些時間,請耐心等待。
9. (可選)配置 systemd 服務
為了讓 Odoo 在后臺長期穩定運行,并方便管理,建議將其配置為 systemd 服務。
- 創建 systemd 服務文件: 使用文本編輯器創建
/etc/systemd/system/odoo17.service
文件,并添加以下內容。請根據您的實際安裝路徑和用戶名進行調整。
[Unit]
Description=Odoo 17 Server
Requires=postgresql.service
After=network.target postgresql.service[Service]
Type=simple
User=your_username # 替換為您的 Ubuntu 用戶名
WorkingDirectory=/home/your_username/odoo17 # 替換為 Odoo 源代碼目錄
ExecStart=/home/your_username/odoo17/venv/bin/python3 /home/your_username/odoo17/odoo-bin -c /etc/odoo/odoo.conf
Restart=on-failure
StandardOutput=journal
StandardError=journal[Install]
WantedBy=multi-user.target
- 創建 Odoo 配置文件: 創建
/etc/odoo/odoo.conf
配置文件,并添加以下內容。請根據您的實際情況修改配置,例如管理員密碼、數據庫連接信息等。
[options]
admin_passwd = your_admin_password # 替換為您想要設置的管理員密碼
db_host = localhost
db_port = 5432
db_user = your_username # 替換為您的 Ubuntu 用戶名,也是 PostgreSQL 用戶名
db_password = your_database_password # 如果您為 PostgreSQL 用戶設置了密碼,請在此處填寫
addons_path = /home/your_username/odoo17/addons # 替換為 Odoo 源代碼目錄下的 addons 目錄路徑
確保將 your_username
替換為您的 Ubuntu 用戶名,your_admin_password
替換為您想要設置的 Odoo 管理員密碼,如果設置了 PostgreSQL 用戶密碼,也需要填寫 db_password
。
- 啟用并啟動 Odoo 服務:
sudo systemctl daemon-reload
sudo systemctl enable odoo17
sudo systemctl start odoo17
-
sudo systemctl daemon-reload
: 重新加載 systemd 配置,使新的服務文件生效。 -
sudo systemctl enable odoo17
: 設置 Odoo 服務開機自啟動。 -
sudo systemctl start odoo17
: 立即啟動 Odoo 服務。 -
檢查服務狀態: 可以使用以下命令檢查 Odoo 服務是否正在運行。
sudo systemctl status odoo17
如果服務正常運行,您應該看到 active (running)
的狀態。
現在,Odoo 17 應該已經在后臺作為 systemd 服務運行了。您仍然可以通過瀏覽器訪問 http://localhost:8069
來使用 Odoo。
常見問題與注意事項
- 端口占用: 默認情況下,Odoo 使用 8069 端口。如果該端口已被占用,您可以在運行
odoo-bin
時使用--xmlrpc-port
參數指定其他端口,例如python3 odoo-bin --xmlrpc-port=8070 ...
。 - 依賴安裝錯誤: 如果在安裝依賴時遇到錯誤,請仔細檢查錯誤信息,確保您的系統網絡連接正常,并檢查是否遺漏了某些依賴包。
- 數據庫連接錯誤: 如果 Odoo 無法連接到 PostgreSQL 數據庫,請檢查 PostgreSQL 服務是否正在運行 (
sudo systemctl status postgresql
),并檢查 Odoo 配置文件/etc/odoo/odoo.conf
中的數據庫連接信息是否正確。 - wkhtmltopdf 版本不兼容: 如果 PDF 報表生成失敗,很可能是 wkhtmltopdf 版本不兼容。請務必下載并安裝與您的 Ubuntu 版本匹配的 wkhtmltopdf 版本。
- 權限問題: 確保 Odoo 運行用戶(在 systemd 服務文件中指定)對 Odoo 源代碼目錄及其子目錄具有讀取和執行權限。
總結
通過以上步驟,您應該已經成功在 Ubuntu 系統上安裝了 Odoo 17。您可以根據您的需求進一步配置 Odoo,例如安裝更多模塊、配置 SMTP 服務器等。 建議您參考 Odoo 官方文檔和社區資源,以獲取更多高級配置和使用技巧。