在 Ubuntu 上安装 Odoo 19
本指南介绍如何在 Ubuntu 24.04 LTS 服务器上安装和配置 Odoo 19。Odoo 19 带来诸多功能与技术改进,以简化您的业务流程。
Odoo 19 已为法国强制性电子发票做好准备:自 2026 年 9 月 1 日起,增值税注册企业必须接收(并根据规模签发)结构化格式(Factur-X、UBL、CII)的电子发票,以及(如适用)具有证明力的签名 PDF。Odoo 可生成合规的 PDF 发票并通过认可平台集成相关流程。
订购服务器
要托管您的 Odoo 实例,HostMyServers 提供多种适用方案:
- Performance VPS - 适合小型企业
- NVMe VPS - 性价比高
- 经济型专用服务器 - 适合高负载部署
- 性能专用服务器 - 最佳性能
前提条件
- 以 root 或具有 sudo 权限的用户进行 SSH 访问
- Ubuntu 24.04 LTS 64 位系统
- x64 处理器
- 至少 2 GB 内存(Odoo + PostgreSQL 建议 4 GB)
- 约 10 GB 可用磁盘空间(建议 SSD)
- 端口 8069 可访问(Odoo Web 界面)
配置要求
| 组件 | 最低 | 推荐 |
|---|---|---|
| 内存 | 2 GB | 4-8 GB |
| CPU | 2 核 | 4 核 |
| 存储 | 10 GB SSD | 20 GB SSD |
| 网络 | 100 Mbps | 1 Gbps |
Odoo 监听 8069 端口(HTTP)。请在防火墙中开放该端口。
连接服务器
开始前请确保已 连接到 Ubuntu 服务器。根据您的环境:
使用用户名和 IP 连接(默认端口)
若服务器使用标准 SSH 端口(22):
ssh 用户@服务器IP地址
- 用户:服务器登录名
- 服务器IP地址:分配给您服务器的 IP 地址
使用自定义端口连接
若服务器使用非 22 的 SSH 端口:
ssh -p 端口号 用户@服务器IP地址
使 用 PEM 密钥连接
若需 PEM 密钥认证:
ssh -i /path/to/your/key.pem 用户@服务器IP地址
选择与您配置相符的方式。连接成功后即可继续安装。
系统更新
在安装 Odoo 19 前更新 Ubuntu 服务器:
sudo apt-get update
sudo apt-get upgrade -y
服务器安全
在继续前加强服务器安全。
OpenSSH Server
用于远程管理:
sudo apt-get install -y openssh-server
Fail2Ban
Fail2Ban 通过临时封禁相关 IP 防止暴力登录:
sudo apt-get install -y fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
确认 Fail2Ban 已启用:
sudo systemctl status fail2ban
安装软件包与库
Odoo 19 需要多个系统包。请使用以下命令安装。
Pip 与 Python 依赖
sudo apt-get install -y python3-pip
sudo apt-get install -y python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libpq-dev libjpeg-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev
Node.js 与 NPM
Node.js 用于部分 Odoo 前端任务:
sudo apt-get install -y npm
若不存在 node 命令,可创建符号链接:
sudo ln -sf /usr/bin/nodejs /usr/bin/node
Less 与 CSS 插件
Odoo 使用 Less 作为 CSS 预处理器:
sudo npm install -g less less-plugin-clean-css
sudo apt-get install -y node-less
安装与配置 PostgreSQL
Odoo 19 使用 PostgreSQL 作为数据库。
安装 PostgreSQL
sudo apt-get install -y postgresql
创建 Odoo 数据库用户
切换到 PostgreSQL 用户并创建专用用户:
sudo su - postgres
createuser --createdb --username postgres --no-createrole --superuser --pwprompt odoo19
exit
- createdb:允许用户创建数据库
- odoo19:Odoo 使用的 PostgreSQL 用户名
请为 odoo19 用户设置强密码,并记下供配置文件使用。
创建 Odoo 系统用户
创建用于运行 Odoo 的专用系统用户:
sudo adduser --system --home=/opt/odoo19 --group odoo19
- --system:创建系统用户(低 UID)
- --home=/opt/odoo19:Odoo 安装目录
- --group odoo19:同名用户组
从 GitHub 获取 Odoo 19(Community)
安装 Git
sudo apt-get install -y git
克隆 Odoo 19 仓库
以 odoo19 用户登录并将仓库克隆到主目录:
sudo su - odoo19 -s /bin/bash
cd /opt/odoo19
git clone https://github.com/odoo/odoo.git --depth 1 --branch 19.0 --single-branch .
exit
--branch 19.0 获取稳定版 Odoo 19 分支。开发版请使用 master。
安装 Python 包与依赖
Python 虚拟环境
sudo apt-get install -y python3-venv
sudo python3 -m venv /opt/odoo19/venv
激活环境并安装依赖
sudo -s
cd /opt/odoo19
source venv/bin/activate
pip install -r requirements.txt
wkhtmltopdf(PDF 生成)
Odoo 使用 wkhtmltopdf 生成 PDF 报告。请下载并安装对应包:
# 部分 wkhtmltopdf 版本所需的 OpenSSL 依赖
sudo wget -q http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb -O /tmp/libssl1.1.deb
sudo dpkg -i /tmp/libssl1.1.deb 2>/dev/null || true
# PDF 字体
sudo apt-get install -y xfonts-75dpi
# 下载 wkhtmltopdf(适用于 Ubuntu 24 的 Bionic 版本)
cd /tmp
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6.1-3.jammy_amd64.deb || sudo apt-get install -f -y
若无法获取 Jammy 包,可使用 Bionic 版本:
sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo apt-get install -f -y
退出虚拟环境
deactivate
exit
Odoo 配置文件
复制默认配置文件
sudo cp /opt/odoo19/debian/odoo.conf /etc/odoo19.conf
编辑配置
sudo nano /etc/odoo19.conf
配置示例:
[options]
; 数据库操作(创建、备份等)密码
admin_passwd = 您的管理员密码
db_host = localhost
db_port = 5432
db_user = odoo19
db_password = 您的PostgreSQL密码
addons_path = /opt/odoo19/addons
logfile = /var/log/odoo/odoo19.log
| 参数 | 说明 |
|---|---|
admin_passwd | 数据库管理界面密码(创建、备份等) |
db_host | PostgreSQL 主机(通常为 localhost) |
db_user | 为 Odoo 创建的 PostgreSQL 用户 |
db_password | PostgreSQL 用户密码 |
addons_path | Odoo 插件路径 |
logfile | 日志文件 |
权限与日志目录
sudo mkdir -p /var/log/odoo
sudo chown odoo19:root /var/log/odoo
sudo chown odoo19: /etc/odoo19.conf
sudo chmod 640 /etc/odoo19.conf
systemd 服务
将 Odoo 19 作为服务管理(启动、停止、开机自启)。
创建服务文件
sudo nano /etc/systemd/system/odoo19.service
内容:
[Unit]
Description=Odoo 19
Documentation=https://www.odoo.com
[Service]
Type=simple
User=odoo19
ExecStart=/opt/odoo19/venv/bin/python3 /opt/odoo19/odoo-bin -c /etc/odoo19.conf
[Install]
WantedBy=multi-user.target
若 venv 使用特定版本(如 python3.12),请相应修改路径:/opt/odoo19/venv/bin/python3.12
启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable odoo19.service
sudo systemctl start odoo19.service
查看状态
sudo systemctl status odoo19.service
查看日志
sudo tail -f /var/log/odoo/odoo19.log
访问 Odoo
在浏览器中打开:
http://服务器IP或域名:8069
首次访问时,Odoo 会提示创建新数据库:数据库名、邮箱、密码和语言。
默认端口为 8069。若在 /etc/odoo19.conf 中修改了端口(参数 http_port),请在 URL 中使用该端口。
防火墙配置
若使用 UFW,请开放 8069 端口:
sudo ufw allow 8069/tcp
sudo ufw reload
常用命令
| 命令 | 说明 |
|---|---|
sudo systemctl start odoo19 | 启动 Odoo |
sudo systemctl stop odoo19 | 停止 Odoo |
sudo systemctl restart odoo19 | 重启 Odoo |
sudo systemctl status odoo19 | 查看服务状态 |
sudo tail -f /var/log/odoo/odoo19.log | 实时查看日志 |
文件结构
| 路径 | 说明 |
|---|---|
/opt/odoo19/ | Odoo 安装(源码、venv) |
/opt/odoo19/addons/ | 官方插件 |
/etc/odoo19.conf | 配置文件 |
/var/log/odoo/odoo19.log | 日志文件 |
故障排除
服务无法启动
- 查看日志:
sudo journalctl -u odoo19.service -n 100 - 检查配置:
sudo -u odoo19 /opt/odoo19/venv/bin/python3 /opt/odoo19/odoo-bin -c /etc/odoo19.conf --stop-after-init - 确认 PostgreSQL 已运行:
sudo systemctl status postgresql
数据库连接错误
- 检查
/etc/odoo19.conf中的db_host、db_user、db_password、db_port - 测试连接:
sudo -u postgres psql -c "\du"(列出用户) - 确认 PostgreSQL 中存在用户
odoo19
无法访问 Web 界面
- 确认端口 8069 已开放:
sudo ss -tlnp | grep 8069 - 检查防火墙:
sudo ufw status - 查看 Odoo 日志中的启动错误
性能问题
- 增加服务器资源(内存、CPU)
- 配置带缓存和 SSL 的反向代理(Nginx/Apache)
- 在
odoo19.conf中调整参数以使用任务 worker