如何在 Ubuntu 20.04 上安装 ERPNext Stack

作者选择了公共利益软件来接受捐赠,作为Write for DOnations计划的一部分。

介绍

ERPNext是一个企业资源规划 (ERP) 套件,它利用了开源技术的强大功能和灵活性。它擅长管理核心业务流程,例如财务、销售、人力资源、制造、采购、服务、服务台需求等。实施像 ERPNext 这样的系统的好处包括:

  • 通过自动化重复的业务流程提高生产力
  • 通过为公司内的所有部门共享数据库来提高 IT 效率
  • 凭借对业务单位如何相互关联的整体愿景,做出更好的决策

ERPNext 基于Frappe,这是一个用Python编写的全栈 Web 应用程序框架,它充分利用了Node/JavaScript 运行时环境,并使用MariaDB作为其数据库后端。基于 Frappe 的应用程序(如 ERPNext)的众多优势之一是工作台命令行实用程序bench CLI 通过自动执行安装、更新、配置和管理多个 Frappe/ERPNext 站点等任务,为管理员节省了时间。

在本教程中,您将在一台运行 Ubuntu 20.04 的服务器上安装和配置 ERPNext 堆栈。这将允许您根据需要为各种开发或生产环境配置堆栈,并为构建更复杂的容错架构做好准备。

先决条件

注意:选择服务器规格时,请记住 ERP 系统是资源密集型的。本指南要求一台具有 4 GB RAM 的服务器,这对于基本用例来说已经足够了,但具体的硬件要求可能会因用户数量和您的业务规模而异。

步骤 1 — 配置防火墙

尽管为开发配置防火墙是可选的,但对于生产来说,这是一项强制性的安全实践。

