如何在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

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

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 機器變磚。閱讀這篇文章以了解更多信息