如何在 Ubuntu 18.04 LTS 上安装 ERPNext
本教程适用于这些操作系统版本
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 18.04(仿生海狸)
在此页
- 要求
- 开始
- 安装所需的包
- 安装 Redis 和 Node.js
- 配置 MariaDB
- 安装 ERP下一步
- 访问 ERPNext
ERPNext 是一款免费、开源、现代且易于使用的业务管理软件,全球数以千计的公司都在使用它。它是一个非常简单的 ERP 平台,支持零售、贸易、服务、制造、人力资源、非营利和其他部门。它是在 Frappe 框架之上用 Python 编写的功能强大且功能齐全的 ERP 系统。它使用 Node.js 作为前端,使用 MariaDB 来存储数据。 ERPNext 提供基于网络的界面来执行日常任务。 ERPNext 提供了一个与办公套件集成的嵌入式报告系统。
在本教程中,我们将学习如何在 Ubuntu 18.04 LTS 服务器上安装和配置 ERPNext。
要求
- 一台运行 Ubuntu 18.04 的服务器。
- 具有 sudo 权限的非根用户设置到您的服务器。
入门
首先,您需要使用最新版本更新您的系统。您可以通过运行以下命令来完成此操作:
sudo apt-get update -y
sudo apt-get upgrade -y
系统更新后,您需要为 ERPNext 创建一个用户。
您可以使用以下命令执行此操作:
sudo useradd -m -s /bin/bash erpnext
sudo passwd erpnext
接下来,使用以下命令为 ERPNext 用户授予 sudo 权限:
sudo usermod -aG sudo erpnext
接下来,使用以下命令登录 ERPNext 用户并设置环境变量:
su - erpnext
nano .bashrc
添加以下行:
PATH=$PATH:~/.local/bin/
完成后保存并关闭文件。然后,重新启动系统以应用所有更改。
安装所需的包
首先,使用 erpnext 用户登录您的系统,并在您的系统中安装 ERPNext 所需的一些依赖项。
sudo apt-get install libffi-dev python-pip python-dev libssl-dev wkhtmltopdf -y
接下来,使用以下命令安装 Nginx 和 MariaDB 服务器:
sudo apt-get install nginx mariadb-server -y
安装完成后,您需要对 50-server.cnf 文件进行一些更改。您可以使用以下命令执行此操作:
sudo 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
[mysql]
default-character-set = utf8mb4
保存并关闭文件。然后,重启 MariaDB 服务以应用所有更改:
sudo systemctl restart mariadb
您现在可以使用以下命令检查 MariaDB 服务器的状态:
sudo systemctl status mariadb
您应该看到以下输出:
? mariadb.service - MariaDB 10.1.38 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-02-16 06:26:48 UTC; 2h 38min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Process: 4640 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 4636 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Process: 4505 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-
Process: 4503 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 4482 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Main PID: 4607 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 1111)
CGroup: /system.slice/mariadb.service
??4607 /usr/sbin/mysqld
Aug 16 06:26:47 ubuntu1804 systemd[1]: Starting MariaDB 10.1.38 database server...
Aug 16 06:26:48 ubuntu1804 mysqld[4607]: 2019-02-16 6:26:48 140715015396480 [Note] /usr/sbin/mysqld (mysqld 10.1.38-MariaDB-0ubuntu0.18.04.1) starting
Aug 16 06:26:48 ubuntu1804 systemd[1]: Started MariaDB 10.1.38 database server.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4642]: Upgrading MySQL tables if necessary.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: Looking for 'mysql' as: /usr/bin/mysql
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: This installation of MySQL is already upgraded to 10.1.38-MariaDB, use --force if you still n
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4677]: Checking for insecure root accounts.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4681]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
安装 Redis 和 Node.js
接下来,您需要将 Redis 和 Node.js 安装到您的系统中。您可以通过运行以下命令来安装它们:
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
sudo apt-get install gcc g++ make -y
sudo apt-get install nodejs redis-server -y
sudo npm install -g yarn
配置 MariaDB
默认情况下,MariaDB 安装是不安全的,因此您需要先对其进行保护。您可以使用以下命令保护它:
sudo mysql_secure_installation
如下图所示回答所有问题:
Enter current password for root (enter for none):
Set root password? [Y/n]: N
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 安全后,使用以下命令登录到 MariaDB shell:
sudo mysql -u root -p
出现提示时输入您的根密码。然后,使用以下命令为 ERPNext 创建数据库和用户:
MariaDB [(none)]> create database erpnextdb;
MariaDB [(none)]> create user identified by 'password';
接下来,使用以下命令授予 ERPNext 的所有权限:
MariaDB [(none)]> GRANT ALL ON erpnextdb.* TO 'erpnextuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> GRANT all privileges on *.* to 'root'@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;
接下来,使用以下命令刷新权限并退出 MariaDB shell:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
安装ERP下一步
首先,为 ERPNext 创建一个目录,并使用以下命令授予适当的权限:
sudo mkdir -p /opt/erpnext
sudo chown -R erpnext /opt/erpnext/
接下来,将目录更改为 erpnext 并使用以下命令安装 erpnext:
cd /opt/erpnext
git clone https://github.com/frappe/bench bench-repo
输出:
Cloning into 'bench-repo'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 6144 (delta 10), reused 13 (delta 5), pack-reused 6125
Receiving objects: 100% (6144/6144), 29.70 MiB | 231.00 KiB/s, done.
Resolving deltas: 100% (3924/3924), done.
接下来,使用 pip 命令安装 bench:
sudo pip install -e bench-repo
接下来,使用 frappe 框架初始化 bench 目录:
bench init erpnext
输出:
Building frappe assets...
? Built js/print_format_v3.min.js
? Built js/dialog.min.js
? Built js/web_form.min.js
? Built js/social.min.js
? Built js/modules.min.js
? Built js/form.min.js
? Built js/list.min.js
? Built js/frappe-vue.min.js
? Built js/chat.js
? Built js/desk.min.js
? Built js/control.min.js
? Built css/frappe-rtl.css
? Built css/module.min.css
? Built css/report.min.css
? Built css/form.min.css
? Built css/list.min.css
? Built frappe/css/email.css
? Built css/web_form.css
? Built css/frappe-web.css
? Built css/desk.min.css
? Built js/frappe-web.min.js
? Built js/report.min.js
? Done in 31.313s
Done in 34.43s.
INFO:bench.utils:setting up backups
no crontab for erpnext
INFO:bench.utils:setting up auto update
no crontab for erpnext
Bench erpnext initialized
接下来,将目录更改为 erpnext 并使用以下命令为 node1.example.com 域创建一个新站点:
bench new-site node1.example.com
系统将要求您提供 MySQL root 密码,如下所示:
MySQL root password:
提供您的 root 密码,然后按 Enter。您应该看到以下输出:
Installing frappe...
Updating DocTypes for frappe : [========================================]
Updating country info : [========================================]
Set Administrator password:
Re-enter Administrator password:
*** Scheduler is disabled ***
接下来,使用以下命令为 erpnext 提供适当的权限:
sudo chown -R erpnext:erpnext /opt/erpnext/erpnext
最后,使用以下命令启动服务器:
bench start
您应该看到以下输出:
06:34:02 web.1 | * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
06:34:02 web.1 | * Restarting with inotify reloader
06:34:03 watch.1 | yarn run v1.13.0
06:34:03 watch.1 | $ node rollup/watch.js
06:34:03 web.1 | * Debugger is active!
06:34:04 web.1 | * Debugger PIN: 159-307-235
06:34:13 watch.1 |
06:34:13 watch.1 | Rollup Watcher Started
06:34:13 watch.1 |
06:34:13 watch.1 | Watching...
06:34:15 watch.1 | Rebuilding frappe-web.css
进入ERPNext
ERPNext 现已安装并侦听端口 8000。打开 Web 浏览器并输入 URL http://node1.example.come:8000。您将被重定向到以下页面:

现在,提供管理员用户名和您在设置期间提供的密码。然后,单击“登录”按钮。您应该会看到以下页面:

接下来,选择您的语言并单击“下一步”按钮。您应该会看到以下页面:

接下来,选择您所在的国家/地区并单击“下一步”按钮。您应该会看到以下页面:

接下来,提供您的全名和电子邮件地址。然后,单击“完成设置”按钮。您应该会看到以下页面:

恭喜!您已在 Ubuntu 18.04 服务器中成功安装和配置 ERPNext。您现在可以在生产环境中轻松设置 ERPNext。