网站搜索

在 RHEL/CentOS 和 Debian/Ubuntu 上使用 Nginx 设置 OpenERP (Odoo) 9


Odoo,以前称为OpenERP,是一款用 Python 编写的开源企业资源规划基于 Web 的 ERP 业务软件,附带一套 Web为每个企业设计的应用程序,例如网站建设者、电子商务模块、计费和会计、人力资源、销售点、客户关系管理、库存模块、实时聊天以及许多其他应用程序和功能。

本教程将指导您如何在 RHEL/CentOS/FedoraRHEL/CentOS/Fedora 上安装最新稳定版本的 Odoo(版本 9)基于 Debian/Ubuntu 的系统,带有 Nginx 服务器作为前端的反向代理,以便更快、更安全地从标准 Web 浏览端口访问 Web 界面,而无需增加用户使用浏览器重定向端口的负担。

第 1 步:安装并保护 PostgreSQL 数据库

1. 在开始安装 Odoo 之前,首先确保您的系统附带 Epel 存储库提供的软件包,以便安装后端 PostgreSQL 数据库。

另请通过发出以下命令确保服务器已安装最新的安全包和补丁:

----------- On RedHat/CentOS based systems ----------- 
yum update
yum install -y epel-release

----------- On Debian/Ubuntu based systems ----------- 
apt-get update && sudo apt-get upgrade # On Debian 

2. 接下来,继续安装 PostgreSQL 数据库服务器,这是 Odoo 用于存储信息的默认数据库。

----------- On RedHat/CentOS based systems -----------
yum install postgresql-server

----------- On Debian/Ubuntu based systems -----------
apt-get install postgresql postgresql-client

初始化 PostgreSQL 数据库。

postgresql-setup initdb	

现在最后通过发出以下命令启动 PostgreSQL 数据库:

----------- On SystemD systems -----------
systemctl start postgresql

----------- On SysVinit systems -----------
service postgresql start

作为保护具有空白密码的 PostgreSQL 默认用户的附加步骤,请使用 root 权限发出以下命令以更改密码:

sudo -u postgres psql
postgres=# \password postgres

第 2 步:安装 Odoo 9 – OpenERP

3. 为了从官方存储库安装 Odoo 9,首先为 Odoo 创建新的 yum 存储库文件,内容如下:

在 CentOS/RHEL 系统上

vi /etc/yum.repos.d/odoo.repo

将以下摘录添加到文件 odoo.repo 中。

[odoo-nightly]
name=Odoo Nightly repository
baseurl=http://nightly.odoo.com/9.0/nightly/rpm/
enabled=1
gpgcheck=1
gpgkey=https://nightly.odoo.com/odoo.key

在 Debian/Ubuntu 系统上

Debian/Ubuntu 上,发出以下命令来添加 Odoo 存储库:

wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list

4. 接下来从二进制文件安装Odoo 9 软件。

----------- On RedHat/CentOS based systems -----------
yum install odoo

----------- On Debian/Ubuntu based systems -----------
apt-get update && sudo apt-get install odoo

接下来,启动它并通过发出以下命令检查守护进程状态:

----------- On SystemD systems -----------
systemctl start odoo
systemctl status odoo

----------- On SysVinit systems -----------
service odoo start
service odoo status

作为附加步骤,您可以通过运行 ss 或 netstat 命令来验证 Odoo 服务侦听端口:

ss -tulpn
OR
netstat -tulpn

默认情况下,Odoo 侦听端口 8069/TCP 上的网络连接。

第 3 步:从 Web 界面配置 Odoo

5. 为了进一步配置 Odoo,请启动浏览器并通过以下 URI 访问 Odoo Web 界面:

http://host-or-IP-address:8069/

6. 接下来,系统将提示您为 Odoo 创建新数据库并为管理员帐户设置强密码。

7. 创建数据库后,您将被重定向到管理 Web 面板,您可以在其中进一步安装应用程序并配置 ERP。目前将应用程序保留为默认值并注销。

