查看完整视频
小黑屋思过中,禁止观看!
评论并刷新后可见

您需要在视频最下面评论并刷新后,方可查看完整视频

积分观看

支付积分后查看完整视频

{{user.role.value}}
付费视频

支付完成后查看完整视频

¥{{user.role.value}}
专属视频

只允许以下等级用户查看该视频

升级
会员专享

视频选集

Ubuntu 22.04 安装ERPNext V14

  • 视频介绍
  • 视频选集
  • 交流讨论

本文的安装过程是参考一些ERPnext大佬的安装过程以及自己的安装实践总结出来的一些内容,仅供参考。
系统环境:Ubuntu 22.04 Server(minimized)
虚拟机配置:2核4G
Ubuntu系统源更换为清华大学开源镜像

一、安装基础环境

1.1 设置用户

安装Ubuntu时已经创建用户了,这一步可以省略,用创建的用户直接安装。

# 设置root密码
sudo passwd root
# 切换到root用户
su - root
# 新建一个ERP系统用户
adduser [frappe-user]
# 将用户添加到sudo组
usermod -aG sudo [frappe-user]
# 更新并重启
apt update && apt upgrade -y && shutdown -r now
# 重启后用新建的用户登录

1.2 下载node.js

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

1.3 安装程序运行所需依赖

由于使用的Ubuntu是最小化安装,所以安装的依赖比较多。

sudo apt install -y python3.10-dev python3-setuptools python3-pip python3-distutils python3.10-venv software-properties-common mariadb-server mariadb-client redis-server nodejs xvfb libfontconfig wkhtmltopdf libmysqlclient-dev nginx cron vim git ttf-wqy-zenhei ttf-wqy-microhei

1.4 用Vi编辑器修改my.cnf文件

sudo vi /etc/mysql/my.cnf
# 将光标移动到最后空白行,复制以下文本内容,粘贴后注意格式和换行要同下方,按Esc,输入:wq 保存并退出。

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

1.5 重启sql

sudo service mysql restart

1.6 mysql的安全配置

sudo mysql_secure_installation

# 注:运行结果用 ··· 代替
Enter current password for root (enter for none): # 输入root(mysql)的密码,初次安装默认没有,直接回车

Switch to unix_socket authentication [Y/n] n # 是否切换到unix套接字身份验证[Y/n]

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] n # 是否删除test数据库,可以保留

Reload privilege tables now? [Y/n] y # 是否重新加载权限表,也可以直接回车

Thanks for using MariaDB! # 看到这句话证明设置成功

1.7 安装yarn,并切换国内源

sudo npm install -g yarn
# 查看源
yarn config get registry
# 如果官方源请设置为以下国内源
yarn config set registry https://registry.npmmirror.com/ --global  && 
yarn config set disturl https://npmmirror.com/package/dist --global && 
yarn config set sass_binary_site https://cdn.npmmirror.com/binaries/node-sass --global  && 
yarn config set electron_mirror https://registry.npmmirror.com/binary.html?path=electron/ --global  && 
yarn config set puppeteer_download_host https://registry.npmmirror.com/binary.html --global  && 
yarn config set chromedriver_cdnurl https://cdn.npmmirror.com/binaries/chromedriver --global  && 
yarn config set operadriver_cdnurl https://cdn.npmmirror.com/binaries/operadriver --global  && 
yarn config set phantomjs_cdnurl https://cdn.npmmirror.com/binaries/phantomjs --global  && 
yarn config set selenium_cdnurl https://cdn.npmmirror.com/binaries/selenium --global  && 
yarn config set node_inspector_cdnurl https://cdn.npmmirror.com/binaries/node-inspector --global
npm set registry https://registry.npmmirror.com/ && 
npm set disturl https://npmmirror.com/package/dist && 
npm set sass_binary_site https://cdn.npmmirror.com/binaries/node-sass && 
npm set electron_mirror https://registry.npmmirror.com/binary.html?path=electron/ && 
npm set puppeteer_download_host https://registry.npmmirror.com/binary.html && 
npm set chromedriver_cdnurl https://cdn.npmmirror.com/binaries/chromedriver && 
npm set operadriver_cdnurl https://cdn.npmmirror.com/binaries/operadriver && 
npm set phantomjs_cdnurl https://cdn.npmmirror.com/binaries/phantomjs && 
npm set selenium_cdnurl https://cdn.npmmirror.com/binaries/selenium && 
npm set node_inspector_cdnurl https://cdn.npmmirror.com/binaries/node-inspector

