技术教程 · 2019年12月19日 0

如何在CentOS 8上安装Odoo ERP 13

Odoo是一种免费,开源且最受欢迎的ERP软件,它提供了广泛的业务应用程序,包括客户关系管理(CRM),销售渠道,项目管理,制造,发票,会计,电子商务等。它是一个基于Web的功能齐全的应用程序,可帮助您维护任何业务中的ERP。Odoo带有30个核心模块和4500多个社区创建的模块,可帮助您将其自定义为一家小型企业级公司。

在本教程中,我们将学习如何在CentOS 8服务器上使用Nginx作为反向代理安装和配置Odoo 13。

要求

  • 运行CentOS 8且具有至少2 GB RAM的服务器。
  • 有效的域名指向您的服务器IP。在本教程中,我们将使用exmaple.com域。
  • 在服务器上配置了root密码。

入门

首先,使用以下命令更新系统并安装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@centos8 ~]$

接下来,使用以下命令为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 = admin@123
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实例。

您可以运行以下命令以通过firewalld允许Nginx服务:

firewall-cmd --permanent --zone=public --add-service=nginx
 firewall-cmd --reload

默认情况下,CentOS 8中启用了SELinux。因此,您将需要允许通过SELinux的HTTP。您可以使用以下命令允许它:

setsebool -P httpd_can_network_connect on

访问Odoo 13 Web界面

现在,已安装并配置了Odoo 13。现在该访问Odoo 13 Web界面了。

打开您的Web浏览器,然后输入URL http://example.com。您将被重定向到以下页面:

设置Odoo ERP的数据库详细信息

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

Odee ERP应用程序

结论

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

原文:https://www.howtoforge.com/how-to-install-odoo-erp-13-on-centos-8/