Debian GNU/Linux 中以源码方式安装Odoo 14(社区版)

     Odoo是一种流行的开源商务应用程序套件,可帮助公司管理和运营其业务,也可用于在线教学。它包括广泛的应用程序。Debian GNU/Linux 是社区版服务器的代表。本文将介绍如何在Debian GNU/Linux中以源码方式安装和部署Odoo 14(已在Debian 10及Debian 11中测试通过)。
1.安装依赖
# apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg62-turbo-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev
2.创建系统用户odoo14
      创建系统用户odoo14,该用户和组将运行Odoo服务。请执行如下命令:
# useradd -m -d /opt/odoo14 -U -r -s /usr/sbin/nologin odoo14
注意:可以使用任意名称为用户命名,此处为odoo14,只要创建具有相同名称的PostgreSQL用户即可。
3.安装和配置PostgreSQL
      Odoo使用PostgreSQL作为数据库后端。请执行如下命令安装PostgreSQL:
# apt install postgresql
      查看PostgreSQL版本,此处安装的是PostgreSQL 13。
在这里插入图片描述
      安装完成后,创建一个与先前创建的系统用户同名的PostgreSQL用户。在此示例中,即odoo14:
[root@debian-11:~]# su - postgres
postgres@debian-11:~$ psql
psql (13.4 (Debian 13.4-0+deb11u1))
Type “help” for help.
postgres=# create user odoo14 with password ‘123456’;
CREATE ROLE
postgres=# create database odoo owner odoo14;
CREATE DATABASE
postgres=# grant all privileges on database odoo to odoo14;
GRANT
在这里插入图片描述
postgres=# \q
postgres@debian-11:~$ exit
logout

# cd /etc/postgresql/13/main
# vim pg_hba.conf
在这里插入图片描述
      将pg_hba.conf中如上图所示的两处peer改为md5。
# systemctl restart postgresql
4.安装wkhtmltopdf
# apt install wkhtmltopdf
[root@debian-11:~]# wkhtmltopdf --version
wkhtmltopdf 0.12.6
5.安装和配置Odoo 14
(1)获取odoo14源码
#cd /opt/odoo14
#git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo
#chown -R odoo14:odoo14 ./odoo
(2)利用pip3安装缺失模块
# pip3 install wheel
Requirement already satisfied: wheel in /usr/lib/python3/dist-packages (0.34.2)
# pip3 install -r odoo/requirements.txt
在这里插入图片描述
在这里插入图片描述
(3)创建相关目录
# mkdir /opt/odoo14/odoo-custom-addons
# mkdir /var/log/odoo
# chown odoo14:odoo14 /var/log/odoo
(4)编辑配置文件
# vim /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 = odoo
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改为更安全的内容。
(5)编辑odoo14.service
# cd /usr/lib/systemd/system
# vim 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=/usr/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
6.首次运行odoo
# python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf -i base
      如果弹出缺失包,就用pip3 install安装相关包。比如缺少dateutil,就执行如下命令:
# pip3 install python-dateutil
注意:笔者在Ubuntu Server 20.04.3中,发现会缺少很多包;在Debian 10或Delian 11中,一个包都不缺。
7.运行odoo
# systemctl start odoo14
# systemctl enable odoo14
请注意:如果odoo无法访问,查看日志出现如下图错误:
KeyError: ‘ir.http’ - - -
2021-10-22 02:20:29,191 16720 ERROR odoo odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name=‘base’
ERROR: relation “ir_module_module” does not exist
LINE 1: SELECT latest_version FROM ir_module_module WHERE name='base…
截图如下:
在这里插入图片描述
请执行如下命令
# systemctl stop odoo14
# python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf --database=odoo --db_user=odoo14 --db_password=123456 --db_host=localhost --db_port=5432 -i INIT
      这时就能成功访问odoo了。
      此时,可结束这个进程。再次以systemctl start odoo14启动就能正常访问了。当然也可不结束这个进程。
8.访问odoo
      在本地电脑Google Chrome地址栏中输入:
http://172.23.100.66:8069
就可以访问了,如下图所示
在这里插入图片描述
      默认用户名及密码均为:admin。登录后请即时修改密码。
请注意:Odoo使用werkzeug作为 web 服务的框架,但werkzeug不是专门的web服务器,并发能力不行。可利用nginx作个前端,反向代理http://127.0.0.1:8069

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值