虽然odoo17已经在10月份发布了,但笔者并不愿意立时升级:一方面没有迫切的需要去升级,仿佛没有odoo17就没法后续的工作一样;另一方面,我倒是更希望在双数版本发布的时候再升级。为此继续使用odoo16,也记录下odoo16在ubuntu服务器上的安装过程。


下载odoo16源码

1.下载源码可以通过以下3种途径:

2.通常我们使用git进行源码克隆,检查是否已安装git:

1
2
3
4
#检查是否安装git
git --version
#如果没有安装则执行安装操作
sudo apt-get install git

3.如果已经安装,则切换到你想要的源码克隆路径,执行以下命令:

1
2
3
4
5
#--branch 16.0 指定要克隆的分支,这里是 Odoo 16 的分支。
#--single-branch 表示只克隆指定的分支,这可以帮助减少克隆的数据量。
#https://www.github.com/odoo/odoo.git 是 Odoo 代码库的 HTTPS 克隆 URL。
#odoo16 是本地目录的名称,你可以根据需要修改。
git clone --branch 16.0 --single-branch https://www.github.com/odoo/odoo.git odoo16

Python环境

1.Odoo16需要 Python 3.7 或更高版本才能运行,检查是否已安装:

1
2
3
4
#检查python版本
python3 --version
#验证此版本是否安装了php
pip3 --version

2.如果没有安装则执行以下命令进行安装:

1
sudo apt-get install -y python3-pip

PostgreSQL数据库

1.下载与安装:

1
sudo apt install postgresql postgresql-client

2.安装过程中会创建默认的用户postgres,由于Odoo禁止使用 postgres 连接,所以需要创建一个新的PostgreSQL用户:

1
2
3
4
5
6
7
8
9
#1.切换到postgres用户
su postgres
#2.创建odoo16用户
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo16
#3.给用户授权
psql
ALTER USER odoo16 WITH SUPERUSER;
#4.退出
exit

3.修改postgresql配置文件:

1
2
3
4
5
6
7
8
9
10
11
vi /etc/postgresql/14/main/pg_hba.conf
#将本地用户连接方法由peer改为md5
# "local" is for Unix domain socket connections only
local   all             all                                     md5

#如果要配置远程远程访问,再添加一行配置,另外配置 postgresql.conf
host    all             all             0.0.0.0/0               md5
#配置postgresql.conf
vi /etc/postgresql/14/main/postgresql.conf
#将监听地址改为*
listen_addresses = '*'

4.如需远程访问,防火墙开启安装postgresql的端口:

1
ufw allow 5432

5.重新启动postgresql服务:

1
service postgresql restart

安装依赖项

1.软件包在Odoo源代码的 debian/control文件中列出,执行以下命令安装:

1
2
3
cd /odoo源码路径
#执行安装命令
sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y

2.也可以使用pip进行安装,特别是在使用python虚拟环境的时候:

1
2
3
4
cd /odoo源码路径
#执行安装命令
sudo apt-get install libsasl2-dev python3-dev libldap2-dev libssl-dev libpq-dev
pip install -r requirements.txt

安装wkhtmltopdf

1.在 Odoo 中wkhtmltopdf是用于将 HTML 转换为 PDF 的工具,通常用于报表生成等任务。

2.到 https://wkhtmltopdf.org/downloads.html 下载对应操作系统版本的安装包,然后安装。

3.以ubuntu22.04为例的安装命令:

1
2
3
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-get -f install

4.检查是否安装成功:

1
wkhtmltopdf --version

配置并启动odoo16

1.在源码根目录种创建配置文件odoo.conf:

1
2
3
4
5
6
7
8
9
10
[options]
; This is the password that allows database operations:
admin_passwd = ******
db_host = False
db_port = False
db_user = odoo16
db_password = ******
addons_path = /opt/odoo16/test/odoo/addons/,/opt/odoo16/test/addons/,/opt/odoo16/test/custom_addons/
http_port = 8000
default_productivity_apps = True

2.启动odoo16:

1
python3  /opt/odoo16/test/odoo-bin -c /opt/odoo16/test/odoo.conf

3.在浏览器种通过ip地址和端口号访问站点:

作者 菜园君