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

ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是使用Python编写的免费和开源的自托管ERP应用程序。它使用Node.js作为前端,并使用MariaDB存储其数据。ERPNext提供了易于使用的Web界面,使企业可以管理日常任务。它包含用于会计,CRM,HRM,制造,POS,项目管理,采购,销售管理,仓库管理等的模块。ERPNext可用于管理不同的行业,例如服务提供商,制造,零售和学校。

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

先决条件

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

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

安装开发工具

ERPNext需要Python 2.7版才能工作。默认情况下,所有CentOS服务器实例中都安装了Python 2.7。您可以通过运行以下命令检查安装的Python版本:

python -V

您应该得到类似的输出。

[user@vultr ~]$ python -V
Python 2.7.5

尽管已安装的Python版本不是最新版本,但可以轻松运行。更改默认版本的Python可能会破坏YUM。

Development tools编译安装程序文件所需的组中安装软件包。

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.py
sudo python get-pip.py

上面的命令将Pip安装到您的系统上。为确保您有最新版本pip,并setuptools运行:

sudo pip install --upgrade pip setuptools

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

sudo pip install ansible

安装MariaDB服务器

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

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

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

sudo nano /etc/my.cnf

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

innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

启动MariaDB并使它能够在启动时自动启动。

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

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

sudo mysql_secure_installation

系统将要求您输入当前的MariaDB根密码。默认情况下,MariaDB上没有设置root密码。按“ Enter”键继续。为您的MariaDB服务器的root用户设置一个强密码,然后对所有其他询问回答“ Y”。提出的问题是不言自明的。

安装Nginx,Nodejs和Redis

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

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

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 nginx
sudo systemctl enable nginx

启动Redis,并通过运行以下命令使其在启动时启动:

sudo systemctl start redis
sudo 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。创建一个软链接,这样wkhtmltopdfwkhtmltoimage可以作为一个命令来执行全局。

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

现在,您可以运行wkhtmltopdf -V命令以检查其是否正常运行,您将看到:

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

至此,我们已经安装了所有必需的依赖项。现在,您可以继续安装Bench。

安装工作台

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

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

sudo adduser bench -d /opt/bench

修改用户密码。

sudo passwd bench

向用户提供sudo权限bench

sudo usermod -aG wheel bench

以新创建的bench用户身份登录:

sudo su - bench

将Bench资料库克隆到/opt/bench

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

使用安装基准pip

sudo pip install -e bench-repo

安装Bench后,请继续使用Bench安装ERPNext。

使用Bench安装ERPNext

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

cd /opt/bench
bench init erpnext && cd erpnext

创建一个新的Frappe网站:

bench new-site erp.example.com

上面的命令将提示您输入MySQL root密码。提供您先前为MySQL根用户设置的密码。它还将要求您为管理员帐户设置新密码。您稍后将需要此密码登录管理员仪表板。

使用Bench从远程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对其进行自动配置。Bench可以根据ERPNext设置自动生成并安装配置。

尽管我们可以使用上述命令启动应用程序,但关闭终端后,ERPNext的执行将立即停止。为解决此问题,我建议使用Supervisor,它对于在生产环境中连续运行应用程序非常有帮助。Supervisor是一个过程控制系统,使您可以监视和控制Linux操作系统上的许多过程。一旦配置了Supervisor,它将在启动时以及发生故障时自动启动应用程序。Bench可以自动为ERPNext应用程序配置Supervisor。

安装主管:

sudo yum -y install supervisor

启动Supervisor,并使它能够在启动时自动启动:

sudo systemctl start supervisord
sudo systemctl enable supervisord

生产用安装台:

 sudo bench setup production bench

上述命令可能会提示您,然后用新的Supervisor默认配置文件替换它。选择y继续。Bench将许多进程添加到Supervisor配置文件中。上面的命令还会询问您是否要用新的配置替换当前的Nginx配置。输入y继续。Bench完成安装配置后,请提供其他用户执行Bench用户主目录中的文件。

chmod o+x /opt/bench/

如果在服务器上运行防火墙,则需要配置防火墙以为HTTP服务设置例外。允许Nginx反向代理从网络外部连接。

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

您现在可以通过访问网站http://erp.example.com

您可以通过运行以下命令检查进程的状态:

sudo supervisorctl status all

您应该看到以下输出:

[bench@vultr ~]$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache                 RUNNING   pid 2554, uptime 1:06:58
erpnext-redis:erpnext-redis-queue                 RUNNING   pid 2553, uptime 1:06:58
erpnext-redis:erpnext-redis-socketio              RUNNING   pid 2555, uptime 1:06:58
erpnext-web:erpnext-frappe-web                    RUNNING   pid 2559, uptime 1:06:58
erpnext-web:erpnext-node-socketio                 RUNNING   pid 2556, uptime 1:06:58
erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 2549, uptime 1:06:58
erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 2551, uptime 1:06:58
erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 2550, uptime 1:06:58
erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 2552, uptime 1:06:58

要停止所有ERPNext进程,请使用:

sudo supervisorctl stop all

要启动所有ERPNext流程,请使用:

sudo supervisorctl start all

使用“加密”设置SSL

让我们加密为用户提供免费的SSL证书。SSL可以手动安装,也可以通过Bench自动安装。Bench可以自动安装Let's Encrypt客户端并获取证书。此外,它会自动更新Nginx配置以使用证书。

从“加密加密” CA获取证书所使用的域名必须指向服务器。客户端在颁发证书之前验证域权限。

为ERPNext应用程序启用DNS多租户。

bench config dns_multitenant on

运行Bench在您的网站上设置“让我们加密”:

sudo bench setup lets-encrypt erp.example.com

在脚本执行期间,“让我们加密”客户端将要求您暂时停止Nginx Web服务器。它将自动安装所需的软件包和“让我们加密”客户端。客户将提示您输入电子邮件地址。您还需要接受条款和条件。生成证书后,Bench还将为使用SSL证书的Nginx生成新配置。在替换现有配置之前,系统将询问您。Bench还会创建一个crontab条目,以每月自动更新证书。

最后,启用调度程序以自动运行调度的作业:

bench enable-scheduler

您应该看到:

[bench@vultr erpnext]$ bench enable-scheduler
Enabled for erp.example.com

包起来

该过程完成后,您可以通过访问您的应用程序https://erp.example.com。使用Administrator您在安装过程中设置的用户名和密码登录。您将被带到需要提供信息以根据您的公司设置ERPNext ERP的位置。您现在可以使用该应用程序来管理您的公司。

恭喜,您的CentOS 7服务器上已安装了可以正常运行的ERPNext应用程序。



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。