安装odoo之前需要先理一下思路:
安装总计分为4大步骤:
- 准备工作
- 网络环境搭建:
主要看应用是局域网内部使用还是互联网使用
局域网使用在本地化办公部署
互联网使用,可以建议使用云服务器部署
设备硬件要求
商用使用,建议使用服务器,做虚拟化,可以部署多个虚拟服务器,做虚拟集群化增加系统优化和服务高效。(有远程办公的小型公司)
小型公司本地化部署可以在本地服务器,硬件要求并不是很高,最低要求普通办公电脑就可以安装,CPU i5-12代支持虚拟化。内存16G以上,硬盘2TSSD+8THDD以上。就可以了。
系统适配:
Windows
Linux
Mac
虚拟化(VM、KVM、Virtubox、OFweek)小型集成站(Docker、kubernetes、bitnami)
- 安装系统
A、安装软件思路很重要:
- 先解决系统环境配置:python
- 在安装数据库依赖: postgresql
- 最后安装软件: Odoo17
- 安装postgresql 版本尽量不要安装最新的,我的是14版本,因为安装最新版本会出现一系列问题需要自己耐心排除和解决,再次踩坑提醒诸位。
- 在安装完成odoo17之后,启动是遇到配置运行报错:from ** import ** 问题一般都是版本安装错误,请查看requirments.txt文件所对应的依赖版本也可以在pyharm的setting中安装指定对应的版本,报错已消失。
- 在安装最后的 pip-install -r requirments.txt 文件中会有大量的软件包,有部分软件包的依赖包需要手动安装,不是错误,需要手动安装这些软件所依赖的包文件,手动安装完之后就可以在此运行命令 pip-install -r requirments.txt 文件,报错消失。
- 运行odoo 创建数据库,登录不上数据库,显示密码错误等,还有数据库不能连接或者数据库拒绝访问等问题,都可以在 /etc/odoo.conf中查看配置文件,是否输入的mastart 密码输错,或者关联的数据库名称错误。
B、【很重要需要理解明白才能正常正确使用odoo】
1、主控密码(master password)是数据库的管理密码,存储于odoo配置文件中,最新的几个版本会自动生成密码;
2、数据库名称(datebase name)是数据库的标识名称,同一台服务器上可以安装多个odoo数据库,使用独立的标识名称命名识别。
3 、Email是默认管理员用户登录名,并不一定要是email邮箱,默认未admin。
4、密码(password)是管理员登录所使用的密码
5、语音(language)是数据库使用的默认语言
6、国家、区域(country)是用于选择国家或区域的选项,设个可选项,与某些本地化特性相关,如发票和会计财务相关的。
7、默认为空数据库,但勾选演示数据(demo data)后会安装演示数据,开发测试环境建议勾选, 自己商用就不要勾选。
8、点击创建数据库(create database)新建数据库进行初始化,稍等一会,会跳转初登录界面。
注意: 管理员(admin)密码和主控(master)密码是两个不同的概念,主控密码是用于管理数据库,可以进行备份,还原及拷贝odoo数据库;管理员(admin)密码是默认管理员登录系统的密码,具有配置odoo数据库和管理用户的权限。
可以通过页面底部的管理数据(manage database)进入数据库管理页面。这个管理页面可以显示当前的数据列表,并对其进行备份,删除,拷贝或新建。
9、完成配置,可以通过直接访问:https:localhost:8069/web/database/manager页面进行管理数据。
10、数据库管理页面可进行一些高级权限管理操作,默认启用且没有密码保护。虽然方便,但安全威胁很高,请参考使用复杂的主控密码或最好管理这一功能。
主控密码在odoo配置文件中进行设置,内容为:admin_password = <your-complex-password>.可在配置文件中添加 list_db = False 禁用数据库管理页面。
C、开始安装odoo17
- 本次安装软件使用liunx系统做演示,系统采用Ubuntu22.04LTS 版本安装;
- 如果你的系统是刚安装的就可以先检查一下源和更新系统软件最新
- 更新系统
#sudo apt-get update
标题ht
- 更新软件和系统
#sudo apt-get upgrades
- 如果不是新安装的系统,本来就有这么一台电脑正好安装ubuntu系统,那也可以,不需要其他软件就需要恢复系统上面的所有软件,可以使用如下命令:
- 切换到root用户
#sudo su -
- 清除所有软件包及其配置文件(该命令会清除系统上所有软件包和配置文件【慎用】)
Ps:因为我的系统之前有安装其他软件,我也不清楚,需要清楚干净。
#apt-get purge *
- 卸载不需要的依赖关系
#apt-get autoremove
- 清除所有残留文件
#apt-get clean
- 完成重启系统
#reboot
- 可以集成一行代码: sudo su - apt-get purge * apt-get autoremove apt-get clean
- 查看系统软件源:
sudo nano /etc/apt/sources.list
- 添加阿里云源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
————————————————
- 更新系统
sudo apt-get update
- 更新软件源,更换为国内源提升软件更新速度。
sudo apt-get dist-upgrade
sudo apt-get upgrade
- 系统基本安全升级加固
sudo apt-get install openssh-server fail2ban
- 先查看一下python3的版本
python3 -V
如果不是3.10.* 请更新到3.10
如果有多个python版本,请设置默认版本为3.10
命令:update-alternatives --conifig python3.10(默认就是python3.10可以跳过)
- 安装python3和相关依赖包
sudo apt-get install -y python3-pip
sudo apt-get install python-dev python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev
以上有部分需要手动安装,并且需要调试,我们一个一个安装再试试:
这些包需要我们手动安装;
手动安装lib依赖
sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev
如果出现安装软件无法解析情况请考虑3点:
1)如果出现以上情况,请检查服务器的DNS师傅可以解析到源地址。
查看服务器NDS网关:
sudo cat /etc/resolv.conf
如果没有DNS或者DNS 有错误,请更换成和源地址一个服务商,例如:我使用的是aliyun,更换aliyun DNS:223.5.5.5、223.6.6.6
命令如下:
sudo vi /etc/resolv.conf
在现有的nameserver 下在添加一行
nameserver 223.5.5.5
nameserver 223.6.6.6
然后保存,更新.
sudo apt-get update
在重新下载安装更新依赖文件就解决了。
2)查看是否网络连接正常或防火墙网关限制;检查IP地址是否配置正常
要根据你的网络情况进行修改
# Let NetworkManager manage all devices on this system
network:
renderer: NetworkManager #如果networkmanager不生效就更换成 networkd
ethernets:
eno1: #网卡名称
addresses:
#这里的IP地址和子网掩码
- 192.168.10.165/24
routes:
- to: default
#这里的网关地址
via: 192.168.10.1
nameservers:
addresses:
#这里的DNS服务器地址
- 192.168.10.1
- 114.114.114.114
version: 2
22.04tls servers 版本默认网卡配置自动获取:
00-installer-config.yaml
====================================================
#This is the network config written by ‘subiquity’
network:
ethoernets:
ens:33:
Dhcp4: true
Version: 2
配置多静态IP修改配置
#This is the network config written by ‘subiquity’(servers版本)桌面版(networkmanager)
network:
ethoernets:
ens:33:
Dhcp4: no
addresses:
- 192.168.10.118/24
nameservers:
addresses: [223.5.5.5.,223.6.6.6]
routes:
- to: default
Via: 192.168.10.1
ethoernets:
ens:38:
Dhcp4: no
addresses:
- 192.168.10.119/24
nameservers:
addresses: [223.5.5.5.,223.6.6.6]
routes:
- to: default
Via: 192.168.10.1
Version: 2
sudo netplan apply
重启网卡应用配置:
查看接口ip地址:
sudo ip addr show ens33
在查看默认路由
ip route show
网卡配置文件内容说明
ethernets: 网卡数组
ens33: 网卡名字
dhcp4: 表示通过dhcp获取ip还是配置静态ip
addresses:配置ip地址与子网掩码
routes: 路由
to: 目标网络
via: 经那个网口与外部网络沟通
nameservers: dns服务器
addresses:地址列表
如果配置网络出现网卡配置不生效出现问题如下:
ens33 mtu 1500 qdisc noop state down group default qien 1000 aitname enp2s1
解决网卡无法启动方法如下:
sudo -i 切换到root用户
systemctl stop networkmanager
systemctl disable networkmanager
service network restart
service network-manager restart
sudo dhclient ens33
在查看一下ip
ip addr show ens33
3)、安装软件依赖包显示:E:无法定位软件包;
·解决方案请查看 /var/lib/apt/lists/ 文件和报错文件是否有相似的,请删除。或者使用命令:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update 更新一下系统
继续安装依赖包
sudo apt-get install -y npm
安装成功!
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g less less-plugin-clean-css
出现红圈内的黑条,恭喜你安装成功!
然后按ctrl+C就可以结束了,继续安装.
sudo apt-get install -y node-less
- 安装数据库postgreSQL
Odoo使用的数据是PostgreSQL,用户可采用peer或密码方式进行数据链接(/etc/postgresql/x.x/main/pg_hba.conf)
sudo apt-get install postgres
sudo su - postgres
创建一个odoo用户,可以直接创建一个与用户名相同的用户账号。
#psotgres# createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
红圈内的错误是:createuser:错误:连接到套接字“/var/run/postgresql/.s.PGSQL.5432”上的服务器失败:没有这样的文件或目录
解决方法:
修改配置文档:
nano /etc/postgresql/14/main/pg_hba.config
nano /etc/postgresql/14/main/postgresql.conf
Ubuntu22.04版本安装postgres数据库 创建用户问题解决方法:
先推出到root用户或者需要root权限安装一下字体 选择us-UTF-8
dpkg-reconfigure locales
选择en-utf-8
Ok
重启一下postgresql服务
systemctl stop postgres
systemctl start postgres
然后在创建用户
#psotgres# createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
密码:odoo出入两次确认。
创建odoo17 用户需要配置一个密码:我配置为odoo,需要出入两次确认。
超级用户权限(*)可选
conf 文件需要用户和密码。Postgres 使用不同的系统用户来执行任务。若要在用户之间切换,请运行 sudo su -postgres。接下来,为 Odoo 17 创建数据库用户。
qsql
创建超级用户
ALTER USER odoo17 WITH SUPERUSER
注销postgres和PSQL
\q
exit 退出
安装wkhtmltopdf,安装PDF
出于打印相关目的,Odoo 17 需要高于 0.12.2 的 wkhtmltopdf 版本。Wkhtmltopdf是一个开源命令行工具,用于使用Qt webkit将HTML数据呈现为PDF格式。要在 Ubuntu 上安装 wkhtmltopdf 22.04 服务器, 请按照以下步骤操作.
下载pdf安装包
root@ubtu:~#wget
编译安装文件:
dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb
安装报错,需要安装xfonts-75dpi
apt-get install xfonts-75dpi
根据提示继续安装
apt --fix-broken install -y
自动修复安装出现broken的package
再次安装,安装插件使用dpkg安装就不会报错了。
dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb
在服务器上安装
sudo apt install -f
安装 odoo 程序软件
安装git
sudo apt-get install git
- 先进入创建好的odoo目录,然后现在程序
- 切换odoo17用户安装 使用命令带到/opt/odoo17/目录并以odoo17用户身份登录。
sudo su - odoo17
克隆最新odoo17 代码到odoo17目录
git clone https://www.github.com/odoo/odoo/ --depth i --branch master --single-bbranch
退出odoo17用户回到root用户
exit
按章其他依赖
注意需要进入该目录文件夹安装
cd /opt/odoo17/odoo/
执行:sudo pip3 install -r requirements.txt
或者找到该文件绝对路径如下:
sudo pip3 install -r /opt/odoo17/odoo/requirements.txt
有错误根据错误提示:
Build过程出现报错,这是需要case by case去解决:
sudo apt install python3-cffi
pip install --upgrade cffi==1.15.0
再次输入sudo pip3 install -r /opt/odoo17/odoo/requirements.txt
有如果在安装过程出现报错,请再次执行一边以上命令,直至不报错,这个原因是因为网络不稳定导致安装失败。
完成安装。
在odoo17用户下使用sudo ,编辑 /etc/sudoers
编辑odoo17配置文件,需要先备份一份。
sudo cp /opt/odoo17/odoo/debian/odoo..conf /etc/odoo17.conf
sudo vi /etc/odoo17.conf
[options]
; this is the password that allows database operations:
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo17
db_password = False
addons_path = /opt/odoo17/odoo/addons
logfile = /opt/odoo17/log/odoo17/odoo17.log
- db_user: 数据库用户名
- db_password: 创建数据库用户时所设置的密码
- admin_passwd: 用于管理数据库增删改查等操作的超级用户。
- db_host: 数据库主机
- db_port: 数据库端口
- addons_path: Odoo 的插件目录,有多个目录时用逗号分隔
- logfile: 日志文件路径
配置odoo17用户的访问权限
sudo chown odoo17: /etc/odoo17.conf
sudo chmod 640 /etc/odoo17.conf
添加日志存储目录
#sudo mkdir /opt/odoo17/log/odoo17
sudo chown odoo17:root /opt/odoo17/log/odoo17
配置odoo系统服务
sudo vi /etc/systemd/system/odoo17.service
[Unit]
Description=Odoo
Documentation=http://www.odoo.com
[service]
Ubuntu/Debian convention
Type=simple
User=odoo
Execstart=/opt/odoo17/odoo/odoo-bin -C /etc/odoo17.conf
[Install]
wantedBy=default.target
设置配置文件的权限
sudo chmod 755 /etc/systemd/system/odoo17.service
sudo chown root: /etc/systemd/system/odoo17.service
启动服务
sudo systemctl start odoo17.service
查看服务启动状态
#sudo systemctl status odoo17.service
手动启动:
/opt/odoo17/odoo/odoo-bin -c /etc/odoo17.conf
浏览器直接输入服务器的ip地址进行访问:
安装完之后需要安装中文字体,这个是ubuntu遗留问题,20.04和22.04都没有自带需要手动安装。
sudo apt-get install ttf-wqy-zenhei
sudo apt-get install ttf-wqy-microhei
版权归原作者 MikeRoot 所有, 如有侵权,请联系我们删除。