ERPNext15 安装文档&基于Linux Ubuntu 22.04 LTS服务器
ERPNext是一款开源的企业资源计划(ERP)解决方案,由总部位于孟买(印度)的 Frappé Technologies Pvt. Ltd 公司提供按需的SaaS(软件即服务)平台。ERPNext 提供了会计、销售、采购、库存、人力资源、项目、生产和维护等模块。
根据GNU GPL v3许可证授权,基于Python构建,免费开源。
更新:近期,有人在 GitHub 上提供了一键安装脚本,并注有详细使用说明,所以推荐使用脚本安装。(国内服务器不适用,有网络问题)
先决条件:
系统推荐:Linux Ubuntu 22.04 LTS (必要的安全配置)
建议最低配置:2 CPU | 4 GB 内存 | 20 GB 硬盘
可以通过SSH获得服务器的root权限
建议自己在腾讯云 CODING或者阿里云 云效等其他第三方代码托管平台维护一个自己的仓库
服务器配置
首先,以 root 用户身份登录服务器
配置时区和日期
注意:此步较为重要,不正确设置日期和时区,会生成错误的时间戳,对安全,计划任务,日志和审计乃至数据库等多方面造成影响。
检查服务器的当前时区:
date
根据所在地设置正确的日期和时区:
timedatectl set-timezone "Asia/Shanghai"
其中 Asia/Shanghai 为 亚洲/上海 的意思,根据需求自行修改。
更换国内镜像源 (可选)
注意:此步仅适用于国内服务器,海外服务器可以忽略此步。另外,部分国内云服务商提供的系统已经默认进行替换。
以更换 Ubuntu 22.04 默认源为中国科技大学的国内镜像源为例,其他系统或版本请自行查阅:
编辑 /etc/apt/sources.list 文件
sudo nano /etc/apt/sources.list
将内容替换为:
# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
按 Ctrl+x 离开,
询问是否保存,按 Y 保存,
按 Enter 回车确认文件名。
更新和升级服务器软件包
sudo apt update -y
sudo apt upgrade -y
创建新用户
为防止直接使用 root 用户而出现的各种安全问题,建议专门创建一个新用户以用于 Frappe Bench 并授予此用户管理员权限
sudo adduser [frappe-user]
usermod -aG sudo [frappe-user]
su [frappe-user]
cd /home/[frappe-user]/
注意:请将 [frappe-user] 替换为自己的用户名。例如: sudo adduser wuyanzu
安装所需的软件包
安装 Git,Python,Redis
sudo apt install git python-is-python3 python3-dev python3-pip redis-server
更换Python默认源为国内源(可选)
注意:海外服务器可以忽略此步
以更换为阿里云的国内镜像源为例:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
安装 Software Properties Common
sudo apt install software-properties-common
安装 MariaDB
sudo apt install mariadb-server mariadb-client
安装完成后输入 mariadb --version 进行检查确认
安装 Redis Server
sudo apt install redis-server
安装其他必要的软件包(字体,PDF 等)
sudo apt install xvfb libfontconfig wkhtmltopdf
sudo apt install libmysqlclient-dev
配置 MySQL 服务器
设置 MySQL
sudo mysql_secure_installation
输入命令后会进入设置界面,按照以下说明进行配置即可:
- Enter current password for root (enter for none): 输入root密码,初次安装默认没有密码,直接按 Enter 键略过
- Switch to unix_socket authentication [Y/n]:Y 是否切换到unix套接字身份验证
- Change the root password? [Y/n] Y 是否设置root用户密码
- New password: 输入新密码
- Re-enter new password: 再次输入密码
- Remove anonymous users? [Y/n] Y 是否删除匿名用户
- Disallow root login remotely? [Y/n] N 是否禁止root远程登录
- Remove test database and access to it? [Y/n] Y 是否删除测试数据库
- Reload privilege tables now? [Y/n] Y 是否立即重新加载权限表
编辑 MySQL 默认配置文件
sudo nano /etc/mysql/my.cnf
在文件底部添加如下代码:
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4
同样,按 Ctrl+x 离开,
询问是否保存,按 Y 保存,
按 Enter 回车确认文件名。
重启 MySQL 服务器
sudo service mysql restart
安装 Curl, Node, npm, Yarn
注意:这里可能会遇到网络问题,多试几次
- 安装 Curl
sudo apt install curl
- 安装 Node
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.profile
nvm install 18
- 安装 npm
sudo apt install npm
- 安装 Yarn
sudo npm install -g yarn
安装完成后输入 node --version 进行检查确认。
安装 Python 虚拟环境
sudo apt install python3-venv
安装完成后输入 python3 -V 进行检查确认。
创建虚拟环境(例如在 ~/venvs 目录)
python3 -m venv ~/venvs/frappe-env
激活虚拟环境
source ~/venvs/frappe-env/bin/activate
安装 Frappe Bench
Frappe Bench 是一个用于快速部署、管理和维护基于 Frappe 框架的应用程序的工具
- 安装
sudo pip3 install frappe-bench
- 初始化
bench init --frappe-branch version-15 frappe-bench
注意:默认状态下会从 Github 下载 Frappe Bench ,这里需要将下载地址替换成自己仓库的地址,以 gitee 的公有仓库为例将上面的地址修改为:
bench init --frappe-branch version-15 frappe-bench --frappe-path=https://gitee.com/mirrors/frappe --verbose
- 进入 Frappe Bench 目录
此目录将作为我们运行所有命令的目录
完整路径为:/home/[frappe-user]/frappe-bench/
cd frappe-bench/
- 更改用户目录权限
chmod -R o+rx /home/[frappe-user]/
- 创建新站点
bench new-site site1.local
其中 site1.local 为新站点的名称,建议根据自身网站域名进行命名。
例如 :bench new-site example.com
安装 ERPNext 和其他应用程序
下载应用程序
注意:这里所有需要下载的应用程序和 Frappe Bench 一样,默认都是从 Github 下载,所以需要在后面添加自己仓库的地址。例如:bench get-app --branch version-15 erpnext https://gitee.com/mirrors/erpnext
- 下载 Payments
Payments为支付应用程序,在 ERPNext 安装过程中为必须项,优先下载安装。
bench get-app payments
- 下载 ERPNext 主程序
bench get-app --branch version-15 erpnext
根据自身需求下载其他相应的应用程序即可。
最后,可以通过运行 bench version --format table 查看所有已下载的应用程序和版本。
安装应用程序
使用如下格式进行安装:
- site1.local 修改为刚才设置的新站点名称
- erpnext 修改为对应的应用程序名称,按需安装
bench --site site1.local install-app payments
bench --site site1.local install-app erpnext
注意:安装过程中可能会出现一些错误/警告消息,一般情况下是可以忽略的。
设置生产服务器
这里没有什么需要额外注意的,只需要将 [frappe-user] 和 site1.local 替换为对应的值即可。
- 启用调度程序服务
bench --site site1.local enable-scheduler
- 禁用维护模式
bench --site site1.local set-maintenance-mode off
- 设置生产配置
sudo bench setup production [frappe-user]
- 设置 NGINX Web 服务器
bench setup nginx
- 最终服务器设置
sudo supervisorctl restart all
sudo bench setup production [frappe-user]
当系统提示保存新的/现有的配置文件时,点击 Y。
给你自己点个赞
到这里就全部配置完成,在浏览器中输入 [IP 地址]:80 端口进行访问。
自定义域名和SSL设置
对于需要绑定域名的用户可以进行如下操作:
注意:1. 确保域名已经进行解析并指向了对应的服务器 IP地址 2. 别忘记替换对应的值
cd /home/[frappe-user]/frappe-bench/
bench config dns_multitenant on
bench setup add-domain [subdomain.yourdomain.com] --site [site-name]
bench setup nginx
sudo service nginx reload
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx
常见问题
- 端口问题:请检查 服务器 和 云服务器厂商 的端口放行情况
# 使用如下命令对服务器端口进行放行:
sudo ufw allow 22,25,143,80,443,3306,3022,8000/tcp
sudo ufw enable
- 网络问题:由于需要从 Github 等网站下载软件和依赖,如遇网络问题请多尝试几次或者更换其他国内源进行后再次尝试。(有时候网络问题可能会持续好几天)
文档篇幅较长,涉及内容较多,安装过程中免不了出现一些问题。遇到问题时,不要着急,安装过程中出现的问题90%为网络问题,10%为没有看清步骤。
最直接有效的办法是使用海外服务器,可省去90%的烦恼!
利用节省下来的时间去创造更大的价值!