找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1657

积分

0

好友

215

主题
发表于 昨天 02:38 | 查看: 0| 回复: 0

收到部署Odoo 19系统的任务后,我首先查阅了官方资料。作为一款基于Python的企业级应用,Odoo 19在Ubuntu 24.04上的兼容性较好。以下记录从系统准备到服务上线的完整过程,供大家参考。

首先完成服务器的基础安装与配置。安装后发现系统时区有误,为了避免后续日志和业务时间错乱,需要立即修正。

apt update && apt upgrade -y
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp true

接着,安装一些项目运行所必需的基础依赖。

apt install -y wget curl gnupg2 python3-pip libpq-dev build-essential

安装PostgreSQL 16数据库

根据官方推荐,Odoo 19最好搭配PostgreSQL 16运行。我们需要添加PostgreSQL的官方软件源来安装指定版本,以避免系统默认版本可能带来的适配问题。

#添加PostgreSQL官方源
echo "deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main" > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt update

执行以下命令安装PostgreSQL 16及其附加组件。

apt install -y postgresql-16 postgresql-contrib-16

验证数据库安装状态

安装完成后,务必验证数据库版本和集群状态,这是确保后续步骤顺利进行的关键。

psql --version
pg_lsclusters

PostgreSQL版本与集群状态验证

配置Odoo专用数据库

接下来,为Odoo创建一个专用的数据库用户和数据库。在实验环境中,我们使用简单密码;但在生产环境中,请务必设置高强度密码。

su - postgres -c "createuser -s odoo"
su - postgres -c "psql -c \"ALTER USER odoo WITH PASSWORD 'odoo123';\""
su - postgres -c "createdb -O odoo odoo19"

为了简化部署流程(生产环境请根据安全需求调整),我们修改PostgreSQL的本地连接认证方式。

sed -i 's/peer/trust/g'  /etc/postgresql/16/main/pg_hba.conf
sed -i 's/md5/trust/g'  /etc/postgresql/16/main/pg_hba.conf

修改配置后,重启数据库服务并设置开机自启。

systemctl restart postgresql@16-main
systemctl enable postgresql@16-main

部署Odoo 19应用

Odoo 19可以从其官方网站下载对应的Debian安装包。官网提供了社区版和企业版,支持多种系统。

Odoo 19官方下载页面

下载完成后,使用 dpkg 命令进行安装。

dpkg -i /md0/odoo_19.0.20260118_all.deb

安装过程中很可能会遇到依赖缺失的报错。此时,运行以下命令可以自动修复依赖并完成安装。

apt -f install -y

依赖安装完毕后,可以验证Odoo是否安装成功。系统可能会提示使用root用户运行存在安全风险,在测试环境中我们可以暂时忽略。

odoo --version

Odoo版本验证与安装状态

至此,Odoo已经可以运行。但在实际场景中,我们可能需要将数据和日志存储到特定的挂载点(例如软阵列 /md0)。因此,需要进行数据目录迁移和配置。

配置Odoo数据与日志路径

首先,创建用于存放数据和日志的目录,并修改其属主为 odoo 用户。

mkdir -p /md0/odoo/{data,logs}
chown -R odoo:odoo /md0/odoo

接下来是配置的核心步骤:创建Odoo的主配置文件,指定数据库连接信息、数据目录和日志路径。

cat > /etc/odoo/odoo.conf << EOF
[options]
admin_passwd = admin123 #这个根据需要修改即可
db_host = localhost
db_port = 5432
db_user = odoo
db_password = odoo123
data_dir = /md0/odoo/data
logfile = /md0/odoo/logs/odoo.log
addons_path = /usr/lib/python3/dist-packages/odoo/addons
EOF

这里有一个需要注意的细节:默认的 odoo.service 系统服务文件会硬编码日志路径,我们需要修改它以使用配置文件中的设置。

编辑服务文件:

vim /usr/lib/systemd/system/odoo.service

找到 ExecStart 这一行并进行修改:

# 原始ExecStart行(需修改):
ExecStart=/usr/bin/python3 /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo-server.log
# 修改为:
ExecStart=/usr/bin/python3 /usr/bin/odoo --config /etc/odoo/odoo.conf

启动并验证Odoo服务

修改完系统服务配置后,需要重新加载并启动Odoo。

systemctl daemon-reload
systemctl restart odoo
systemctl enable odoo

通过查看服务状态,可以确认Odoo是否正常运行,并检查其使用的配置文件路径是否正确。

systemctl status odoo

Odoo服务运行状态验证

常见问题排查

访问 服务器IP:8059 时出现 “Internal Server Error” 是一个高频问题,请按以下步骤排查。

首先,养成查看日志的习惯,这是定位问题最直接的方法。

tail -100f /md0/odoo/logs/odoo.log

如果日志中显示类似 ERROR: relation \"ir_module_module\" does not exist 的错误,说明数据库尚未初始化。

这时,需要切换到 odoo 用户手动初始化数据库。

su - odoo -s /bin/bash
odoo -d odoo19 --init base --stop-after-init
exit
# 重启服务
systemctl restart odoo.service

完成初始化后,再次通过浏览器访问 http://服务器IP:8059。使用默认账号密码 admin / admin 登录。

Odoo 19登录界面

成功登录后,你将看到Odoo丰富的应用模块界面。

Odoo 19应用模块界面

生产环境优化建议

若计划用于生产环境,以下几点优化至关重要:

  1. 密码安全:务必修改 /etc/odoo/odoo.conf 中的 admin_passwd 以及PostgreSQL数据库里 odoo 用户的密码,避免因弱密码导致的安全攻击。
  2. 网络防护:配置防火墙,仅开放必要的端口(如Odoo的8059和SSH的22)。生产环境强烈建议使用Nginx进行反向代理,并配置HTTPS。
  3. 日志管理:配置 logrotate 对Odoo的日志文件进行轮转,防止日志文件无限增大占用磁盘空间。
  4. 数据备份:制定定期备份策略,包括 /md0/odoo/data 目录以及PostgreSQL数据库本身。
  5. 性能调优:根据服务器的硬件配置,适当调整PostgreSQL的 shared_bufferswork_mem 等参数,以提升数据库性能。

以上就是本次在Ubuntu 24.04上部署Odoo 19和PostgreSQL 16的完整流程。如果在部署中遇到其他问题,欢迎到 云栈社区 的技术论坛与更多开发者交流探讨。




上一篇:Django + Vue3 前后端分离实现注册登录全流程
下一篇:如何使用NirSoft LostMyPassword工具找回浏览器与邮件客户端密码
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 00:28 , Processed in 0.342726 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表