如何在CentOS 7上安装ERPNext开源ERP

ERP或企业资源规划是一个企业应用程序套件,用于管理核心业务流程。ERPNext是用Python编写的免费和开源的自托管ERP应用程序。它使用节点。前面的js和MariaDB存储数据。ERPNext提供了一个易于使用的web界面,允许企业管理日常任务。它包括会计、CRM、人力资源管理、制造、POS、项目管理、采购、销售管理、仓库管理等模块。ERPNext可用于管理不同行业,如服务提供商、制造、零售和学校。

在本教程中,我们将在CentOS 7上安装ERPNext。

 

准备条件:

一个Vultr CentOS 7服务器实例。

sudo用户。

对于本教程,我们将使用erp.example.com作为指向服务器的域名。请确保用你的实际域名替换所有出现的erp.example.com。

使用“如何更新CentOS 7”的指南更新您的基本系统。一旦您的系统被更新,继续安装Python。

安装开发工具

ERPNext需要Python版本2.7才能工作。Python 2.7默认安装在所有CentOS服务器实例中。您可以通过运行来检查安装的Python版本:

python -V

 

您应该得到类似的输出。

[user@vultr ~]$ python -VPython 2.7.5

虽然Python的安装版本不是最新版本,但它可以毫无障碍地工作。更改Python的默认版本可能会破坏YUM。

在需要编译安装程序文件的开发工具组中安装包。

sudo yum groupinstall -y "Development tools"

安装更多的依赖项:

sudo yum install -y redhat-lsb-core git python-setuptools python-devel openssl-devel libffi-devel

安装Python的Pip的工具。Pip是Python包的依赖项管理器。

wget https://bootstrap.pypa.io/get-pip.pysudo python get-pip.py

上述命令将在您的系统上安装Pip。为了确保您拥有最新版本的pip和setuptools,请运行:

sudo pip install --upgrade pip setuptools

安装使用Pip Ansible。可以自动进行软件供应、配置管理和应用程序部署。

sudo pip install ansible

安装MariaDB服务器

MariaDB是MySQL数据库服务器的分支。安装MariaDB通过运行。

sudo yum -y install mariadb mariadb-server mysql-devel

Barracuda存储引擎需要创建ERPNext数据库,因此您需要配置MariaDB以使用Barracuda存储引擎。编辑默认的MariaDB配置文件my.cnf。

sudo nano /etc/my.cnf

在symbolic-links=0中添加以下几行。

innodb-file-format=barracudainnodb-file-per-table=1innodb-large-prefix=1character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ci [mysql]default-character-set = utf8mb4

启动MariaDB并使其在启动时自动启动。

sudo systemctl start mariadb.servicesudo systemctl enable mariadb.service

在配置数据库之前,您需要确保MariaDB的安全性。您可以通过运行mysql_secure_installation脚本保护它:

sudo mysql_secure_installation

您将被询问当前的MariaDB根密码。默认情况下,在MariaDB上没有设置根密码。按“Enter”键继续。设置一个强大的密码,为您的MariaDB服务器的根用户,并回答“Y”的所有其他问题。

安装Nginx,Nodejs和Redis

由于在所有Vultr CentOS 7实例中默认安装了EPEL储存库,您可以直接安装Redis和Nginx。但是要安装最新版本的节点.js,您需要将Nodesource存储库添加到您的系统中。

为节点添加Nodesource存储库.js 8. x。

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

安装Nginx,Nodejs和Redis:

sudo yum -y install nginx nodejs redis

启动Nginx,并在启动时启动它:

sudo systemctl start nginxsudo systemctl enable nginx

启动Redis,并允许它在启动时运行:

sudo systemctl start redissudo systemctl enable redis

安装PDF转换器

wkhtmltopdf程序是一个命令行工具,它使用QT Webkit渲染引擎将HTML转换成PDF。安装所需的依赖关系:

sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1下载最新版本的wkhtmltopdf。wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz通过运行提取存档: sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt

上面的命令将提取存档到/ opt/ wkhtmltox。创建一个软链接,这样wkhtmltopdf和wkhtmltoimage可以作为一个命令在全球执行。

sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdfsudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage

您现在可以运行wkhtmltopdf - v命令来检查它是否正常工作,您将看到:

[user@vultr ~]$ wkhtmltopdf -Vwkhtmltopdf 0.12.4 (with patched qt)

在这一点上,我们已经安装了所有必需的依赖项。现在可以进行安装了。

 

安装Bench

Bench是由Frappe提供的命令行实用工具,用于在基于unix的系统上安装和管理ERPNext应用程序,用于开发和生产。Bench还可以创建和管理Nginx和主管配置。

创建一个新用户在隔离环境中运行Bench进程。

sudo adduser bench -d /opt/bench

更改用户的密码。

sudo passwd bench

向Bench用户提供sudo权限。

sudo usermod -aG wheel bench

作为新创建的bench用户登录:

sudo su - bench

在/opt/bench克隆Bench存储库

cd /opt/benchgit clone https://github.com/frappe/bench bench-repo

使用pip安装bench。

