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 13 Administration页面:
结论
在以上教程中,您学习了如何在CentOS 8服务器上安装和配置Odoo 13。您还学习了如何将Nginx配置为Odoo 13的反向代理。您现在可以根据业务需要自定义Odoo 13实例。
原文:https://www.howtoforge.com/how-to-install-odoo-erp-13-on-centos-8/