Odoo是流行的开源商务应用程序套件,可帮助公司管理和运营其业务。它包括广泛的应用程序,例如CRM,电子商务,网站构建器,计费,会计,制造,仓库,项目管理,库存等等,所有这些都无缝集成。
建议使用Debian/Ubuntu系统作为ODOO服务器。你还可以在自己喜欢的桌面系统如Windows, Mac, or Linux上工作。
ODOO可以在各种操作系统上运行,但是Debian/Ubuntu系统是ODOO团队的参考部署平台,具有最好的支持。如果使用Debian/Ubuntu操作系统,将会更容易获取帮助及更多资源。
Debian/Ubuntu也是大部分开发人员使用的平台,同时连带一些部署工作在该平台上。所以,自然地,预期ODOO的开发人员也可以轻松使用Debian/Ubuntu平台。即使您已具有Windows背景知识,掌握了解一些Debian/Ubuntu知识仍将非常重要。
有多种方法可以安装Odoo,比如在线,打包安装程序,源安装,Docker等多种安装选项。
可以参考odoo官方文档选择合适的安装方式
这里演示在Ubuntu20.04.3以源码方式安装Odoo14 社区版。
sudo apt update
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev
不允许在root用户下运行Odoo,因为这存在安全风险。我们将使用主目录创建一个新的系统用户和组/opt/odoo14,以运行Odoo服务。为此,请输入以下命令:
sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14
注意:可以使用任意名称为用户命名,此处为odoo14,只要创建具有相同名称的PostgreSQL用户即可。
Odoo使用PostgreSQL作为数据库后端。PostgreSQL包含在标准Ubuntu存储库中。要安装它,请运行:
sudo apt install postgresql
查看PostgreSQL版本,此处安装的是PostgreSQL 12
安装完成后,创建一个与先前创建的系统用户同名的PostgreSQL用户。在此示例中,即odoo14:
su postgres
psql
# 创建数据库用户odoo14
postgres=# create user odoo14 with password ‘123456’;
CREATE
# 创建用户数据库odoo14_db
postgres=# create database odoo14_db owner odoo14;
CREATE DATABASE
# 将odoo14_db数据库的所有权限都赋予odoo14,否则odoo14只能登录控制台,没有任何数据库操作权限。
postgres=# grant all privileges on database odoo to odoo14;
GRANT
postgres=# \l # 查看数据库是否创建成功
wkhtmltopdf是用于将HTML页面呈现为PDF和各种图像格式的一组开源命令行工具。要在Odoo中打印PDF报告,您需要安装该wkhtmltox软件包。Odoo的推荐版本是version 0.12.5,可以从Github下载:
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb
下载文件后,请输入以下内容进行安装:
sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb
这里使用源安装(git),提供更大的灵活性:例如,允许在同一系统上运行多个Odoo版本。适合开发模块,可作为生产部署的基础。
我们将从一个隔离的Python虚拟环境中的源代码安装Odoo 。
首先,切换为用户“ odoo14”:
sudo su - odoo14
从GitHub克隆Odoo 14源代码:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo
为Odoo创建新的Python虚拟环境(odoo-venv):
cd /opt/odoo14
python3 -m venv odoo-venv
如果要删除虚拟环境,只需要删除它的文件夹(执行 rm -rf odoo-venv)
激活虚拟环境:
source odoo-venv/bin/activate
使用pip3安装所有必需的Python模块:
pip3 install wheel
pip3 install -r odoo/requirements.txt #(requirements.txt在 目录 opt/odoo14/odoo内)
完成后,通过键入以下命令停用环境:
deactivate
创建一个日志目录:
mkdir /var/log/odoo
chown odoo14:odoo14 /var/log/odoo # 授权
创建一个包含第三方插件的新目录:
mkdir /opt/odoo14/odoo-custom-addons
稍后,我们将这个目录添加到addons_path参数中。此参数定义Odoo在其中搜索模块的目录列表。
切换回sudo用户:
exit
创建具有以下内容的配置文件:
sudo nano /etc/odoo14.conf
复制以下内容到/etc/odoo14.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_name = odoo14_db
db_user = odoo14
db_password = 123456
logfile = /var/log/odoo/odoo14.log
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
不要忘记将更my_admin_passwd改为更安全的内容.
退出nano模式:Ctrl+x,选择yes即可退出。
打开文本编辑器并创建一个服务单元文件odoo14.service,其内容如下:
sudo nano /etc/systemd/system/odoo14.service
odoo14.service内容如下:
[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
通知systemd一个新的单位文件存在:
sudo systemctl daemon-reload
首次运行odoo:
# 进入虚拟环境
source /opt/odoo14/odoo-venv/bin/activate
(odoo-venv)# python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf -i base
#如果弹出缺失包,就用pip3 install安装相关包。比如缺少dateutil,就执行如下命令:
# pip3 install python-dateutil
运行odoo,启动Odoo服务,并通过运行以下命令使其在启动时启动:
systemctl start odoo14
sudo systemctl enable --now odoo14
# 停止odoo服务命令:# systemctl stop odoo14
验证服务状态:
sudo systemctl status odoo14
输出应如下所示,表明Odoo服务处于活动状态并正在运行。
● odoo14.service - Odoo14
Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-10-16 19:05:32 UTC; 3s ago
…
退出:Esc :wq
要查看Odoo服务记录的消息,请使用以下命令:
sudo journalctl -u odoo14
打开浏览器并输入: http://
如果配置了连接PgSQL数据库odoo14_db,则出现以下界面:
默认用户名及密码均为:admin。登录后请即时修改密码。
请注意:Odoo使用werkzeug作为 web 服务的框架,但werkzeug不是专门的web服务器,并发能力不行。可利用nginx作个前端,反向代理http://127.0.0.1:8069
在Ubuntu安装Nginx