Odoo 是全球最受欢迎的商业软件之一。根据所需的使用场景,有多种安装 Odoo 的方法。
使用官方仓库是安装 Odoo 最简单、最快的方法。
如果您希望对版本和更新有更大的控制权,或者希望在您的机器上运行多个 Odoo 版本,那么这种方法就不适合您,因为 Odoo 包不允许在同一台机器上进行多次 Odoo 安装。在这种情况下,您可以使用 Docker 和 Docker Compose,或者在 Python 虚拟环境中安装 Odoo。
本指南介绍了在 Ubuntu 16.04 上使用 Git 源代码和 Python 虚拟环境安装和配置 Odoo 的必要步骤。
开始之前
在继续本教程之前,请确保您已以具有 sudo 权限的用户身份登录。
将软件包索引和所有已安装的软件包更新到最新版本:
sudo apt update && sudo apt upgrade安装 Git、Pip、Node.js 以及构建 Odoo 依赖项所需的工具:
sudo apt install git python3-pip build-essential python3-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev node-less创建 Odoo 用户
创建一个新系统用户和组,其主目录为 /opt/odoo,该用户将运行 Odoo 服务:
useradd -m -d /opt/odoo -U -r -s /bin/bash odooTip您可以随意命名该用户,只需确保创建一个同名的 PostgreSQL 用户即可。安装并配置 PostgreSQL
从 Ubuntu 的默认仓库中安装 PostgreSQL 软件包:
sudo apt install postgresql安装完成后,创建一个与之前创建的系统用户同名的新 PostgreSQL 用户,在我们的例子中是 odoo:
sudo su - postgres -c "createuser -s odoo"安装 Wkhtmltopdf
为了打印 PDF 报表,您需要 wkhtmltopdf 工具。推荐的 Wkhtmltopdf 版本是 0.12.1,但该版本在官方 Ubuntu 16.04 仓库中不可用。我们将从官方 Wkhtmltopdf 网站下载并安装推荐的版本。
使用以下 wget 命令下载软件包:
wget https://builds.wkhtmltopdf.org/0.12.1.3/wkhtmltox_0.12.1.3-1~xenial_amd64.deb下载完成后,通过键入以下内容安装软件包:
sudo apt install ./wkhtmltox_0.12.1.3-1~xenial_amd64.deb安装并配置 Odoo
我们将从 GitHub 仓库在隔离的 Python 环境中安装 Odoo,以便对版本和更新有更大的控制权。
在安装过程开始之前,请确保切换到用户“odoo”:
sudo su - odoo要确认您是以 odoo 用户身份登录,请使用以下命令:
whoami通过从 GitHub 仓库克隆 Odoo 源代码开始安装过程:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11Tip- 如果您想下载并安装不同版本的 Odoo,只需更改
--branch开关后的版本号。 - 您可以将 Odoo 源代码下载到任何您喜欢的地方,例如,除了
odoo11,您还可以使用您的域名名称。
virtualenv 是一个用于创建隔离 Python 环境的工具。要安装它,请使用:
pip3 install virtualenv为 Odoo 安装创建一个新的 Python 虚拟环境:
cd /opt/odoo
virtualenv odoo11-venv激活环境:
source odoo11-venv/bin/activate安装所有必需的 Python 模块:
pip3 install -r odoo11/requirements.txtInfo如果在安装过程中遇到任何编译错误,请确保已安装 开始之前 部分列出的所有必需依赖项。安装完成后,停用环境并使用以下命令切换回您的 sudo 用户:
deactivateexit如果您打算安装其他模块,最好将这些模块保存在单独的目录中。要为附加模块创建一个新目录,请运行:
sudo mkdir /opt/odoo/odoo11-custom-addons
sudo chown odoo: /opt/odoo/odoo11-custom-addons接下来我们需要做的是创建一个配置文件。我们可以从头开始创建一个新文件,也可以复制包含的配置文件:
sudo cp /opt/odoo/odoo11/debian/odoo.conf /etc/odoo11.conf打开文件并按如下方式编辑:
sudo nano /etc/odoo11.conf/etc/odoo11.confini[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo11/addons
; If you are using custom modules
; addons_path = /opt/odoo/odoo11/addons,/opt/odoo/odoo11-custom-addons完成后,关闭并保存文件。
Info不要忘记将my_admin_passwd 更改为更安全的密码,如果您使用的是自定义模块,请调整 addons_path。创建 systemd 单元文件
要将 odoo 作为服务运行,我们需要在 /etc/systemd/system/ 目录中创建一个 odoo11.service 单元文件。
打开您的文本编辑器并粘贴以下行:
sudo nano /etc/systemd/system/odoo11.service/etc/systemd/system/odoo11.serviceini[Unit]
Description=Odoo11
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo11
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target通知 systemd 新的单元文件已创建,并通过执行以下命令启动 Odoo 服务:
sudo systemctl daemon-reload
sudo systemctl start odoo11使用以下命令检查服务状态:
sudo systemctl status odoo11输出应类似于以下内容,表明 Odoo 服务处于活动状态并正在运行。
● odoo11.service - Odoo11
Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2018-01-23 21:09:25 UTC; 1s ago
Main PID: 14146 (python3)
CGroup: /system.slice/odoo11.service
└─14146 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf启用 Odoo 服务以在启动时自动启动:
sudo systemctl enable odoo11如果您想查看 Odoo 服务记录的日志消息,可以使用 journalctl:
sudo journalctl -u odoo11测试安装
打开浏览器并输入:http://<your_domain_or_IP_address>:8069
假设安装成功,将出现类似以下的屏幕:

此时您已经拥有一个正常运行的 Odoo 11 安装。您可以通过创建新数据库并完成安装,然后开始处理您的项目。