怎样在 Ubuntu 22.04 LTS 上安装 ERPNext

在本教程中,我们将向您展示怎样在 Ubuntu 22.04 LTS 上安装 ERPNext。 对于那些不知道的人,ERPNext 是一种开源企业资源规划 (ERP) 软件,它使用 Frappé 框架构建,该框架是用 Python 编写的。 它是一个基于 Web 的应用程序,可用于管理各种业务操作,包括财务会计、库存管理和客户关系管理。 ERPNext 旨在易于使用和高度可定制,使其成为各种规模企业的热门选择。

本文假定您至少具有 Linux 的基本知识,知道怎样使用 shell,最重要的是,您将站点托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到获取 root 权限的命令。 我将向您展示在 Ubuntu 22.04 (Jammy Jellyfish) 上逐步安装 ERPNext。 您可以按照 Ubuntu 22.04 和任何其他基于 Debian 的发行版(如 Linux Mint、Elementary OS、Pop!_OS 等)的相同说明进行操作。

先决条件

  • 运行以下操作系统之一的服务器:Ubuntu 22.04、20.04 和任何其他基于 Debian 的发行版,如 Linux Mint。
  • 建议您使用全新的操作系统安装,以防止出现任何潜在问题。
  • 通过 SSH 访问服务器(如果您在桌面上,则只需打开终端)。
  • 一种 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当根用户时不小心,可能会损害您的系统。

在 Ubuntu 22.04 LTS Jammy Jellyfish 上安装 ERPNext

步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt 终端中的命令。

sudo apt update
sudo apt upgrade
sudo apt install python3-dev libffi-dev git python3-pip python3-testresources libssl-dev wkhtmltopdf gcc g++ make python3.10-venv -y

步骤 2. 安装 Node.js。

默认情况下,Node.js 在 Ubuntu 22.04 基础存储库中不可用。 现在运行以下命令将 NodeSource 存储库添加到您的 Ubuntu 系统:

wget -qO- https://deb.nodesource.com/setup_16.x | sudo -E bash

将 NodeSource 存储库添加到系统后,使用 Apt 包管理器安装 Node.js 和 Redis:

sudo apt install nodejs redis-server -y

确认已安装最新的 LTS 版本并运行命令:

node -v

此外,您可以使用以下命令检查 NPM 的版本:

npm -v

安装完这两个包后,通过运行以下命令安装 Yarn 包:

npm install -g yarn

有关安装 Node.js 的其他资源,请阅读以下帖子:

  • 怎样在 Ubuntu Linux 上安装 Node.js √

步骤 3. 安装 MariaDB。

默认情况下,MariaDB 在 Ubuntu 22.04 基础存储库上可用。 现在运行以下命令将最新版本的 MariaDB 安装到您的 Ubuntu 系统:

sudo apt install mariadb-server mariadb-client

安装成功后,启用MariaDB(系统开机自动启动),启动,使用以下命令验证状态:

sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb

确认安装并检查已安装的 MariaDB 构建版本:

mariadb --version

默认情况下,MariaDB 未加固。 您可以使用以下方法保护 MariaDB mysql_secure_installation 脚本。 您应该仔细阅读下面的每个步骤,这些步骤将设置 root 密码、删除匿名用户、禁止远程 root 登录以及删除测试数据库和对安全 MariaDB 的访问:

mysql_secure_installation

像这样配置它:

- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

您现在可以使用新密码连接到 MariaDB 服务器:

mysql -u root -p

接下来,您需要将 MariaDB InnoDB 文件格式更改为 Barracuda。 您可以通过编辑文件来完成 /etc/mysql/mariadb.conf.d/50-server.cnf:

nano /etc/mysql/mariadb.conf.d/50-server.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

Save 和 close 该文件,然后重新启动 MariaDB 服务以实施更改:

sudo systemctl restart mariadb

有关安装 MariaDB 的其他资源,请阅读以下帖子:

  • 怎样在 Ubuntu Linux 上安装 MariaDB √

步骤 4. 在 Ubuntu 22.04 上安装 ERPNext。

在安装之前,现在我们创建一个新用户来使用以下命令运行 ERPNext:

useradd -m -s /bin/bash erpnext

接下来,使用以下命令设置 ERPNext 的密码:

passwd erpnext
usermod -aG sudo erpnext

之后,登录到 ERPNext 用户并使用以下命令设置环境变量:

su - erpnext
nano ~/.bashrc

添加以下行:

PATH=$PATH:~/.local/bin/

Save 该文件,然后使用以下命令激活环境变量:

source ~/.bashrc

接下来,使用以下命令为 ERPNext 创建一个目录:

sudo mkdir /opt/bench

接下来,将所有权设置为 erpnext 用户:

sudo chown -R erpnext:erpnext /opt/bench

接下来,将目录更改为 /opt/bench 并从 GitHub 克隆 bench 存储库:

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

接下来,使用 pip3 命令安装 bench repo:

pip3 install -e bench-repo

安装后,使用以下命令使用 frappe 框架初始化 bench 目录:

bench init erpnext

接下来,将目录更改为 erpnext 并使用以下命令创建一个新的 ERPNext 站点:

cd /opt/bench/erpnext
bench new-site your-domain.com

您将被要求提供您的 MariaDB root 密码和管理员密码,如下所示:

MySQL root password: 

Installing frappe...
Updating DocTypes for frappe        : [========================================] 100%
Updating country info               : [========================================] 100%
Set Administrator password: 
Re-enter Administrator password: 
*** Scheduler is disabled ***
Current Site set to your-domain.com

步骤 5. 配置 ERPNext。

现在我们管理 ERPNext 进程并将 Nginx 配置为反向代理:

su - erpnext
sudo apt-get install supervisor nginx -y

接下来,使用以下命令安装 frappe-bench:

sudo pip3 install frappe-bench

接下来,将目录更改为 /opt/bench/erpnext 并使用以下命令为生产环境设置 ERPNext:

cd /opt/bench/erpnext
sudo /home/erpnext/.local/bin/bench setup production erpnext

输出:

PLAY RECAP ************************************************************************************************************************************
localhost                  : ok=8    changed=4    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   

$ sudo systemctl restart supervisor
Port configuration list:

Site your-domain.com assigned port: 80
$ /usr/bin/supervisorctl reread
No config updates to processes
$ /usr/bin/supervisorctl update
$ sudo /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl reload nginx

步骤 6. 配置防火墙。

现在我们使用 ERPNext 设置一个简单的防火墙 (UFW),以允许在默认 Web 端口 80 上进行公共访问:

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

步骤 7. 访问 ERPNext Web 界面。

成功安装后,打开 Web 浏览器并使用 URL 访问 ERPNext Web UI https://your-domain.com. 您将被重定向到以下页面:

恭喜! 您已成功安装 ERPNext。 感谢您使用本教程在 Ubuntu 22.04 LTS Jammy Jellyfish 系统上安装 ERPNext。 如需更多帮助或有用信息,我们建议您查看 ERPNext官方网站.