Skip to main content

在 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 提供多种适用方案:

前提条件

  • 以 root 或具有 sudo 权限的用户进行 SSH 访问
  • Ubuntu 24.04 LTS 64 位系统
  • x64 处理器
  • 至少 2 GB 内存(Odoo + PostgreSQL 建议 4 GB)
  • 约 10 GB 可用磁盘空间(建议 SSD)
  • 端口 8069 可访问(Odoo Web 界面)

配置要求

组件最低推荐
内存2 GB4-8 GB
CPU2 核4 核
存储10 GB SSD20 GB SSD
网络100 Mbps1 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_hostPostgreSQL 主机(通常为 localhost)
db_user为 Odoo 创建的 PostgreSQL 用户
db_passwordPostgreSQL 用户密码
addons_pathOdoo 插件路径
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
Python 版本

若 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_hostdb_userdb_passworddb_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

参考