odoo14安装日记
这篇文章是为了指导Linux用户在CentOS 8上安装Odoo 14 ERP系统。Odoo是一个开源业务管理应用程序,具有POS,CRM,项目管理,网站构建器,市场营销,仓库管理,电子商务,计费等功能。与会计,制造和许多其他很酷的功能。这些额外的功能可以通过大量可用于安装的Odoo插件来解锁。
在本文更新时,Odoo ERP软件的最新版本为版本14。我们将通过系统升级开始安装,安装所有必需的依赖项(如PostgreSQL数据库服务器),最后在CentOS 8上进行Odoo ERP 14的实际安装。 Nginx将用作CentOS 8上Odoo 14 ERP和CRM系统的前端代理。
步骤1:更新操作系统
登录到CentOS 8服务器并执行系统更新,然后重新启动。
sudo dnf -y update
sudo reboot
步骤2:将EPEL储存库添加到CentOS服务器
通过运行命令将EPEL存储库添加到CentOS 8。
sudo yum -y install epel-release vim bash-completion
将SELinux置于宽松模式。
sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
运行yum repolist命令。
$ sudo yum repolist repo id repo name AppStream CentOS-8 - AppStream BaseOS CentOS-8 - Base epel Extra Packages for Enterprise Linux 8 - x86_64 epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64 extras CentOS-8 - Extras
步骤3:安装PostgreSQL数据库服务器
Odoo ERP资源库使用PostgreSQL数据库服务器进行数据存储。这些软件包在DNF模块中可用。
禁用当前的默认PostgreSQL模块。
sudo dnf -qy module disable postgresql
启用PostgreSQL 12模块。
sudo dnf module -y enable postgresql:12
然后安装PostgreSQL服务器和客户端软件包。
sudo dnf -y install @postgresql
安装后,需要先进行数据库初始化,然后才能启动服务。
$ sudo /usr/bin/postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
启动并启用数据库服务器。
$ sudo systemctl enable --now postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.
创建odoo数据库用户。
sudo su - postgres -c "createuser -s odoo"
步骤4:在CentOS 8上安装wkhtmltopdf
Odoo使用 wkhtmltopdf 生成PDF格式的报告。推荐安装的wkhtmltopdf版本为0.12.5, 可在 wkhtmltopdf下载页面(存档部分)中找到。
sudo dnf install -y https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm
确认安装的版本。
$ wkhtmltopdf --version
wkhtmltopdf 0.12.5 (with patched qt)
步骤5:在CentOS 8上安装Odoo 14
添加EPEL存储库:
yum -y install epel-release
同时启用PowerTools存储库。
sudo dnf config-manager --set-enabled Powertools
如果启用报错,请执行以下命令,再次启用:
sudo yum install dnf-plugins-core
安装Python和其他构建依赖项:
sudo yum -y install vim bash-completion zip git gcc openldap-devel python3 python3-devel redhat-rpm-config libxslt-devel libjpeg-devel freetype-devel bzip2-devel
添加Odoo系统用户和组。
sudo useradd -r -m -U -d /opt/odoo -s /bin/bash odoo
为创建的用户帐户设置密码。
$ sudo passwd odoo Changing password for user odoo. New password: Retype new password: passwd: all authentication tokens updated successfully.
查看用户详细信息:
$ id odoo
uid=992(odoo) gid=989(odoo) groups=989(odoo)
切换到创建的用户帐户:
$ sudo su - odoo
将odoo14企业版源码解压放入odoo文件夹中。然后更改文件夹权限。可以利用WINSCP传入文件。
创建Python Virtualenv。
#cd /opt/odoo
#python3 -m venv odoo-venv
激活创建的虚拟环境。
source odoo-venv/bin/activate
升级PIP
python -m pip install --upgrade pip
在需求文件中安装Python依赖项。
pip3 install -r requirements.txt
成功安装后,停用虚拟环境,
$deactivate
$exit
创建Odoo日志文件:
sudo touch /var/log/odoo.log
创建自定义插件路径:
sudo mkdir /opt/odoo/custom-addons
设置正确的目录权限:
sudo chown -R odoo:odoo /opt/odoo/ /var/log/odoo.log
创建Odoo实例配置文件
$sudo tee /etc/odoo.conf<<EOF [options] proxy_mode = True ; This is the password that allows database operations: admin_passwd = 此处设置自己的密码 db_host = False db_port = False db_user = odoo db_password = False xmlrpc_port = 8069 logfile = /var/log/odoo.log logrotate = True addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom-addons $EOF
创建系统服务单元文件。
$sudo tee /etc/systemd/system/odoo.service<<EOF [Unit] Description=Odoo ERP Server Requires=postgresql.service After=network.target postgresql.service [Service] User=odoo Group=odoo Type=simple SyslogIdentifier=odoo PermissionsStartOnly=true ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo-bin -c /etc/odoo.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target $EOF
重新加载系统服务:
sudo systemctl daemon-reload
启动创建的odoo服务。
sudo systemctl start odoo
sudo systemctl restart odoo
使它在启动时启动。
$ sudo systemctl enable odoo
Created symlink /etc/systemd/system/multi-user.target.wants/odoo.service → /etc/systemd/system/odoo.service.
确认Odoo服务是否设置为在启动时启动。
$ systemctl is-enabled odoo enabled
检查是否正在运行。
$ systemctl status odoo
一旦启动,Odoo服务应绑定到TCP端口 8069
$ sudo ss -tunelp | grep 8069 tcp LISTEN 0 128 0.0.0.0:8069 0.0.0.0:* users:(("python3",pid=25201,fd=4)) uid:992 ino:64882 sk:5 <->
开启端口
firewall-cmd --zone=public --add-port=8069/tcp --permanent 开启8069端口
success
重启防火墙
firewall-cmd --reload
success
查看端口号是否开启
firewall-cmd --query-port=8069/tcp
success