npm 版本在 7.0.0 以上则不需要清除缓存

1.8 更改pip源

# 升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# root用户也更新一下pip源
sudo pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

1.9 查看版本,对照一下

# 升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# root用户也更新一下pip源
sudo pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

二、安装bench

sudo -H pip3 install frappe-bench
# 查看bench版本
bench --version

三、安装frappe框架

这一步时间比较长,代码库已经加了码云地址参数。如果网络超时失败,可重新运行该命令,重新运行之前需使用命令 rm -r frappe-bench 删除之前生成的目录。

bench init --frappe-branch version-14 frappe-bench --frappe-path=https://gitee.com/mirrors/frappe

四、安装新站点

# 安装的系统用户分配一下执行权限。
sudo chmod -R o+rx /home/{USERNAME}/
# 进入bench目录
cd frappe-bench
#新建站点
bench new-site {sitename}
# 这里需要输入mariadb的root密码
# 安装完成后提示设置用户administrator的密码

五、安装app

5.1 下载app

bench get-app https://gitee.com/phipsoft/payments
bench get-app --branch version-14 erpnext https://gitee.com/mirrors/erpnext 
bench get-app https://gitee.com/qpchen888/hrms

5.2 安装app

bench --site {sitename} install-app payments
bench --site {sitename} install-app erpnext
# 在安装hrms前需要先运行bench start,再开一个窗口来安装
bench --site {sitename} install-app hrms

六、设置为生产环境

即用supervisorctl管理所有进程,使用nginx做反向代理,USERNAME换成新建的账号

# 前面运行的bench 要停止再设置生产环境
bench运行的窗口按 Ctrl + c
# 设置为生产环境
sudo bench setup production {USERNAME}
sudo vi /etc/supervisor/supervisord.conf

[unix_http_server]

file=var/tmp/supervisord.sock
chmod=0700
chown={USERNAME}:{USERNAME} #在这个位置加上这一行,USERNAME如frappe:frappe

# 改完后执行
sudo -A systemctl restart supervisor

重要:设置成生产环境后,不用执行bench start进行启动!!!

安装完后可查看一下是否有活动的wokers

bench doctor

正常情况下会显示如下:
—–Checking scheduler status—–
Scheduler disabled for erpnext
Scheduler inactive for erpnext
Workers online: 3
—–erpnext Jobs—–

如果不成功,可以再设置一遍生产环境。

七、安装常用app

7.1 安装ERPNext界面汉化

# 获取app
bench get-app https://gitee.com/yuzelin/erpnext_chinese.git
# 安装app
bench --site {sitename} install-app erpnext_chinese

7.2 安装ERPNext开箱即用

# 获取app 
bench get-app --branch version-14 https://gitee.com/yuzelin/erpnext_oob.git
# 安装app
bench --site {sitename} install-app erpnext_oob

7.3 安装ERPNext权限优化

# 获取app
bench get-app https://gitee.com/yuzelin/zelin_permission.git
# 安装app
bench --site {sitename} install-app zelin_permission

八、常见问题

使用过程中突然无法连接服务器,页面出现报错。
原因:
生产环境的fail2ban在同一ip操作太频繁时视为受到DDOS攻击而触发自动保护。
处理方法:
打开/etc/fail2ban/jail.d/nginx-proxy.conf

# 将maxtry数值改大一些,比如25,bantime改小一些,改完保存退出。
sudo vi /etc/fail2ban/jail.d/nginx-proxy.conf
# 重启fail2ban
sudo systemctl restart fail2ban

更多问题可以查看余老师在码云的问题库 余则霖 / ERPNext常见问题

九、常用命令

更新app

bench update --apps erpnext --pull --reset

生产环境修改app的更新源

# 查看APP更新源
bench remote-urls
# 设置APP更新源
bench remote-set-url https://github.com/frappe/frappe.git
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,如若转载,请注明出处。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
搜索