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

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

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

准备条件:

一个Vultr CentOS 7服务器实例。

sudo用户。

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

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

安装开发工具

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

python -V

您应该得到类似的输出。

[user@vultr ~]$ python -V
Python 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.py
sudo 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=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上没有设置根密码。按“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 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

<pre style="margin: 0px; padding: 0px;">下载最新版本的wkhtmltopdf。wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz</pre>

<pre style="margin: 0px; padding: 0px;">通过运行提取存档: sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt</pre>

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

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

向Bench用户提供sudo权限。

sudo usermod -aG wheel bench

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

sudo su - bench

在/opt/bench克隆Bench存储库

cd /opt/bench
git 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/bench
bench 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

<pre style="margin: 0px; padding: 0px;">启动管理程序,使其能够在启动时自动启动:</pre>

sudo systemctl start supervisord
sudo systemctl enable supervisord

<pre style="margin: 0px; padding: 0px;">安装bench用于生产:</pre>

sudo bench setup production bench

<pre style="margin: 0px; padding: 0px;">上面的命令可能会在替换现有的主管默认配置文件之前提示您。选择要进行y.Bench将多个进程添加到管理配置文件中。上面的命令还会问你是否希望用一个新的配置替换当前的Nginx配置。输入y继续。一旦完成了安装配置,请提供其他用户来执行您的主目录下的文件。</pre>

chmod o+x /opt/bench/

<pre style="margin: 0px; padding: 0px;">如果在服务器上运行防火墙,则需要配置防火墙以设置HTTP服务的异常。允许Nginx反向代理从网络外部连接。</pre>

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

<pre style="margin: 0px; padding: 0px;">您现在可以访问http://erp.example.com。</pre>

<pre style="margin: 0px; padding: 0px;">您可以通过运行检查进程的状态:</pre>

sudo supervisorctl status all

<pre style="margin: 0px; padding: 0px;">您应该看到以下输出:</pre>

[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

<pre style="margin: 0px; padding: 0px;">要停止所有ERPNext进程,请使用:</pre>

sudo supervisorctl stop all

<pre style="margin: 0px; padding: 0px;">要启动所有ERPNext进程,请使用:</pre>

sudo supervisorctl start all

<pre style="margin: 0px; padding: 0px;">使用Let ' s的加密设置SSL</pre>

<pre style="margin: 0px; padding: 0px;">让我们加密为用户提供免费的SSL证书。SSL可以手动安装,也可以通过工作台自动安装。工作台可以自动安装Let ' s加密客户端并获得证书。此外,它会自动更新Nginx配置以使用证书。</pre>

<pre style="margin: 0px; padding: 0px;">要从Let ' s加密CA获取证书的域名必须指向服务器。在发出证书之前,客户端验证域权限。</pre>

<pre style="margin: 0px; padding: 0px;">为ERPNext应用程序启用DNS多租户。</pre>

bench config dns_multitenant on

<pre style="margin: 0px; padding: 0px;">运行工作台设置让我们对你的网站进行加密:</pre>

sudo bench setup lets-encrypt erp.example.com

<pre style="margin: 0px; padding: 0px;">在执行脚本期间,Let 's Encrypt客户端将要求您暂时停止Nginx web服务器。它将自动安装所需的包,并加密客户机。客户将提示您的电子邮件地址。你还需要接受条款和条件。生成证书之后,Bench还将为使用SSL证书的Nginx生成新的配置。 Bench还创建一个crontab条目,每个月自动更新证书。</pre>

<pre style="margin: 0px; padding: 0px;">最后,启用调度程序来自动运行预定的作业:</pre>

bench enable-scheduler

<pre style="margin: 0px; padding: 0px;">您应该看到:</pre>

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

<pre style="margin: 0px; padding: 0px;">结束</pre>

<pre style="margin: 0px; padding: 0px;">一旦流程完成,您可以在https://erp.example.com访问您的应用程序。使用用户名管理员和在安装期间设置的密码登录。你将被带到你需要提供信息的桌面上,根据你的公司设置ERPNext ERP,现在可以使用应用程序管理公司。</pre>

<pre style="margin: 0px; padding: 0px;">祝贺您,您已经在CentOS 7服务器上安装了一个完全工作的ERPNext应用程序。</pre>

转贴http://blog.tianya.cn/post-7730408-130415761-1.shtml

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容