论坛搬迁之五:升级 Discuz! 7.0 至 X3.4(完)
by admin
背景:
填坑远古论坛,打算将旧版系统(Discuz! 7.0.0)迁移至树莓派 ,用于备份和升级测试
目标:
将备份迁移后的 Discuz! 7.0.0 旧版论坛系统,升级为 X3.4
1. 准备工作
网查有效的升级步骤
- UCenter 1.5.0 -> UCenter 1.5.2
- UCenter 1.5.2 -> UCenter 1.6.0
- Discuz! 7.0 -> Discuz! X2.0
- Discuz! X2.0 -> Discuz! X3.2
- Discuz! X3.2 -> Discuz! X3.4
注意事项
- 每一步升级都要备份数据库和附件等文件,如有必要可备份整站
- 如提示升级锁定,删除 ./data/upgrade.lock 文件
- 升级后测试网站功能正常后,删除安装或升级相关文件以确保网站安全
2. UCenter 升级至 1.5.2
下载并解压 UCenter_1.5.2_SC_UTF8.zip
将 /upload 中的文件上传服务器,覆盖旧文件即可
( install 和 upgrade 目录无需上传)
3. UCenter 升级至 1.6.0
下载并解压 UCenter_1.6.0_SC_UTF8.zip
将 /upload 中的文件上传服务器,覆盖旧文件
上传 /utilities 中的 upgrade_1.5.2_1.6.0.php 到 UCenter 根目录
在浏览器运行升级程序
http://论坛地址/UCenter文件夹名/upgrade_1.5.2_1.6.0.php
点击“如果您已确认完成上面的步骤,请点这里升级”,升级会自动进行
按照提示,测试短消息功能及数据没有问题之后,删除无用表
补充:升级中如短消息表过大会出现 502 错误,执行以下 SQL 语句即可
alter table uc_pms add index mmd (msgfromid,msgtoid,dateline); (请注意表前缀)
升级后删除 upgrade_1.5.2_1.6.0.php,UCenter 后台更新缓存
4. 安装 Discuz! X2.0
下载并解压 Discuz_X2_SC_UTF8.zip
登陆论坛管理后台,“全局“-”站点信息“-”论坛关闭” 关闭站点
留下 UCenter 文件夹(原名 uc_server)
备份并删除(或移走)其他原站文件(为新装 X2.0)
将 /upload 中的文件上传服务器
修改文件权限为可读写
- /config
- /data 含子目录
在浏览器运行安装程序
http://论坛地址/install
由于我的旧版论坛修改了 UCenter 文件夹名,所以这里有几种办法通过验证:
- 上传 X2 版 /upload 中 UCenter 的文件夹 /uc_server 并修改权限
- 将旧版 UCenter 文件夹改回 /uc_server 名称
- 直接访问安装的下一页(我选择的非正常方法,略)
选择仅安装 Discuz! X
填入刚升级至 1.6.0 的 UCenter 路径,创始人密码等信息
新建数据库,完成全新安装
测试新装空论坛是否正常运行,删除 /install 文件夹
5. Discuz! 7.0 -> X2.0 数据库转换
由于未升级到 7.2,故不能使用 X2 安装包自带 /utilities/convert 转换
单独下载并解压 7.0 – X2 的转换文件
上传论坛根目录 /convert 中,设置其下文件权限为 777
浏览器访问运行转换程序
http://论坛地址/convert/
填入 7.0 和新装 X2 论坛的数据库信息进行转换
转换工作自动完成
升级完毕, 还要做的几件事:
(1)创始人设置
编辑 X2 新论坛 /config/config_global.php 文件,设定原论坛创始人 UID
$_config[‘admincp’][‘founder’] = ‘1’;
(2)移回附件
原 /attachments 内文件移至新论坛 /data/attachment/forum 中
(3)移回用户头像
原 /uc_server/data/avatar 内文件移至新论坛 /uc_server/data/avatar
(本次项目是独立安装 UCenter,所以不需要这个步骤)
(4)论坛管理后台
登陆新后台 http://论坛地址/admin.php 更新缓存
新系统增加了很多新功能,需要仔细重新设置一次
例如“用户”-“用户组”-“编辑”-“论坛相关”-“附件相关”中,我需将“允许查看图片”打开权限才可正常访问图片附件
(5)UCenter管理后台
进入 “UCenter”-“应用管理” 修改应用,将论坛类型改为 “DiscuzX”
如遇通信失败,记得检查 /config/config_ucenter.php 中的通信密钥、APPID 等是否一致
(6)删除 convert 程序文件夹
(7)自定义模板还原要根据具体情况再处理
(8)测试新论坛功能正常
6. Discuz! 升级至 X3.2
下载并解压 Discuz_X3.2_SC_UTF8.zip
保留
- /data
- /config
- /uc_client
- /uc_server(本项目中该文件夹已改名)
备份并删除(或移走)其他原站文件
将 /upload 中的文件上传服务器,覆盖旧的文件即可
上传 /utility 目录中的 update.php 到论坛 /install 目录,删除其中 index.php
浏览器访问并执行升级程序
http://论坛地址/install/update.php
转换过程中会建立很多新表
但由于PHP版本变更,TYPE需更改ENGINE才能自动成功执行
另外遇到一处执行错误,原因是数据库字段 COUNT 应小写
前往 phpMyAdmin 找到新建的该表,删除 COUNT 字段后按照提示执行命令即可
CREATE TABLE pre_common_failedip(
ip CHAR(7) NOT NULL DEFAULT ”,
lastupdate INT(10) UNSIGNED NOT NULL DEFAULT ‘0’,
COUNT TINYINT(1) UNSIGNED NOT NULL DEFAULT ‘0’,
PRIMARY KEY(ip, lastupdate),
KEY lastupdate(lastupdate)
) ENGINE = MYISAM
完成后更新缓存,测试功能正常后删除 /install 文件夹
(此处升级后发现会员个人页发帖数显示为0,后台“工具”-“更新统计”按需更新即可)
7. Discuz! 升级至 X3.4
下载并解压 Discuz_X3.4_SC_UTF8 安装包
升级方法和 X3.2 相同
完成升级回到树莓派服务器,将 PHP 版本切回 PHP 7.3
$ sudo a2dismod php5.6
$ sudo a2enmod php7.3
$ sudo service apache2 restart
测试论坛功能正常
至此论坛已完成升级测试,使用最新版系统在更安全的环境下运行(系列完)
评论