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 multiversedeb 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 multiversedeb 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 multiversedeb 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-get update -ysudo apt-get 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
sudo apt-get install git
安装完成后输入 git --version 进行检查确认。
安装 Python
sudo apt-get install python3-dev python3.10-dev python3-setuptools python3-pip python3-distutils
安装 Python 虚拟环境
sudo apt-get install python3.10-venv
安装完成后输入 python3 -V 进行检查确认。
更换Python默认源为国内源(可选)
注意:海外服务器可以忽略此步
以更换为阿里云的国内镜像源为例:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
安装 Software Properties Common
sudo apt-get install software-properties-common
安装 MariaDB
sudo apt install mariadb-server mariadb-client
安装完成后输入 mariadb --version 进行检查确认
安装 Redis Server
sudo apt-get install redis-server
安装其他必要的软件包(字体,PDF 等)
sudo apt-get install xvfb libfontconfig wkhtmltopdfsudo apt-get 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 = FALSEcharacter-set-server = utf8mb4collation-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 | bashsource ~/.profilenvm install 18
安装 npm
sudo apt-get install npm
安装 Yarn
sudo npm install -g yarn
安装完成后输入 node --version 进行检查确认。
安装 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 paymentsbench --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 allsudo bench setup production [frappe-user]
当系统提示保存新的/现有的配置文件时,点击 Y。
给你自己点个赞
到这里就全部配置完成,在浏览器中输入 [IP 地址]:80 端口进行访问。
自定义域名和SSL设置
对于需要绑定域名的用户可以进行如下操作:
注意:1. 确保域名已经进行解析并指向了对应的服务器 IP地址 2. 别忘记替换对应的值
cd /home/[frappe-user]/frappe-bench/bench config dns_multitenant onbench setup add-domain [subdomain.yourdomain.com] --site [site-name]bench setup nginxsudo service nginx reloadsudo snap install coresudo snap refresh coresudo snap install --classic certbotsudo ln -s /snap/bin/certbot /usr/bin/certbotsudo certbot --nginx
常见问题
端口问题:请检查 服务器 和 云服务器厂商 的端口放行情况
# 使用如下命令对服务器端口进行放行:sudo ufw allow 22,25,143,80,443,3306,3022,8000/tcpsudo ufw enable
网络问题:由于需要从 Github 等网站下载软件和依赖,如遇网络问题请多尝试几次或者更换其他国内源进行后再次尝试。(有时候网络问题可能会持续好几天)
文档篇幅较长,涉及内容较多,安装过程中免不了出现一些问题。遇到问题时,不要着急,安装过程中出现的问题90%为网络问题,10%为没有看清步骤。