本指南基于Ubuntu 22.04 LTS系统编写,Odoo版本为16.0。在开始之前,请确保你拥有一台至少2GB内存的服务器,并已获取root权限。首先执行系统更新并安装Python及必要的系统依赖库。
执行以下命令更新系统源并安装基础工具:
```bash sudo apt update && sudo apt upgrade -y sudo apt install -y git python3-pip build-essential python3-dev libxslt-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev libffi-dev libssl-dev libpq-dev libfontconfig1 ```Odoo依赖Node.js来处理JavaScript和CSS文件的编译。安装Node.js和npm:
```bash curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs sudo npm install -g less less-plugin-clean-css ```接下来安装wkhtmltopdf,这是Odoo生成PDF报告的核心组件。Ubuntu默认源中的版本不支持Header和Footer,必须手动安装指定版本:
```bash sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb sudo apt install -f -y ```Odoo使用PostgreSQL作为后端数据库。安装数据库服务器:
```bash sudo apt install -y postgresql ```安装完成后,需要创建一个专用的PostgreSQL用户来匹配Odoo的系统用户,确保权限隔离。这里我们将用户命名为odoo16:
```bash sudo su - postgres -c "createuser -s odoo16" ```执行上述命令后,数据库用户已创建完成且拥有超级用户权限,无需设置密码即可通过本地Socket认证连接。
为了安全起见,禁止使用root用户直接运行Odoo。我们需要创建一个独立的系统用户:
```bash sudo adduser --system --group --home=/opt/odoo16 --shell=/bin/bash odoo16 ```该命令创建了一个名为odoo16的系统用户,主目录被指定为/opt/odoo16。接下来,从GitHub克隆Odoo 16.0的源代码到该用户目录下:
```bash sudo su - odoo16 -c "git clone --depth 1 --branch 16.0 https://github.com/odoo/odoo /opt/odoo16/odoo" ```进入odoo16用户目录,创建Python虚拟环境。这可以避免污染系统的Python环境:
```bash sudo su - odoo16 cd /opt/odoo16 python3 -m venv odoo-venv ```激活虚拟环境并升级pip:
```bash source odoo-venv/bin/activate pip install --upgrade pip ```安装Odoo所需的Python依赖包。这些依赖列表在源码的requirements.txt文件中:
```bash pip3 install -r odoo/requirements.txt ```注意:如果安装过程中报错提示缺少wheel等工具,请先执行pip3 install wheel。安装完成后,退出当前用户:
Odoo的配置文件通常存放在/etc目录下。创建配置文件并设置权限:
```bash sudo touch /etc/odoo16.conf sudo chown odoo16:odoo16 /etc/odoo16.conf sudo chmod 640 /etc/odoo16.conf ```
使用vim编辑器打开配置文件并填入以下完整内容。请务必修改admin_passwd为主控密码,这是你进入Odoo数据库管理后台的钥匙:
```bash sudo nano /etc/odoo16.conf ```将以下内容复制到文件中(不要遗漏任何选项):
```ini [options] ; This is the password that allows database operations: admin_passwd = 主控密码请务必修改为复杂字符串 db_host = False db_port = False db_user = odoo16 db_password = False addons_path = /opt/odoo16/odoo/addons data_dir = /opt/odoo16/.local/share/Odoo ; 监听端口 http_port = 8069 ; 长连接端口 xmlrpc_port = 8069 ; 开启调试模式(生产环境建议改为False) log_level = info ```保存并退出(Ctrl+X, Y, Enter)。这里db_host = False表示使用Unix Socket连接,比TCP连接更安全且性能更好。
为了方便管理Odoo服务的启动、停止和重启,我们需要创建一个Systemd服务单元文件:
```bash sudo nano /etc/systemd/system/odoo16.service ```输入以下完整配置,确保路径与上文创建的路径完全一致:
```ini [Unit] Description=Odoo16 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo16 PermissionsStartOnly=true User=odoo16 Group=odoo16 ExecStart=/opt/odoo16/odoo-venv/bin/python3 /opt/odoo16/odoo/odoo-bin -c /etc/odoo16.conf StandardOutput=journal+console StandardError=journal+console Restart=always RestartSec=10s [Install] WantedBy=multi-user.target ```保存并退出。接着重载Systemd守护进程并启动Odoo服务:
```bash sudo systemctl daemon-reload sudo systemctl start odoo16 sudo systemctl enable odoo16 ```检查服务状态,确保显示为active (running):
直接使用8069端口访问并不安全且不专业。安装Nginx并配置反向代理,使Odoo可以通过80端口访问:
```bash sudo apt install -y nginx ```创建新的站点配置文件:
```bash sudo nano /etc/nginx/sites-available/odoo16 ```填入以下配置内容,将your_server_ip_or_domain替换为你的服务器IP或域名:
创建软链接启用配置并重启Nginx:
```bash sudo ln -s /etc/nginx/sites-available/odoo16 /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx ```如果服务器启用了UFW防火墙,需要开放HTTP和SSH访问:
```bash sudo ufw allow 80/tcp sudo ufw allow 22/tcp sudo ufw deny 8069/tcp sudo ufw enable ```此时,打开浏览器,访问http://你的服务器IP。你将看到Odoo的数据库创建页面。点击“创建数据库”,填写数据库名称、设置邮箱和密码(这是管理员密码),选择语言后点击“创建”。
等待系统初始化完成(通常需要1-3分钟),你将自动进入ERP系统的后台主界面。至此,服务器ERP系统配置全部完成。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图