如何使用Nginx作为反向代理在CentOS 8上安装Odoo 14

在本教程中,我们将向您展示如何在CentOS 8 VPS上安装Odoo 14。 Odoo是有史以来最受欢迎的开源ERP业务管理平台之一。 凭借其提供超过一万个模块(或应用程序)的模块化设计,Odoo可以适应您的业务需求并提高团队的生产力。 它使用Python构建,并使用PostgreSQL作为其数据库。

最新的Odoo 14更新具有许多令人兴奋的新功能,包括全新的Website Builder,新的商业智能工具,用于库存和MRP的新菜单和改进菜单,等等。 让我们开始吧。

要求

  • 启用了root访问权限的CentOS 8 VPS(我们的VPS已经具有完全root访问权限)或具有sudo特权的用户。
  • 至少2 GB的RAM

通过SSH登录并更新服务器

首先,您将需要使用SSH作为root用户登录到CentOS 8 VPS:

ssh [email protected]_ADDRESS -p PORT_NUMBER

更换 IP_ADRRESS PORT_NUMBER 具有正确的服务器IP地址和SSH端口号。 默认端口号是22,但是您的服务器可能具有唯一的一组端口。

接下来,运行以下命令以升级VPS上所有已安装的软件包:

dnf update -y

更新所有软件包后,请重新启动系统以应用需要重新引导的所有更改。 这样可以确保我们将在其上安装Odoo 14实例的状态良好。

安装所需的依赖项

在开始安装Odoo之前,您需要在系统上安装Python 3和其他一些Odoo依赖项。 您可以使用以下命令安装所有组件:

dnf install python3 python3-devel git gcc redhat-rpm-config libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel curl unzip -y

安装完所有软件包后,您还需要安装 wkhtmltopdf 打包到您的系统中。 Wkhtmltopdf是一个开放源代码工具,可用于将HTML格式转换为PDF,这样Odoo可以导出PDF报告。

您可以通过运行以下命令来安装它:

dnf install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm

验证 wkhtmltopdf 已安装在您的服务器上:

# wkhtmltopdf --version
wkhtmltopdf 0.12.5 (with patched qt)

完成后,您可以继续执行下一步。

安装和配置PostgreSQL

Odoo使用PostgreSQL来存储其数据。 您可以使用以下命令安装PostgreSQL服务器:

dnf install postgresql postgresql-server postgresql-contrib -y

安装完成后,使用以下命令初始化数据库:

postgresql-setup initdb

要启动PostgreSQL服务并使它能够在每次服务器重新启动后自动启动,请运行以下命令:

systemctl start postgresqlsystemctl enable postgresql

接下来,使用以下命令登录PostgreSQL shell并为您的Odoo数据库创建一个新的PostgreSQL用户。 我们使用的名字是 odoo14,但您可以使用任何喜欢的名称。 记住 您在此处设置的用户名必须是 相同 下一步要创建的系统用户:

su - postgres -c "createuser -s odoo14"

在CentOS 8上安装和配置Odoo 14

在本节中,我们将从官方的Git存储库下载Odoo 14并将其安装在Python虚拟环境中。

首先,我们需要为Odoo安装创建一个新的系统用户。 确保用户名与我们在上一步中创建的PostgreSQL用户相同:

useradd -m -U -r -d /opt/odoo14 -s /bin/bash odoo14

接下来,以新创建的身份登录 odoo14 用户并从官方Git存储库下载Odoo 14:

su - odoo14
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo/odoo14

下载完成后,使用以下命令为Odoo 14安装创建一个新的Python虚拟环境:

cd /opt/odoo14 && python3 -m venv odoo14-venv

使用以下命令激活虚拟环境:

source odoo14-venv/bin/activate

您现在可以使用来安装所需的python模块 pip3 命令,如下所示:

(odoo14-venv) $ pip3 install wheel
(odoo14-venv) $ pip3 install -r odoo14/requirements.txt

一旦成功安装了所有必需的模块,请停用虚拟环境,并使用以下命令切换回sudo或root用户:

(odoo14-venv) $ deactivate && exit

接下来,为Odoo的自定义插件/应用程序创建一个单独的目录。 最佳做法是在单独的目录中安装自定义Odoo模块。 这样可以确保如果某些自定义模块不起作用,则可以轻松删除它,而不会冒着删除常规安装随附的默认模块的风险。

