如何在 CentOS 8 上安装 Odoo ERP 13
在此页
- 要求
- 开始
- 创建 Odoo 用户
- 安装和配置 PostgreSQL
- 安装 Wkhtmltopdf
- 安装和配置 Odoo 13
- 为 Odoo 13 创建一个 Systemd 服务文件
- 将 Nginx 配置为 Odoo 13 的反向代理
- 配置防火墙
- 访问 Odoo 13 网络界面
- 结论
Odoo 是一款免费、开源且最受欢迎的 ERP 软件,可提供广泛的业务应用程序,包括客户关系管理 (CRM)、销售渠道、项目管理、制造、发票、会计、电子商务等。它是一个基于 Web 且功能齐全的应用程序,可帮助您在任何业务中维护 ERP。 Odoo 带有 30 个核心模块和 4500 多个社区创建的模块,可帮助您将其从小商店定制为企业级公司。
在本教程中,我们将学习如何在 CentOS 8 服务器上使用 Nginx 作为反向代理安装和配置 Odoo 13。
要求
- 一台运行 CentOS 8 的服务器,内存至少为 2 GB。
- 指向您的服务器 IP 的有效域名。在本教程中,我们将使用 exmaple.com 域。
- 在服务器上配置了根密码。
入门
首先,使用以下命令更新系统并安装 EPEL 存储库:
dnf update
dnf install epel-release
接下来,您需要安装一些在您的系统上构建 Odoo 所需的工具和依赖项。
您可以使用以下命令安装所有这些:
dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
安装所有软件包后,您可以继续下一步。
创建 Odoo 用户
接下来,您需要使用以下命令创建一个名为 odoo 和主目录 /opt/odoo 的新系统用户:
useradd -m -U -r -d /opt/odoo -s /bin/bash odoo
完成后,您可以继续下一步。
安装和配置 PostgreSQL
Odoo 使用 PostgreSQL 来存储他们的数据。所以你需要在你的服务器上安装 PostgreSQL。您可以使用以下命令安装它:
dnf install postgresql postgresql-server postgresql-contrib
安装后,使用以下命令初始化数据库:
/usr/bin/postgresql-setup initdb
您应该得到以下输出:
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
接下来,使用以下命令启动 PostgreSQL 服务并使其在系统重启后启动:
systemctl start postgresql
systemctl enable postgresql
您现在可以使用以下命令验证 PostgreSQL:
systemctl status postgresql
您应该看到以下输出:
? postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago
Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
Main PID: 31808 (postmaster)
Tasks: 8 (limit: 12552)
Memory: 16.5M
CGroup: /system.slice/postgresql.service
??31808 /usr/bin/postmaster -D /var/lib/pgsql/data
??31809 postgres: logger process
??31811 postgres: checkpointer process
??31812 postgres: writer process
??31813 postgres: wal writer process
??31814 postgres: autovacuum launcher process
??31815 postgres: stats collector process
??31816 postgres: bgworker: logical replication launcher
接下来,您需要创建一个与系统用户同名的新 PostgreSQL 用户,如下所示:
su - postgres -c "createuser -s odoo"
安装 Wkhtmltopdf
接下来,您需要在系统中安装 wkhtmltopdf 工具,以便 Odoo 可以打印 PDF 报告。您可以使用以下命令安装它:
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm
安装后,您可以继续下一步。
安装和配置 Odoo 13
首先,使用以下命令切换到 Odoo 用户:
su - odoo
接下来,使用 git 命令从 Git 存储库下载最新版本的 Odoo 13:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13
接下来,使用以下命令为 Odoo 13 实例创建一个新的虚拟环境:
cd /opt/odoo
python3 -m venv odoo13-venv
接下来,使用以下命令激活虚拟环境:
source odoo13-venv/bin/activate
您应该得到以下输出:
(odoo13-venv) [ ~]$
接下来,使用以下命令为 Odoo 13 安装所有必需的 Python 模块:
pip3 install -r odoo13/requirements.txt
安装所有必需的模块后,使用以下命令停用虚拟环境:
deactivate
最后,使用以下命令退出 Odoo 用户:
exit
接下来,创建一个新目录来存储 Odoo 自定义模块和 Odoo 日志:
mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log
接下来,使用以下命令将两个目录的所有权更改为 odoo 用户:
chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/
接下来,使用以下命令为 Odoo 13 创建一个新的配置文件:
nano /etc/odoo.conf
添加以下行:
[options]
admin_passwd =
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo13/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons
完成后保存并关闭文件。
为 Odoo 13 创建系统服务文件
接下来,您需要为 Odoo 13 创建一个新的 systemd 单元文件来管理 Odoo 服务。
您可以使用以下命令创建它:
nano /etc/systemd/system/odoo13.service
添加以下行:
[Unit]
Description=Odoo13
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service
[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
保存并关闭文件。然后,使用以下命令重新加载 systemd 守护进程:
systemctl daemon-reload
接下来,启动 Odoo 服务并使用以下命令使其在系统重启后启动:
systemctl start odoo13
systemctl enable odoo13
您还可以使用以下命令验证 Odoo 状态:
systemctl status odoo13
您应该得到以下输出:
? odoo13.service - Odoo13
Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago
Main PID: 17022 (python3)
Tasks: 4 (limit: 12552)
Memory: 63.7M
CGroup: /system.slice/odoo13.service
??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.
默认情况下,Odoo 监听 8069 端口。您可以使用以下命令查看:
netstat -plntu | grep 8069
您应该看到以下输出:
tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 17022/python3
配置 Nginx 作为 Odoo 13 的反向代理
接下来,您需要安装和配置 Nginx 作为 Odoo 13 实例的反向代理。
首先,使用以下命令安装 Nginx Web 服务器:
dnf install nginx
安装后,使用以下命令创建一个新的虚拟主机配置文件:
nano /etc/nginx/conf.d/odoo13.conf
添加以下行:
upstream odoo {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/odoo13.access.log;
error_log /var/log/nginx/odoo13.error.log;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_pass http://odoo;
}
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odoo;
}
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
完成后保存并关闭文件。然后,使用以下命令启动 Nginx 服务并使其在系统重启后启动:
systemctl start nginx
systemctl enable nginx
您可以使用以下命令验证 Nginx 服务的状态:
systemctl status nginx
您应该看到以下输出:
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago
Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 17245 (nginx)
Tasks: 3 (limit: 12552)
Memory: 5.4M
CGroup: /system.slice/nginx.service
??17245 nginx: master process /usr/sbin/nginx
??17246 nginx: worker process
??17247 nginx: worker process
Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
配置防火墙
接下来,您需要允许 Nginx 服务通过 firewalld 从远程系统访问 Odoo 13 实例。
您可以运行以下命令以允许 Nginx 服务通过 firewalld:
firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload
默认情况下,SELinux 在 CentOS 8 中启用。因此您需要通过 SELinux 允许 HTTP。您可以使用以下命令允许它:
setsebool -P httpd_can_network_connect on
访问 Odoo 13 Web 界面
现在,Odoo 13 已安装并配置。是时候访问 Odoo 13 网络界面了。
打开 Web 浏览器并输入 URL http://example.com。您将被重定向到以下页面:

现在,提供您的主密码、数据库名称、电子邮件、密码、国家/地区,然后单击“创建数据库”按钮。您将被重定向到 Odoo 13 管理页面:

结论
在上面的教程中,您学习了如何在 CentOS 8 服务器上安装和配置 Odoo 13。您还学习了如何将 Nginx 配置为 Odoo 13 的反向代理。您现在可以根据业务需求自定义 Odoo 13 实例。