如何在Ubuntu 17.04上安装ERPNext开源ERP

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

先决条件

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

在我们开始之前,请确保您的服务器是最新的。

sudo apt update
sudo apt -y upgrade

安装开发工具

ERPNext需要Python 2.7版才能工作。安装Python 2.7。

sudo apt -y install python-minimal

您应该能够验证其版本。

python -V

您将看到以下输出。

user@vultr:~$ python -V
Python 2.7.13

安装更多的依赖项。

sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev

安装Python的pip工具。Pip是Python软件包的依赖管理器。

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

请确保您有最新版本的pipsetuptools

sudo pip install --upgrade pip setuptools

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

sudo pip install ansible

安装MariaDB服务器

将MariaDB存储库添加到系统中。

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'

安装MariaDB。

sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev

在询问时为MariaDB根用户提供一个强密码。

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

sudo nano /etc/mysql/my.cnf

在该[mysqld]行下添加以下行。

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 restart mariadb
sudo systemctl enable mariadb

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

sudo mysql_secure_installation

系统将要求您输入当前的MariaDB根密码。提供您在安装过程中设置的密码。系统将询问您是否要更改MariaDB服务器的root用户的现有密码。您可以跳过设置新密码的步骤,因为在安装过程中已经提供了一个强密码。对所有其他要求回答“ Y”。

安装Nginx,Node.js和Redis

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

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

安装Nginx,Node.js和Redis。

sudo apt -y install nginx nodejs redis-server

启动Nginx并使其在启动时启动。

sudo systemctl start nginx
sudo systemctl enable nginx

启动Redis并使其在启动时启动。

sudo systemctl start redis-server
sudo systemctl enable redis-server

安装PDF转换器

wkhtmltopdf程序是一个命令行工具,可使用QT Webkit呈现引擎将HTML转换为PDF。安装所需的依赖项。

sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base

下载的最新版本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 --home /opt/bench

向用户提供sudo权限bench

sudo usermod -aG sudo 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

您可以立即启动应用程序以检查应用程序是否成功安装。

bench start

但是,您应该停止执行,然后继续进行设置以供生产使用。

设置主管和Nginx

默认情况下,ERPNext应用程序侦听端口8000,而不侦听标准HTTP端口80。另外,不建议运行内置的Web服务器以用于生产用途,因为我们会将服务器公开。您应该将生产Web服务器用作反向代理,例如Apache或Nginx。我们将使用Nginx作为反向代理,因为可以使用Bench对其进行自动配置。Bench可以根据ERPNext设置自动生成并安装配置。

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

安装主管。

sudo apt -y install supervisor

启动Supervisor,并使它在引导时自动启动。

sudo systemctl start supervisor
sudo systemctl enable supervisor

生产用安装台。

 sudo bench setup production bench

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

chmod o+x /opt/bench/

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

您可以通过运行来检查进程的状态。

sudo supervisorctl status all

您应该看到以下输出。

bench@vultr:~/erpnext$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache                 RUNNING   pid 13852, uptime 0:00:54
erpnext-redis:erpnext-redis-queue                 RUNNING   pid 13851, uptime 0:00:54
erpnext-redis:erpnext-redis-socketio              RUNNING   pid 13853, uptime 0:00:54
erpnext-web:erpnext-frappe-web                    RUNNING   pid 13856, uptime 0:00:54
erpnext-web:erpnext-node-socketio                 RUNNING   pid 13855, uptime 0:00:54
erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 13862, uptime 0:00:54
erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 13870, uptime 0:00:54
erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 13869, uptime 0:00:54
erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 13875, uptime 0:00:54

停止所有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的位置。您现在可以使用该应用程序来管理您的公司。

恭喜,您已经在Ubuntu 17.04服务器上安装了可以正常工作的ERPNext应用程序。



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

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

在Ubuntu上设置Nginx以流式传输实时HLS视频

在Ubuntu上设置Nginx以流式传输实时HLS视频

HTTP Live Streaming(HLS)是由Apple Inc.实现的一种非常强大的流视频协议。HLS使用HTTP事务来遍历防火墙,代理,

在Ubuntu上安装Spigot

在Ubuntu上安装Spigot

Spigot是对Minecraft服务器软件CraftBukkit的修改。Spigot优化了服务器资源的使用,确保您的播放器获得最佳体验

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

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

如何在Ubuntu 16.04上安装GitBucket

如何在Ubuntu 16.04上安装GitBucket

本指南涵盖了针对运行Ubuntu 16.04的Vultr实例的GitBucket的基本安装和设置,并假定您正在以以下方式执行命令:

如何在Fedora 29上安装Attendize

如何在Fedora 29上安装Attendize

使用其他系统?简介Attendize是一个基于Laravel PHP框架的开源门票销售和事件管理平台。Attendiz

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

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

如何在Ubuntu 16.04 LAMP VPS上安装Selfoss RSS Reader

如何在Ubuntu 16.04 LAMP VPS上安装Selfoss RSS Reader

使用其他系统?Selfoss RSS Reader是一种免费的开源自托管基于Web的多功能实时流,mashup,新闻提要(RSS / Atom)阅读器

如何在Ubuntu 16.04 LAMP VPS上安装Paste 2.1

如何在Ubuntu 16.04 LAMP VPS上安装Paste 2.1

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

如何在Ubuntu 16.04上安装Dolibarr

如何在Ubuntu 16.04上安装Dolibarr

使用其他系统?Dolibarr是面向企业的开源企业资源计划(ERP)和客户关系管理(CRM)。多利巴尔

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

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

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