如何在Ubuntu 18.04 LTS上安装ERPNext
如何在Ubuntu 18.04 LTS上安装ERPNext
ERPNext是一款免费,开源,现代且易于使用的商业管理软件,被全球数千家公司使用。它是一个非常简单的ERP平台,支持零售,贸易,服务,制造,人力资源,非营利组织和其他领域。它是在Frappe框架之上用Python编写的功能强大且功能齐全的ERP系统。它使用Node.js作为前端,MariaDB使用它来存储数据。 ERPNext提供基于Web的界面来执行日常任务。 ERPNext提供具有办公套件集成的嵌入式报告系统。
在本教程中,我们将学习如何在Ubuntu 18.04 LTS服务器上安装和配置ERPNext。
要求
- 运行Ubuntu 18.04的服务器。
- 具有sudo权限的非root用户设置到您的服务器。
入门
首先,您需要使用最新版本更新系统。您可以通过运行以下命令来执行此操作:
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
添加以下行:
P新高=$P新高:~/.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
提示时输入您的root密码。然后,使用以下命令为ERPNext创建数据库和用户:
MariaDB ((none))> create database erpnextdb;
MariaDB ((none))> create user (email protected) 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 '(email protected)' WITH GRANT OPTION;
接下来,使用以下命令刷新权限并退出MariaDB shell:
MariaDB ((none))> FLUSH PRIVILEGES;
MariaDB ((none))> EXIT;
安装ERPNext
首先,为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命令安装工作台:
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。