用户基于轻论坛系统二次开发后,轻论坛项目代码已和官网发布的不同,官网的升级包已不适合用户的项目升级,用户需要定制自己的升级包。轻论坛管理后台自带升级接口,只要上传指定结构的升级包,就能轻松将轻论坛升级到指定版本。本教程以轻论坛4.6版本升级到4.7版本为例。
升级包为zip文件,下面用bbs-4.6to4.7.zip为例讲解升级包结构
/4.6to4.7
|-- cms
| |-- backstage
| |-- common
| |-- WEB-INF
| |-- ......
| |-- ......
| `-- ......
|-- config.properties
`-- signature.pem
4.6to4.7:4.6为旧轻论坛版本;4.7为新旧轻论坛版本
cms:本目录下的文件为轻论坛的更新文件
config.properties:升级配置文件
signature.pem:轻论坛升级压缩包内所有文件的签名加密后的字符
1、在轻论坛项目\src\main\java\cms\web\action\upgrade\impl\ 下增加类Upgrade4_6to4_7.java(注意文件名对应的版本号)。类的方法run调用升级新版本要改动的数据结构转换方法,例如数据库字段值改变等。
2、打开轻论坛项目\src\main\webapp\WEB-INF\data\systemVersion.txt文件,将里面的版本号改为新的版本号。
3、在硬盘上新建空白的目录结构。
4、将项目源码打包导出war文件。
5、解压war文件,将有需要更新的文件夹或文件复制到cms目录里面,路径结构保持原状。
6、修改config.properties升级配置文件,按照固定的格式填写参数值。(注意本文件保存格式为UTF-8无BOM)
#旧版本
oldSystemVersion=4.6
#升级包版本
updatePackageVersion=update4.7
#新版本
newSystemVersion=4.7
#排序 格式: 4位年 + 2位月 + 2位日 + 2位时 + 2位分
sort=202006300000
#说明
explanation=1.增加修改问题答案功能。<br>2.增加修改问题答案回复功能。<br>3.增加只读模式设置。<br>4.前台手机端提问题标签选择优化。<br>5.前台手机端用户中心功能优化。<br>6.修复移动端动态不能分页错误。<br>7.管理后台升级模块增加RSA签名验证。<br>8.修复话题评论回复免审核判断错误。<br>9.富文本增加插入代码功能。<br>10.允许注册用户类型增加微信设置。<br>
#删除文件 路径分割符/ 路径为cms下面路径 不能以分割符开头。 delete_{编号}的编号不能重复,如果没有需要删除的文件可以将参数注释掉
delete_1=common/default/pc/js/syntaxhighlighter/
delete_2=backstage/syntaxhighlighter/
delete_3=backstage/codeMirror/util/
7、将压缩包的文件签名。本步骤非强制性,用户可以根据自身情况决定是否启用本功能
如果项目下\WEB-INF\classes\upgradePublicKey.pem文件存在,则自动启用签名验证功能,如果不需要验证签名,可以将upgradePublicKey.pem文件删除
使用第三方生成密钥工具,生成RSA密钥。RSA密钥长度:2048 密钥格式:PKCS#8 没有证书密码。(第三方生成密钥工具:OpenSSL工具、各种在线生成RSA私钥公钥网站)
在硬盘上新建文件upgradePrivateKey.pem,将生成的私钥保存在文件中。pem文件必须保存为“UTF-8无BOM” 格式。
在论坛目录\WEB-INF\classes\下,新建文件upgradePublicKey.pem,将生成的公钥保存在文件中。(upgradePublicKey.pem文件放在Tomcat中的论坛项目目录下,不是升级包下的目录)pem文件必须保存为“UTF-8无BOM” 格式。
将制作好的升级项目打包为zip文件。
用Eclipse或IDEA打开\src\test\java\utils\UpdatePackageSignature.java文件,修改合适的运行环境参数,执行main方法运行
运行完成后会生成bbs-4.6to4.7_2020-06-28-21-05_736169.zip文件,升级包制作完成。
bbs-4.6to4.7_2020-06-28-21-05_736169.zip文件已成功写入signature.pem签名验证文件。
升级包具体使用方法可以参考升级包使用教程
如果执行签名验证,升级时会有提示。