在Rocky Linux 9下源码安装Odoo18
准备工作
因工作需要,拟在本地环境部署CRM系统,调研了一番后发现Odoo和SuiteCRM两个开源系统还不错,前者使用Python开发后者则是PHP,结合团队技术栈和开源社区活跃程度,最终选定Odoo做私有化部署。
系统环境
- 服务器配置:生产环境建议4核CPU、8GB内存、SSD存储以上
- Liunx版本 :Rocky Linux release 9.4;
- Python版本: 3.10.14;(Rocky自带3.9,Odoo17以上至少要3.10以上)
- Odoo版本:18;
私有化部署
官方建议使用打包安装程序安装,但是文档里面Odoo18的repo源404了,Odoo17倒是有repo源,但是一番折腾后遇到各种问题,只好作罢,接着又尝试用websoft9进行部署,这东西跟宝塔类似,虽然运维出身的我很鄙视这类工具,但还是被懒惰打败了,尝试安装了一下,又是各种问题,还是老老实实用源码安装吧。
更新系统
这里把安装过的包都列出来了,各取所需吧
sudo dnf update -y
sudo dnf install wget make gcc bzip2-devel openssl-devel zlib-devel libffi-devel -y
sudo dnf groupinstall "Development Tools"
sudo dnf install readline-devel ncurses-devel openssl-devel sqlite-devel tk-devel gdbm-devel libc6-dev libbz2-dev libffi-dev zlib1g-dev -y
sudo dnf install -y git libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel libpq-devel
sudo dnf install curl unzip yum-utils policycoreutils-python-utils -y
安装 PostgreSQL数据库
sudo dnf install -y postgresql-server
sudo postgresql-setup --initdb --unit postgresql
sudo systemctl enable postgresql
sudo systemctl start postgresql
配置 PostgreSQL数据库
创建odoo用户,家目录根据情况修改
sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odoo
把odoo用户加到sudoer里面
vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
odoo ALL=(ALL) ALL
修改postgres用户本地免密登录,和ipv4用密码登录,配置文件对应位置修改如下:
vim /var/lib/pgsql/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 0.0.0.0/32 md5
允许 PostgreSQL 接受来自所有 IP 地址的连接,按需配置。
vim /var/lib/pgsql/data/postgresql.conf
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
重启数据库
sudo systemctl restart postgresql
进到数据库里配置
sudo su - postgres
在psql提示符下,执行以下命令创建数据库和用户:
CREATE DATABASE odoo WITH OWNER = odoo;
CREATE USER odoo WITH PASSWORD 'odoo' CREATEDB;
GRANT ALL PRIVILEGES ON DATABASE odoo TO odoo;
\q
验证用户权限
sudo -u postgres psql -c "\du" # 检查 odoo 用户是否包含 CREATEDB 属性[8](@ref)
测试用户连接数据库
psql -U odoo
进入命令行,则代表成功
安装依赖
升级node.js
Rocky Linux 9 附带 Node 18.x,升级到20.x。
sudo dnf remove nodejs npm
sudo dnf update -y && sudo dnf install -y gcc-c++ make
sudo curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf install -y nodejs
验证升级后版本
node -v
#v20.19.2
npm -v
#11.4.0
安装 Less CSS 和rtlcss包
npm install -g npm@11.4.0
npm install -g less rtlcss
安装wkhtmltopdf
sudo dnf config-manager --set-enabled crb
sudo dnf update
sudo dnf install -y fontconfig libXext openssl urw-fonts xorg-x11-fonts-75dpi libXrender
sudo dnf install -y xorg-x11-fonts-75dpi.noarch xorg-x11-fonts-Type1.noarch
cd ~
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm
rpm -ivh wkhtmltox-0.12.6-1.centos8.x86_64.rpm
#验证是否安装成功
wkhtmltopdf --version
安装Odoo
切换用户安装
sudo su - odoo
git clone https://gitclone.com/github.com/odoo/odoo.git
设置 Virtualenv Python 环境
编译安装python 3.10
wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz
tar xzf Python-3.10.14.tgz
cd Python-3.10.14
./configure --enable-optimizations
make altinstall
python3.10 -V
创建虚拟环境
sudo pip3 install virtualenv
sudo mkdir /odoo/venv
sudo virtualenv /odoo/venv
source /odoo/venv/bin/activate
pip3 install --upgrade pip
pip3 install wheel
进入Odoo目录,配置虚拟环境
pip3 install -r requirements.txt
#退出虚拟环境
deactivate
配置Odoo
vim odoo.conf
[options]
admin_passwd = admin
http_prot = 8069
db_host = False
db_port = False
db_name = odoo
db_user = odoo
db_password = odoo
db_filter = False
addons_path = /home/crm/odoo/addons
logfile = /home/crm/odoo/odoo.log
选项 admin_passwd 是允许在 Odoo GUI 中进行管理操作的密码。请务必选择安全的密码。
选项 db_host 是 PostgreSQL 服务器的 FQDN 或 IP 地址。
由于使用默认的 PostgreSQL 端口 5432,因此选项 db_port 设置为 false。如果您想使用不同的端口,则需要更新此值。
选项 db_name 是 PostgreSQL 数据库的名称。
选项 db_user 是 PostgreSQL 用户的名称。
选项 db_password 是我们之前在 PostgreSQL 服务器上创建的 PostgreSQL ‘odoo’ 用户密码。
选项 addons_path 是默认的插件路径。您还可以为插件添加自定义路径,并用逗号分隔它们。
选项logfile是日志路径。
创建 Odoo 服务
vim /etc/systemd/system/odoo.service
[Unit]
Description=Odoo
After=postgresql.service
[Service]
User=odoo
ExecStart=/odoo/venv/bin/python3 /home/crm/odoo/odoo-bin -c /home/crm/odoo/odoo.conf
Restart=always
[Install]
WantedBy=multi-user.target
设置文件权限
$ sudo chmod 755 /etc/systemd/system/odoo.service
$ sudo chown odoo: /etc/systemd/system/odoo.service
设置 Python 环境、Odoo 安装和日志目录的所有权。
$ sudo chown -R odoo: /home/crm/odoo/
$ sudo chown -R odoo: /odoo/venv
限制 Odoo 配置文件。
$ sudo chown odoo: /home/crm/odoo/odoo.conf
$ sudo chmod 640 /home/crm/odoo/odoo.conf
启动 Odoo 服务器
第一次启动需要初始化数据库,进到安装目录下
cd /home/crm/odoo/
python odoo-bin -c odoo.conf -i base
没问题的话就Ctrl+C关掉进程,之后使用systemctl就可以了
sudo systemctl daemon-reload
sudo systemctl start odoo.service
sudo systemctl enable odoo.service
访问Odoo界面
http://your_server_ip:8069
应该能够看到 Odoo 的欢迎页面,用户名密码都是admin。
总结
以上就是在 Rocky Linux 9服务器上部署 Odoo 18的过程。遇到问题多问AI,祝你成功。