前言
Odoo是一款一体化管理软件,提供一系列业务应用程序,构成一整套企业管理应用程序。能够满足所有业务需求,包括CRM,网站,电子商务,计费,会计,制造,仓库,项目管理和库存,所有这些都可以无缝集成。
Odoo用Python编写,具有高度模块化的设计。Odoo使用PostgreSQL作为后端数据库,并具有基于Web的客户端。
本教程将介绍,如何安装Odoo13至Ubuntu18服务器中。Odoo13将使用单独的系统账号,并且使用单独的Python虚拟环境进行运行。
准备
- 服务器:Ubuntu 18.04 server 64bit
- 远程工具: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
Odoo13要求Python版本3.6及以上。如果你的版本过低,需要先更新到3.6以上版本。Ubuntu18默认已经安装了Python3.6版本和2.7版本,因此我们需要使用python3命令和pip3命令。
检查是否安装了pip3:
pip3 -V
如果没有则需要先安装pip3:
sudo apt install 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.bionic_amd64.deb
执行安装:
sudo apt install -y ./wkhtmltox_0.12.5-1.bionic_amd64.deb
如果安装文件下载太慢,可以通过本地翻墙下载后,再通过rz命令上传到服务器中。(当然,你也可以通过宝塔的控制面板上传文件到你当前的目录中;查看当前目录的命令是pwd。)
Xshell中使用rz上传文件命令需要安装lrzsz:
sudo apt-get -y install lrzsz
执行rz命令从本地选择文件上传:
rz
本地上传文件后,需要给文件执行权限:
chmod +x wkhtmltox_0.12.5-1.bionic_amd64.deb
执行安装:
sudo apt install -y ./wkhtmltox_0.12.5-1.bionic_amd64.deb
安装后删除安装文件:
rm wkhtmltox_0.12.5-1.bionic_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