前言

Odoo是一款一体化管理软件,提供一系列业务应用程序,构成一整套企业管理应用程序。能够满足所有业务需求,包括CRM,网站,电子商务,计费,会计,制造,仓库,项目管理和库存,所有这些都可以无缝集成。

Odoo用Python编写,具有高度模块化的设计。Odoo使用PostgreSQL作为后端数据库,并具有基于Web的客户端。

本教程将介绍,如何安装Odoo13至Ubuntu16服务器中。Odoo13将使用单独的系统账号,并且使用单独的Python虚拟环境进行运行。

 

准备

  1. 服务器:Ubuntu 16.04 server 64bit
  2. 远程工具:Xshell,或宝塔SSH终端,或服务器供应商控制面板的远程工具。

Xshell快捷键:ctrl+insert复制、shift+insert粘贴。

 

安装宝塔

宝塔是一款简单好用的服务器运维面板,本教程将用于快速创建网站,并设置Odoo的反向代理。
下载并执行脚本:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
安装成功后,将看到控制面板的访问地址和账号密码:

删除安装文件:
rm install.sh
访问控制面板,初次访问会提示安装推荐软件,选择安装Nginx 1.18(或者通过软件商店菜单搜索Nginx1.18进行安装):

 

创建odoo用户

检查是否有可用更新(更新apt源索引):
sudo apt update
创建一个将运行Odoo的系统用户,名为oodo,默认主目录为“/opt/odoo”。
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo

 

安装PostgreSQL

如果你使用外部数据库连接,可以不用安装PostgreSQL,请跳过此步骤。
安装PostgreSQL:
sudo apt install postgresql
创建与odoo系统用户同名的数据库用户:
sudo su - postgres -c "createuser -s odoo"

 

检查Python版本

检查Python版本:
python3 -V
检查pip3版本:
pip3 -V
Odoo13要求Python版本3.6及以上。如果你的版本过低,需要先更新到3.6以上版本。Ubuntu16默认已经安装了Python3.5版本和2.7版本,因此我们需要使用python3命令和pip3命令。
Ubuntu16安装Python3.6:
sudo apt-get update
sudo apt-get install -y software-properties-common python-software-properties
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install -y python3.6
删除python3.5的程序链接,并添加Python3.6的程序链接:
cd /usr/bin
sudo rm python3
sudo ln -s python3.6 /usr/bin/python3
安装pip3:
sudo apt install -y python3-pip

 

安装Wkhtmltopdf

Wkhtmltopdf使用WebKit内核渲染HTML为PDF文件,Odoo中用它来生成PDF打印文件。
下载安装文件:
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb
执行安装:
sudo apt install -y ./wkhtmltox_0.12.5-1.xenial_amd64.deb
如果安装文件下载太慢,可以通过本地翻墙下载后,再通过rz命令上传到服务器中。(当然,你也可以通过宝塔的控制面板上传文件到你当前的目录中;查看当前目录的命令是pwd。)
Xshell中使用rz上传文件命令需要安装lrzsz:
sudo apt-get -y install lrzsz
执行rz命令从本地选择文件上传:
cd /tmp
rz
本地上传文件后,需要给文件执行权限:
chmod +x wkhtmltox_0.12.5-1.xenial_amd64.deb
执行安装:
sudo apt install -y ./wkhtmltox_0.12.5-1.xenial_amd64.deb
安装后删除安装文件:
rm wkhtmltox_0.12.5-1.xenial_amd64.deb

 

安装依赖环境

安装依赖的程序(其中部分程序系统默认已经安装):
sudo apt install -y git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools
安装node、npm依赖的程序:
sudo apt-get install -y nodejs nodejs-dev node-gyp libssl1.0-dev node-less npm
安装css压缩插件(非必须):
sudo npm install -g less-plugin-clean-css

 

下载Odoo13

使用odoo用户
sudo su - odoo
进入用户目录:
cd /opt/odoo
从Github克隆Odoo13的源码(保存目录为“/opt/odoo/odoo-13.0”):
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo-13.0
文件比较大,如果git太慢,可以翻墙从 https://github.com/odoo/odoo 下载最新版的源码zip文件,使用rz命令上传,然后解压至odoo-13.0目录。
rz
unzip -o -d /opt/odoo odoo-13.0.zip

 

创建虚拟环境

进入用户目录:
cd /opt/odoo
创建虚拟环境:
python3 -m venv odoo-venv
激活环境:
source odoo-venv/bin/activate
安装依赖模块:
pip3 install wheel
pip3 install -r odoo-13.0/requirements.txt
如果出现Read timed out超时错误,就在执行安装一次“requirements.txt”的依赖。
切换回root用户:
exit

 

配置Odoo13

使用nano编辑器创建Odoo13的配置文件:
sudo nano /opt/odoo/odoo-13.0/odoo.conf

内容如下:

[options]
admin_passwd = 123456
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo-13.0/addons,/opt/odoo/odoo-13.0/odoo/addons
data_dir = /opt/odoo/odoo-data
logfile = /var/log/odoo/odoo-server.log
wokers=3
http_port = 8069

备注:123456可修改为你的管理密码;如果你使用远程数据库,可修改数据库参数:db_host(主机)、db_port(端口)、db_user(用户)、db_password(密码)。
nano常用快捷键:ctrl+o保存文件(然后回车)、ctrl+c取消操作、ctrl+x退出编辑器。

 

创建服务文件

使用nano编辑器创建Odoo13的服务文件:
sudo nano /etc/systemd/system/odoo.service

内容如下:

[Unit]
Description=Odoo
Requires=postgresql.service
After=network.target postgresql.service


[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo-13.0/odoo-bin -c /opt/odoo/odoo-13.0/odoo.conf
StandardOutput=journal+console


[Install]
WantedBy=multi-user.target

如果你使用的是远程数据库,不需要运行本地的PostgreSql,可以删除Requires行和After行。

创建服务后,通知systemd更新:
sudo systemctl daemon-reload
启动Odoo服务,并在系统开机后启动:
sudo systemctl enable --now odoo

 

常用服务命令

查看服务状态:
sudo systemctl status odoo
重启服务:
sudo systemctl restart odoo
停止服务:
sudo systemctl stop odoo
启动服务:
sudo systemctl start odoo
查看服务日志:
sudo journalctl -u odoo

 

配置域名和反向代理

在你的域名控制台中,添加odoo域名解析:

在宝塔控制面板中,添加odoo网站:

打开域名设置面板,点击反向代理菜单:

设置Odoo13反向代理(Odoo13默认端口位8069):

配置成功后即可访问:
http://odoo.say2020.com

 

测试Odoo13启动

如果你只是想测试Odoo13的启动命令,在关闭odoo服务后,可以执行:
/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo-13.0/odoo-bin -c /opt/odoo/odoo-13.0/odoo.conf