sudo pip install -e bench-repo

一旦安装了bench,进一步安装ERPNext使用bench。

安装ERPNext使用板凳

使用已安装的frappe框架初始化一个工作台目录。为了保持一切整洁,我们将在/ opt/ bench目录下工作。Bench还将设置常规备份和自动更新一天一次。

cd /opt/benchbench init erpnext && cd erpnext

创建一个新的Frappe站点:

bench new-site erp.example.com

上述命令将提示您输入MySQL根密码。提供您之前为MySQL根用户设置的密码。它还要求您设置管理员帐户的新密码。稍后您将需要这个密码登录到管理员指示板。

从远程git存储库下载ERPNext安装文件。

bench get-app erpnext https://github.com/frappe/erpnext

在新创建的站点上安装ERPNext:

bench --site erp.example.com install-app erpnext

ERPNext安装在您的服务器上。您可以立即启动应用程序,以检查应用程序是否已成功启动:

bench start

但是,您应该停止执行并进一步设置用于生产的应用程序。

设置主管和Nginx

默认情况下,ERPNext应用程序监听端口8000,而不是标准的HTTP端口80。此外,不建议在web服务器上运行构建的产品,因为我们将把服务器暴露给世界。因此,您应该使用生产web服务器作为反向代理,如Apache或Nginx。在本教程中,我们将使用Nginx作为反向代理,因为它可以使用Bench自动配置。根据ERPNext设置,工作台可以自动生成和安装配置。

尽管我们可以使用上面的命令启动应用程序,但是ERPNext的执行将在关闭终端后立即停止。为了解决这个问题,我建议使用在生产环境中持续运行应用程序的主管。主管是一个过程控制系统,它使您能够监视和控制Linux操作系统上的许多进程。一旦管理员配置好,它就会自动启动应用程序在启动时间和失败。工作台可以自动为ERPNext应用程序配置管理程序。

安装supervisor:

sudo yum -y install supervisor启动管理程序,使其能够在启动时自动启动:sudo systemctl start supervisordsudo systemctl enable supervisord安装bench用于生产:sudo bench setup production bench上面的命令可能会在替换现有的主管默认配置文件之前提示您。选择要进行y.Bench将多个进程添加到管理配置文件中。上面的命令还会问你是否希望用一个新的配置替换当前的Nginx配置。输入y继续。一旦完成了安装配置,请提供其他用户来执行您的主目录下的文件。chmod o+x /opt/bench/如果在服务器上运行防火墙,则需要配置防火墙以设置HTTP服务的异常。允许Nginx反向代理从网络外部连接。sudo firewall-cmd --zone=public --permanent --add-service=httpsudo firewall-cmd --reload您现在可以访问http://erp.example.com。您可以通过运行检查进程的状态:sudo supervisorctl status all您应该看到以下输出:[bench@vultr ~]$ sudo supervisorctl status allerpnext-redis:erpnext-redis-cache                 RUNNING   pid 2554, uptime 1:06:58erpnext-redis:erpnext-redis-queue                 RUNNING   pid 2553, uptime 1:06:58erpnext-redis:erpnext-redis-socketio              RUNNING   pid 2555, uptime 1:06:58erpnext-web:erpnext-frappe-web                    RUNNING   pid 2559, uptime 1:06:58erpnext-web:erpnext-node-socketio                 RUNNING   pid 2556, uptime 1:06:58erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 2549, uptime 1:06:58erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 2551, uptime 1:06:58erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 2550, uptime 1:06:58erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 2552, uptime 1:06:58要停止所有ERPNext进程,请使用:sudo supervisorctl stop all要启动所有ERPNext进程,请使用:sudo supervisorctl start all使用Let ' s的加密设置SSL让我们加密为用户提供免费的SSL证书。SSL可以手动安装,也可以通过工作台自动安装。工作台可以自动安装Let ' s加密客户端并获得证书。此外,它会自动更新Nginx配置以使用证书。要从Let ' s加密CA获取证书的域名必须指向服务器。在发出证书之前,客户端验证域权限。为ERPNext应用程序启用DNS多租户。bench config dns_multitenant on运行工作台设置让我们对你的网站进行加密:sudo bench setup lets-encrypt erp.example.com在执行脚本期间,Let 's Encrypt客户端将要求您暂时停止Nginx web服务器。它将自动安装所需的包,并加密客户机。客户将提示您的电子邮件地址。你还需要接受条款和条件。生成证书之后,Bench还将为使用SSL证书的Nginx生成新的配置。 Bench还创建一个crontab条目,每个月自动更新证书。最后,启用调度程序来自动运行预定的作业:bench enable-scheduler您应该看到:[bench@vultr erpnext]$ bench enable-schedulerEnabled for erp.example.com结束一旦流程完成,您可以在https://erp.example.com访问您的应用程序。使用用户名管理员和在安装期间设置的密码登录。你将被带到你需要提供信息的桌面上,根据你的公司设置ERPNext ERP,现在可以使用应用程序管理公司。祝贺您,您已经在CentOS 7服务器上安装了一个完全工作的ERPNext应用程序。