奋斗
努力

odoo部署到阿里云?

云计算

将 Odoo 部署到阿里云是一个常见需求,尤其适用于企业级应用。以下是详细的部署步骤,涵盖从阿里云服务器购买到 Odoo 成功运行的全过程。


一、准备工作

1. 购买阿里云 ECS 实例

  • 登录 阿里云官网
  • 进入 ECS 云服务器,创建实例:
    • 地域:选择靠近用户的位置(如华北 1、华东 1)
    • 实例规格:建议选择至少 2核4G(如 ecs.c6.large
    • 镜像:选择 Ubuntu 20.04/22.04 64位(推荐)
    • 系统盘:建议 50GB 以上
    • 安全组:开放以下端口:
    • 22(SSH)
    • 80(HTTP)
    • 443(HTTPS)
    • 8069(Odoo 默认端口)

✅ 记得设置密码或上传 SSH 密钥。


二、连接服务器并更新系统

# 使用 SSH 登录
ssh root@你的公网IP

# 更新系统
sudo apt update && sudo apt upgrade -y

三、安装依赖环境

1. 安装 PostgreSQL(Odoo 数据库)

sudo apt install postgresql postgresql-contrib -y
sudo systemctl enable postgresql
sudo systemctl start postgresql

创建 Odoo 专用数据库用户:

sudo -u postgres createuser --createdb --pwprompt odoo
# 输入密码,例如:odoo123

2. 安装 Python 及相关依赖

sudo apt install python3 python3-pip python3-dev python3-venv git libpq-dev build-essential -y

3. 安装 Node.js(用于 Less 编译)

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
npm install -g less

四、下载并安装 Odoo

方法一:从 GitHub 安装社区版(推荐)

# 创建 odoo 用户(可选,增强安全)
sudo useradd -m -d /opt/odoo -U -s /bin/bash odoo

# 切换到 odoo 用户
sudo su - odoo

# 克隆 Odoo 源码(以 16.0 为例)
git clone https://github.com/odoo/odoo.git --branch 16.0 --single-branch

# 创建虚拟环境
python3 -m venv odoo-venv
source odoo-venv/bin/activate

# 安装 Python 依赖
pip install -r odoo/requirements.txt

⚠️ 注意:某些版本依赖可能出错,可尝试升级 pip 或忽略部分包。


五、配置 Odoo

创建配置文件

sudo su - odoo
nano ~/odoo.conf

内容示例:

[options]
; 基础配置
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom-addons
data_dir = /opt/odoo/.local/share/Odoo

; 网络配置
http_port = 8069
proxy_mode = True

; 数据库配置
db_host = False
db_port = False
db_user = odoo
db_password = odoo123

; 日志
logfile = /opt/odoo/odoo-server.log
log_level = info

✅ 可根据需要添加 admin_passwd 设置主密码。


六、启动 Odoo 测试

cd /opt/odoo
source odoo-venv/bin/activate
python3 odoo/odoo-bin -c odoo.conf

访问:http://<你的公网IP>:8069
应看到 Odoo 数据库初始化页面。


七、配置系统服务(开机自启)

sudo nano /etc/systemd/system/odoo.service

内容:

[Unit]
Description=Odoo 16
After=postgresql.service
Requires=postgresql.service

[Service]
Type=simple
User=odoo
ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /opt/odoo/odoo.conf
KillSignal=SIGQUIT
TimeoutStopSec=300
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reexec
sudo systemctl enable odoo
sudo systemctl start odoo
sudo systemctl status odoo

八、配置域名与 HTTPS(可选但推荐)

1. 购买并解析域名

  • 在阿里云购买域名,并解析到 ECS 公网 IP。

2. 使用 Nginx 反向X_X + SSL

sudo apt install nginx certbot python3-certbot-nginx -y

配置 Nginx:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

申请 SSL 证书:

sudo certbot --nginx -d yourdomain.com

Certbot 会自动更新 Nginx 配置为 HTTPS。


九、安全建议

  • 关闭 root 登录,使用普通用户 + sudo
  • 使用 SSH 密钥登录,禁用密码
  • 防火墙(UFW)仅开放必要端口
  • 定期备份数据库和文件存储(/opt/odoo/.local/share/Odoo

十、常见问题

问题 解决方案
无法访问 8069 端口 检查阿里云安全组是否开放
数据库连接失败 检查 PostgreSQL 是否运行,用户权限
页面空白或报错 查看日志 tail -f /opt/odoo/odoo-server.log
安装依赖失败 升级 pip pip install --upgrade pip

总结

通过以上步骤,你已经成功将 Odoo 部署到阿里云 ECS 实例,并可通过域名安全访问。后续可考虑:

  • 使用 Docker 部署(更便捷)
  • 配置自动备份脚本
  • 使用 RDS 代替本地 PostgreSQL(高可用)

如果你有特定版本(如 Odoo 15、17)或想使用 Docker 部署,也可以告诉我,我可以提供更具体的方案。

未经允许不得转载:云服务器 » odoo部署到阿里云?