mkdir /opt/odoo/odoo14-custom-addons
chown odoo: /opt/odoo/odoo14-custom-addons

以下命令将为新的Odoo 14安装创建一个日志文件:

mkdir /var/log/odoo14 && touch /var/log/odoo14/odoo14.log
chown -R odoo14: /var/log/odoo14/

现在,您可以为Odoo安装创建配置文件:

nano /etc/odoo14.conf

打开该文件,然后输入以下信息:

[options]
; This is the password that allows database operations:
admin_passwd = master_password
db_host = False
db_port = False
db_user = odoo14
db_password = False
xmlrpc_port = 8069
; longpolling_port = 8072
logfile = /var/log/odoo14/odoo14.log
logrotate = True
addons_path = /opt/odoo/odoo14/addons,/opt/odoo/odoo14-custom-addons

确保您设置坚强且难以猜测 master_password

完成后,保存并关闭文件。

为Odoo 14创建系统单位文件

我们现在将创建一个 systemd 单元文件,以便我们可以将Odoo 14实例作为服务运行。

您可以使用以下命令创建服务:

nano /etc/systemd/system/odoo14.service

打开文件后,添加以下行:

[Unit]Description=Odoo14Requires=postgresql.serviceAfter=network.target postgresql.service[Service]Type=simpleSyslogIdentifier=odoo14PermissionsStartOnly=trueUser=odoo14Group=odoo14ExecStart=/opt/odoo14/venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.confStandardOutput=journal+console[Install]WantedBy=multi-user.target

保存并关闭文件,然后重新加载 systemd 使用以下命令的守护进程列表:

systemctl daemon-reload

现在,您可以启动Odoo 14服务,并使用以下命令使其在启动时启动:

systemctl start odoo14systemctl enable odoo14

现在,您可以通过以下方式验证Odoo 14服务的状态:

systemctl status odoo14

将Nginx配置为反向代理

您的Odoo 14安装已完成,现在可以在CentOS 8服务器的公共IP上以邮政编码8069进行访问。但是,如果要使用域名访问Odoo应用程序,而不是在URL中键入IP地址和端口号, ,则必须在服务器上配置反向代理。

我们将向您展示如何使用Nginx Web服务器实现反向代理配置。 Nginx是一款功能强大的高性能Web服务器,专注于自定义和性能。

首先,使用以下命令安装Nginx:

dnf install nginx -y

安装后,创建一个新的Nginx虚拟主机配置文件。 更换 yourdomain.com 使用您的注册域名:

nano /etc/nginx/conf.d/yourdomain.com.conf

添加以下行:

upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
server {
listen 80;
server_name yourdomain.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# Proxy headers
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;
# log files
access_log /var/log/nginx/yourdomain.com.log;
error_log /var/log/nginx/yourdomain.com.log;
# Handle longpoll requests
location /longpolling {
proxy_pass http://odoochat;
}
# Cache static files
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;
}

确保更换 yourdomain.com 与您的注册域名。

现在,您可以启动Nginx服务,并使其可以使用以下命令在启动时启动:

systemctl start nginxsystemctl enable nginx

您还需要将Odoo配置为使用代理。 您可以通过编辑Odoo配置文件来做到这一点:

nano /etc/odoo14.conf

并将以下行添加到文件末尾:

proxy_mode = True

保存并关闭文件,然后重新启动Odoo 14服务以实施更改:

systemctl restart odoo14

访问Odoo 14实例

现在,您应该可以使用您的域名访问Odoo 14实例了 http://yourdomain.com

如何使用Nginx作为反向代理在CentOS 8上安装Odoo 14

恭喜,如果您认真按照本教程中的说明进行操作,则说明您已在CentOS 8 VPS上成功安装了最新的Odoo 14。 您可以创建第一个数据库并开始使用最新版本的Odoo。

Odoo可以帮助您提高业务效率,但是您仍然需要花时间维护服务器和Odoo实例。 但是,如果您使用我们的托管Odoo托管,我们可以为您处理所有维护和工作。 我们可以升级和维护您的服务器,安装和配置插件,优化服务器以实现最佳性能等等。

如果您在我们的评论部分中留下评论,我们将非常感谢您分享您的想法和问题。 如果您还希望追随者也为他们的业务设置Odoo 14,也可以使用我们的共享快捷方式在社交媒体上分享此帖子。 谢谢。

Sidebar