您需要在 ERPNext 服务器上打开以下端口:

  • 80/tcp443/tcpHTTP和HTTPS分别
  • 3306/tcp 用于 MariaDB 连接(仅在需要远程访问数据库时推荐)
  • 143/tcp25/tcpIMAP和STMP分别
  • 22/tcp对于 SSH(如果您尚未OpenSSH在 UFW 设置中启用
  • 8000/tcp 用于在部署到生产之前测试您的平台

要一次打开多个端口,您可以使用以下命令:

  • sudo ufw allow 22,25,143,80,443,3306,8000/tcp

或者,您可以使用以下命令允许来自特定端口上特定 IP 地址的连接:

  • sudo ufw allow from server_IP to any port port_number

打开所有必要的端口后,启用防火墙:

  • sudo ufw enable

现在确认防火墙的状态:

  • sudo ufw status

UFW 将输出您启用的规则的列表。确保 ERPNext 的必要端口已打开:

Output
Status: active To Action From -- ------ ---- 22,25,80,143,443,3306,8000/tcp ALLOW Anywhere 22,25,80,143,443,3306,8000/tcp (v6) ALLOW Anywhere (v6)

有关 UFW 配置的更多信息,请参阅我们的指南,了解如何在 Ubuntu 20.04 上使用 UFW 设置防火墙

设置适当的防火墙是两个初步步骤中的第一步。现在您将在服务器上配置键盘映射和字符编码。

第 2 步 – 配置语言环境

强烈建议您为控制台配置键盘映射以及主机上的语言和字符编码。这是避免 ERPNext 12 安装过程中可能出现的问题所必需的。请注意,此配置与您实际 ERPNext 平台上的 UI 语言无关,而与系统区域设置有关。

首先,更新您的服务器:

  • sudo apt update

现在配置键盘映射、语言和字符编码:

  • sudo localectl set-keymap us && sudo localectl set-locale LANG=en_US.utf8

localectlUbuntu 20.04 和其他 Linux 发行版使用实用程序在用户登录之前控制和更改系统范围的区域设置和键盘布局设置,这正是 ERPNext 12 所要求的。

您还需要将以下行添加到您的/etc/environment文件中。使用nano或您喜欢的文本编辑器打开文件:

  • sudo nano /etc/environment

现在添加以下内容:

/etc/环境
LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LANG=en_US.UTF-8

保存并关闭文件。

重新启动服务器以应用所有更改:

  • sudo reboot

给您的服务器几分钟重启时间,然后使用ssh它重新进入您的实例。您现在已准备好安装数据库。

第 3 步 – 安装 MariaDB

现在您要将 MariaDB 添加到您的服务器堆栈中。ERPNext 12 需要 MariaDB 10.2+ 才能正常运行。由于 Ubuntu 20.04 在其官方存储库中包含 MariaDB 10.3,您可以使用以下apt命令安装此版本

  • sudo apt install mariadb-server

或者,如果更喜欢较新的 MariaDB 版本,您可以按照我们指南的第 3 步,了解如何在 Ubuntu 18.04 上安装 ERPNext Stack这将引导您完成 MariaDB 的在线存储库向导,该向导将帮助您安装最新版本——MariaDB 10.5。

安装后mariadb-server,安装以下软件包:

  • sudo apt install python3-mysqldb libmysqlclient-dev

ERPNext 12 是一个 Python 应用程序,因此它需要python3-mysqldb用于数据库管理库。libmysqlclient-dev需要访问某些 MariaDB 开发人员功能。

接下来,通过运行mysql_secure_installation脚本为 MariaDB 服务器添加额外的安全层

  • sudo mysql_secure_installation

mysql_secure_installation脚本将提示您几个问题:

  • 第一个提示会询问您root密码,但由于尚未配置密码,请按ENTER
  • 接下来,当被问及更改 MariaDB密码时,请回答N使用默认密码和 Unix 身份验证是基于 Ubuntu 的系统的推荐设置,因为root帐户与自动系统维护任务密切相关。
  • 剩下的问题与删除匿名数据库用户、限制root帐户在 localhost 上远程登录、删除测试数据库和重新加载权限表有关。回答Y所有这些问题是安全的

完成mysql_secure_installation脚本后,MariaDB 将开始使用其默认配置运行。标准的 ERPNext 安装使用 MariaDB 的root用户进行所有数据库操作。虽然这种方法在单服务器设置上可能很方便,但它不被认为是一种好的安全做法。因此,在下一节中,您将学习如何通过创建具有特殊权限的新用户来避免此问题。

创建 MariaDB 超级管理员用户

ERPNext 期望使用 MariaDB 的root用户来管理数据库连接,但这并不总是理想的。为了克服这个限制并让非 root 用户管理 MariaDB,您现在将手动创建一个以用户命名的数据库。然后您将能够为新用户分配特殊权限以驱动 ERPNext 数据库操作。

打开 MariaDB 提示符:

  • sudo mysql

现在创建一个以您要为 MariaDB 连接分配的用户命名的新数据库。本教程将使用,sammy但您可以选择不同的名称:

  • CREATE DATABASE sammy;

确认数据库是使用以下 SQL 语句创建的:

  • SHOW DATABASES;

您将看到类似于以下内容的输出:

Output
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sammy | +--------------------+

现在创建sammy具有类似于root 的权限的 MariaDB 用户然后为该用户提供您选择的强密码。将密码保存在安全的地方;稍后您将需要它:

  • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' IDENTIFIED BY 'mariadb_password' WITH GRANT OPTION;

现在确认用户创建和新用户的权限:

  • SELECT host, user, Super_priv FROM mysql.user;

你会看到这样的输出:

Output
+-----------+-------+------------+ | Host | User | Super_priv | +-----------+-------+------------+ | localhost | root | Y | | localhost | mysql | Y | | % | sammy| Y | +-----------+-------+------------+ 3 rows in set (0.001 sec)

现在刷新权限以应用所有更改:

  • FLUSH PRIVILEGES;

完成后,退出会话:

  • exit

现在您已经创建了一个数据库用户,您只需要微调 MariaDB 以确保正确的 ERPNext 12 操作。幸运的是,ERPNext 团队提供了一个出色的配置模板,您可以将其用作实施的起点。在下一节中,您将学习如何使用该模板正确配置 MariaDB 数据库。

第 4 步 – 为 ERPNext 配置 MariaDB

安装并保护 MariaDB 后,是时候针对 ERPNext 连接对其进行微调了。

首先,停止mariadb.service

  • sudo systemctl stop mariadb

现在使用nano或您最喜欢的文本编辑器创建一个名为的 MariaDB 配置文件mariadb.cnf

  • sudo nano /etc/mysql/mariadb.conf.d/mariadb.cnf

现在添加ERPNext的官方配置模板:

/etc/mysql/mariadb.conf.d/mariadb.cnf
[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 256M
max-connect-errors             = 1000000
innodb                         = FORCE

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# REPLICATION #
server-id                      = 1

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 10240

# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 5462M
innodb-file-format             = barracuda
innodb-large-prefix            = 1
collation-server               = utf8mb4_unicode_ci
character-set-server           = utf8mb4
character-set-client-handshake = FALSE
max_allowed_packet             = 256M

# LOGGING #
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 0
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

# CONNECTIONS #

pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
bind-address    = 0.0.0.0

[mysql]
default-character-set = utf8mb4

[mysqldump]
max_allowed_packet=256M

保存并关闭文件。有关这些配置的更多详细信息,请查看 ERPNext 的 Github 存储库上的此模板文件这是探索这些选项的有用起点。

配置文件 ,/etc/mysql/mariadb.conf.d/mariadb.cnf补充并覆盖了位于 的默认 MariaDB 配置中包含的一些值/etc/mysql/my.cnf该文件为您提供了一个精心设计的模板,可大大提高 ERPNext 的数据库性能。但是请记住,虽然这个模板是一个很好的起点,但没有什么能阻止您通过调整这些参数以满足您的需求来进一步提高 MariaDB 的性能。

测试 MariaDB 连接

由于 ERPNext 几乎所有内部​​操作都依赖于数据库连接,因此在继续之前测试连接是一个好主意。

开始mariadb.service

  • sudo systemctl start mariadb

要测试连接,您可以使用以下命令。请记住用您的凭据替换sammymariadb_password

  • mysql --user sammy --password mariadb_password --host=localhost --protocol=tcp --port=3306 test

您将看到显示 MariaDB 基本帮助内容和几个参数的输出。这意味着您的连接成功:

Output
mysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Usage: mysql [OPTIONS] [database] Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf ... --ssl-verify-server-cert Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. -t, --table Output in table format. --tee=name Append everything into outfile. See interactive help (\h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default. -u, --user=name User for login if not current user. -U, --safe-updates Only allow UPDATE and DELETE that uses keys. -U, --i-am-a-dummy Synonym for option --safe-updates, -U. -v, --verbose Write more. (-v -v -v gives the table output format). ... max-join-size 1000000 secure-auth FALSE show-warnings FALSE plugin-dir (No default value) default-auth (No default value) binary-mode FALSE connect-expired-password FALSE

如果您需要对 MariaDB 的设置进行任何调整或修复任何错误,请记住使用以下命令重新加载服务:

  • sudo systemctl restart mariadb

完成后,启用 MariaDB:

  • sudo systemctl enable mariadb

现在您已经测试了数据库连接,您可以继续安装您的 ERPNext 应用程序。

步骤 5 — 设置 ERPNext 12

现在您的数据库后端已准备就绪,您可以继续设置您的 ERPNext Web 应用程序。在本节中,您将学习如何安装和配置 ERPNext 12 所需的所有组件,然后安装应用程序本身。

首先为服务器准备 ERPNext 12 所需的所有系统包。使用以下命令安装系统范围的依赖项:

  • sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential python3-testresources python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libdate-manip-perl logwatch

DEBIAN_FRONTEND=noninteractive变量已传递给安装命令,以避免出现 Postfix 提示。有关 Postfix 配置的详细信息,请阅读我们关于如何在 Ubuntu 20.04 上安装和配置 Postfix 的指南

接下来,更新pip3,这是 Python 的标准包管理器,然后安装三个附加 Python 模块的最新版本:

  • sudo -H python3 -m pip install --upgrade setuptools cryptography psutil

setuptools有利于Python包的安装和升级cryptography增加了加密功能,你的筹码,并psutil与系统监控设备现在您已经安装了所有必要的全局依赖项,现在您将安装 ERPNext 12 所需的所有服务和库。

设置 Node.js 和 Yarn

ERPNext 12 可以与 Node.js 服务器环境的 8+ 版本一起使用。事实上,在撰写本文时,官方 ERPNexteasy_install脚本使用的是 Node 8。但从安全角度来看,建议安装更新的版本,因为 Node 8 将在 2020 年达到其生命周期 (EOL),因此将不会收到任何更多安全补丁。在撰写本文时,Ubuntu 20.04 包含 Node.js 版本 10.19。尽管此版本仍在维护,但出于类似原因(不到一年内 EOL),强烈建议避免使用它。对于本指南,Node.js的版本12 LTS将安装沿与相应的npmyarn包管理器。请注意,Frappe 框架使用yarn安装依赖项。如果您决定使用其他安装方法,请确保最终yarn在您的系统运行1.12+ 版本

将 NodeSource 存储库添加到您的系统:

  • curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh

现在您可以检查下载脚本的内容:

  • sudo nano nodesurce_setup.sh

一旦您对脚本的内容感到满意,您就可以运行该脚本:

  • sudo bash nodesource_setup.sh

此脚本将自动更新apt列表。现在您可以nodejs在您的服务器上安装

  • sudo apt install nodejs

接下来,yarn使用npm包管理器全局安装

  • sudo npm install -g yarn

现在您已经安装了 Node,您可以继续wkhtmltopdf为您的平台进行配置

ERPNext 使用wkhtmltopdf开源工具使用 Qt WebKit 渲染引擎将 HTML 内容转换为 PDF。此功能主要用于打印发票、报价单和其他报告。在ERPNext 12的情况下,一个特定版本wkhtmltopdf是必需的,0.12.5以修补的Qt。

要安装wkhtmltopdf,首先切换到合适的目录下载包,在这种情况下/tmp

  • cd /tmp

wkhtmltopdf从项目页面下载适用于 Ubuntu 20.04的相应版本和软件包:

  • wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

现在使用该dpkg工具安装软件包

  • sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

接下来,将所有相关的可执行文件复制到您的/usr/bin/目录中:

  • sudo cp /usr/local/bin/wkhtmlto* /usr/bin/

文件就位后,更改其权限以使其可执行:

  • sudo chmod a+x /usr/bin/wk*

现在wkhtmltopdf已正确安装,我们将 Redis 添加到我们的数据库堆栈中。

安装Redis

ERPNext 12 使用Redis 来增强MariaDB 的性能。具体来说,Redis 协助缓存

首先,从官方 Ubuntu 20.04 存储库安装 Redis:

  • sudo apt install redis-server

然后在启动时启用Redis:

  • sudo systemctl enable redis-server

现在您已将 Redis 添加到您的堆栈中,让我们花点时间总结一下您到目前为止所取得的成就。到目前为止,您已经安装了 ERPNext 12 所需的所有主要组件,其中包括:

  • MariaDB 数据库后端
  • Node.js JavaScript 服务器环境
  • Yarn 包管理器
  • Redis 数据库缓存
  • wkhtmltopdfPDF文件生成器

无论您是安装 ERP 系统用于开发还是用于生产,您现在都已准备好进行下一步,即安装 Frappe 全栈框架和实际的 ERPNext 12 Web 应用程序。

步骤 6 — 安装 Frappe Bench CLI

现在您已经安装了 ERPNext 的所有堆栈要求,您可以释放 Frappebench命令行实用程序的灵活性benchCLI的目的是协助用户在安装的过程中,建立和管理是基于该框架冰沙一样ERPNext应用的目的。在接下来的部分中,您将安装benchCLI,然后使用它来完成设置 ERPNext 12 的过程。

确保 Frappe 用户(在本例中sammy)对其home目录具有适当的权限

  • sudo chown sammy -R /home/sammy

现在将frappe/bench存储库克隆到您的主目录。请记住替换sammy为您的系统用户名:

  • git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master

安装benchCLI:

  • sudo pip3 install -e /home/sammy/.bench

本指南假设您正在为测试/生产场景安装 ERPNext 12,因此您正在使用该master分支。但是,如果您打算开发应用程序或自定义 ERPNext 模块,那么develop分支可能是更好的选择。无论哪种情况,您现在都已准备好安装 Frappe 框架。这将是您安装 ERPNext 之前的最后一步。

设置 Frappe 框架环境

在本节中,您将使用CLI创建Frappe 环境bench

在 Frappe 安装期间,您可能会超出 Ubuntu 的文件监视限制,默认设置为 8192。为避免此问题,请使用以下命令设置更高的限制:

  • echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

tee命令会将您的echo命令内容附加到被调用的文件中,同时还将输出打印到您的控制台。

接下来,初始化 Frappe Framework 12. 将 Sammy 替换为您的系统用户名:

  • bench init /home/sammy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3

在执行过程中,您可能会看到有关您的路径的一个错误以及几个警告。让这个过程一直持续到最后。完成后,您将看到类似于以下的输出,表明您的环境已成功创建:

Output
... Done in 82.23s. INFO:bench.utils:setting up backups no crontab for sammy SUCCESS: Bench /home/sammy/frappe-bench initialized

注意:bench init如果spawn ENOMEM遇到错误,过程可能会停止当您的系统内存不足时会导致此错误。您必须在继续之前解决问题,方法是安装更多物理内存或分配 SWAP 空间。

让我们仔细看看用于创建环境的命令:

  • /home/sammy/frappe-bench是 Frappe 框架、网站和相关应用程序的安装路径。frappe-bench将创建一个新目录(在本例中称为)以容纳所有必需的文件。
  • --frappe-path 指向 Frappe 存储库,在本例中是官方 Github 存储库。
  • --frappe-branch是要安装的 Frappe 版本。因为要安装ERPNext 12,所以选择的版本是Frappe 12。
  • --python是将使用的 Python 版本。ERPNext 12 需要 Python 3.6+。但是,之前的版本仍然使用 Python 2.7。

有关benchCLI 命令的更多信息,请参阅Bench 命令备忘单

Frappe 框架提供的灵活性远远超出了使用隔离环境的范围。您还可以创建不同的网站并将应用程序安装到其中。

步骤 7 — 安装 ERPNext 12 Web 应用程序

在本节中,您将设置一个基于 Frappe 的站点,然后在其上安装 ERPNext 12 应用程序。

切换到 Frappe 初始化的目录。

  • cd /home/sammy/frappe-bench

在继续之前,您需要安装特定版本的 Python 库numpy安装pandas到 Frappe 虚拟环境中。使用以下命令安装这些软件包:

  • ./env/bin/pip install numpy==1.18.5 && ./env/bin/pip install pandas==0.24.2

此时,安装可能会暂停约 10 到 20 分钟,同时显示以下消息:

Output
... Building wheel for pandas (setup.py) ... -

与 Ubuntu 20.04相关错误有关pandas,在撰写本文时,错误仍然相当新。尽管如此,这些包还是会构建,一旦它们完成,您将看到如下输出:

Output
... Successfully built pandas Installing collected packages: pandas Successfully installed pandas-0.24.2

现在,您可以继续安装。使用benchCLI从其存储库下载 ERPNext 12

  • bench get-app erpnext https://github.com/frappe/erpnext --branch version-12

接下来,创建新站点,替换your_domain为与此服务器 IP 关联的域:

  • bench new-site your_domain --admin-password 'erpnext_admin_password' --mariadb-root-username sammy --mariadb-root-password 'mariadb_password'

让我们花点时间回顾一下上面命令中使用的选项:

  • bench new-site 创建一个基于 Frappe 框架的新站点。
  • your_domain是新站点的名称。确保您的域的 DNS 具有指向您服务器 IP 的 A 记录。
  • erpnext_admin_password是 ERPNext 的管理员用户所需的密码将此密码保存在安全的地方——您很快就会用到它。
  • mariadb_password是您在指南开头为 MariaDB 用户创建的密码sammy

在此之后,将 ERPNext 应用程序安装到站点上:

  • bench --site your_domain install-app erpnext

安装完成后,您将拥有一个可运行的 ERPNext 12 应用程序。现在让我们使用bench命令来测试它

  • bench start

以上将启动一个实时监控控制台,向您显示有关网络服务器和其他服务的各种消息。打开 Web 浏览器并导航到localhost:8000(对于本地安装)或your_domain:8000(如果您使用的是远程服务器)。您将看到 ERPNext 登录屏幕(我们将在稍后的步骤中继续登录和设置,一旦我们的网站准备好生产)。

访问您的测试部署后,返回到您的终端并按CTRL+C这将停止 ERPNext 并退出监控控制台。

如果您的主要目标是创建模块或修改 ERPNext 12,那么您可以在此时停止。不再需要用于开发目的的组件。但是,如果您需要的是不需要手动初始化的生产就绪系统,那么您将需要安装和配置一些额外的组件。这是你的下一步。

步骤 8 — 为生产设置 ERPNext 12

尽管您的 ERPNext 12 应用程序已准备就绪,但整个系统尚未准备好投入生产。为确保 ERPNext 的可靠性和安全性,您需要启用一些附加服务:

  • Fail2ban提供了额外的保护层,防止来自恶意用户和机器人的蛮力尝试。
  • Nginx主要用作 Web 代理,将所有流量从端口重定向8000到端口80(HTTP) 或端口443(HTTPS)
  • Supervisor确保 ERPNext 的关键流程不断启动和运行,并在必要时重新启动它们。

到目前为止,您已经手动安装和配置了 ERPNext 12,这允许您自定义流程以匹配任何特定用例。不过,对于其余的生产设置,您可以利用benchCLI的便利性,让它自动安装和配置这些剩余服务。

确保您位于 Frappe 工作目录中:

  • cd /home/sammy/frappe-bench

现在使用以下命令完成为生产设置 ERPNext 12:

  • sudo bench setup production sammy --yes

以上将安装和配置 Nginx、Supervisor 和 Fail2Ban 并设置sammy为生产环境所有者。

bench命令创建的配置文件为:

  • 两个 Nginx 配置文件位于/etc/nginx/nginx.conf/etc/nginx/conf.d/frappe-bench.conf
  • 一个 Fail2Ban 代理监狱位于 ,/etc/fail2ban/jail.d/nginx-proxy.conf一个过滤器位于/etc/fail2ban/filter.d/nginx-proxy.conf

这些默认配置对于本教程就足够了,但您应该随意探索和调整这些文件以满足您的要求。您可以通过运行以下命令停止所有服务:

  • sudo supervisorctl stop all

然后,一旦您准备好,您就可以重新启动您的服务:

  • sudo supervisorctl start all

现在您已准备好测试您的安装。

测试您的 ERPNext 12 安装

首先,验证关键生产服务是否正在运行。使用以下systemctl命令,然后将其通过管道传输到grep

  • systemctl list-unit-files | grep 'fail2ban\|nginx\|supervisor'

你会看到这样的输出:

Output
fail2ban.service enabled nginx.service enabled supervisor.service enabled

确认一切正常后,您可以在您的服务器上实时测试 ERPNext 12。打开您最喜欢的浏览器并导航your_domain或您托管 ERPNext 12 应用程序的任何位置。

几秒钟后,您应该会看到 ERPNext 12 登录屏幕。使用管理员作为用户名(电子邮件)和erpnext_admin_password您之前创建的密码。

ERPNext登录界面

在下一个屏幕中,您将看到一个下拉菜单,您可以在其中选择应用程序的 UI 语言:

语言选择

选择语言后,ERPNext 将提示您有关您的国家、时区和货币:

选择您的地区

完成区域信息后,您将能够创建您的第一个 ERPNext 用户。您提供的信息将用作用户的登录凭据。

第一个 ERP 下一个用户

在下一个屏幕中,您将被询问 ERPNext 将什么称为Domains如果您不确定您的域是什么,请选择分发并单击下一步按钮。

选择您的域名

接下来,您需要提供公司名称和缩写。

公司名称

在最后一个屏幕上,ERPNext 会询问您公司的业务、银行名称、会计科目表类型和会计年度期间。稍后您将能够输入其他银行。现在,根据需要填写所有字段,然后单击“完成设置”按钮。

财务信息

接下来,您将看到一个进度条。

设置 ERPNext

设置过程完成后,将出现 ERPNext 12 主仪表板。

ERPNext 12 仪表盘

您现在已经完全安装并配置了 ERPNext 12 应用程序。

结论

现在您已经正确安装了 ERPNext 12 应用程序,您可能想要开始实施该系统以满足您的业务需求。单击ERPNext 仪表板上的入门按钮是一个很好的起点ERPNext 将帮助您配置平台以满足您的所有业务和电子商务需求。

入门

您可能还希望提高 ERPNext 的速度。如果是这种情况,那么您可以阅读 ERPNext 性能调优,它将指导您完成最佳实践以及如何调试与性能相关的问题。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