8. 返回登录屏幕后,点击管理数据库链接并设置主密码以保护 Odoo 数据库管理器。

9. 一旦您获得了 Odoo 数据库管理器的安全,您就可以登录您的应用程序并开始使用所需的应用程序和设置进一步配置它。

第 4 步:从 Nginx 前端访问 Odoo

您可以配置系统,以便用户可以通过 Nginx 反向代理访问 Odoo Web 面板。由于一些 Nginx 前端缓存,这可以方便用户在标准 HTTP 端口上更快地导航 Odoo Web 界面,而无需在浏览器上手动输入 http 端口 8069

为了首先配置此设置,您需要通过执行以下步骤在系统上安装和配置 Nginx

10.首先使用以下命令安装Nginx网络服务器:

----------- On RedHat/CentOS based systems -----------
yum install nginx

----------- On Debian/Ubuntu based systems -----------
apt-get install nginx

11. 接下来,使用文本编辑器打开 Nginx 主配置文件,并在指定 Nginx 文档根位置的行后面插入以下块。

----------- On RedHat/CentOS based systems -----------
vi /etc/nginx/nginx.conf 

----------- On Debian/Ubuntu based systems -----------
nano /etc/nginx/sites-enabled/default

将以下配置摘录添加到 nginx.conf 文件中:

 location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

另外,通过在以下行前面放置 # 来注释 Nginx location 语句。使用下面的屏幕截图作为指导。

#location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #       try_files $uri $uri/ =404;
        #}

12.完成上述所有更改后,重新启动Nginx守护进程,但在运行getenforce命令之前重新启动以检查Selinux是否已启用你的机器。

在 CentOS/RHEL 系统上

如果策略设置为强制,请通过发出以下命令禁用它:

setenforce 0
getenforce

要完全禁用 Selinux,请使用文本编辑器打开 /etc/selinux/config 文件并将 SELINUX 行设置为禁用。

如果您不想完全禁用 Seliux 策略,而只是想放宽规则以授予 Nginx 代理对网络套接字的许可访问权限,请运行以下命令:

setsebool httpd_can_network_connect on -P
getsebool -a | grep httpd 

然后,重新启动 Nginx 守护进程以反映上面所做的更改:

systemctl restart nginx
OR
service nginx restart

13.下一步是一项安全可选功能,意味着更改Odoo应用程序正在侦听的网络套接字,将绑定地址从所有接口(或地址)更改为仅本地主机。

此更改必须仅与 Nginx 反向代理结合使用,因为在本地主机上绑定应用程序仅意味着 LAN 或其他网络内的用户无法访问 Odoo。

为了激活此更改,请打开 /etc/odoo/openerp-server.conf 文件并编辑 xmlrpc_interface 行以仅按照以下屏幕截图中的建议绑定到本地主机。

xmlrpc_interface = 127.0.0.1

为了反映更改,请运行以下命令重新启动 Odoo 服务:

systemctl restart odoo.service
OR
service odoo restart

14. 如果您的机器有防火墙提供的网络防线,请发出以下命令,以便为 Nginx 代理向外界开放防火墙端口:

----------- On FirewallD based systems -----------
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
----------- On IPTables based systems -----------
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
----------- On UFW Firewall systems -----------
ufw allow http

15。就是这样!现在您可以通过访问您的服务器IP地址或域名成功访问您的ERP Odoo应用程序。

http://192.168.1.40
http://domain.tld

16. 为了在系统重新引导后自动运行服务,请发出以下命令一次性启用系统范围内的所有守护程序。

------------ On SystemD Systems ------------  
systemctl enable postgresql.service 
systemctl enable odoo.service
systemctl enable nginx.service
------------ On SysVinit Systems ------------ 

chkconfig postgresql on
chkconfig odoo on
chkconfig nginx on

注意:对于 PDF 报告,您必须通过访问以下链接手动下载并安装 wkhtmltopdf 二进制包以供您自己的发行版安装 wkhtmltopdf 以将 HTML 页面转换为 PDF。