這篇文章是為了指導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
安裝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
