[PHP]将 Discuz! 由 7.2 升级至 X3.0 的步骤

主要步骤

Discuz! 没办法直接从 7.2 升级至 X3.0,中间需先升级至 X1.5 或 X2.0 才行! 主要的升级步骤如下:

  1. 将 UCenter 升级至 1.6.0
  2. 全新安装 Discuz! X2.0,安装时选“仅安装 Discuz! X (手工指定已经安装的 UCenter Server)”
  3. 转换 Discuz! 7.2 的数据库至 Discuz! X2.0
  4. 升级至 Discuz! X3.0

你需要准备的帐号、密码:

  1. Discuz! 7.2 的数据库名称、帐号、密码
  2. UCenter 创始人的密码
  3. Discuz! 7.2 的管理者帐号、密码

升级前请先至 Discuz! 的管理中心关闭站点。

下载档案

于下列网址下载 UCenter-v1.6、Discuz!X-v2.0、Discuz!X-v3.0:

将 UCenter 升级至 1.6.0

(UCenter 的设定档在 UCenter 安装目录的 /data/config.inc.php,如果不知道数据库的名称与帐号密码,可以到这里偷看一下)

1. 将 UCenter 1.6.0 压缩档解压缩之后,将 upload 目录下的所有档案上传至 Server,覆蓋旧档。

2. UCenter 1.5.0 的结构与 1.5.2 一样,故可直接套用 1.5.2 -> 1.6.0 的升级程式:

将 UCenter 1.6 原始档 utilities 目录中的 upgrade_1.5.2_1.6.0.php 上传到 UCenter 的目录,从浏览器存取 http://www.example.com/ucenter/upgrade_1.5.2_1.6.0.php,依指示进行数据库升级。

升级完成。
原短信息表 (uc_pms 表) 已经不再使用,建议您在测试短信息功能及资料没有问题之后,删除此表。
advanced/uc_client 中的档案覆蓋您的 uc_client 客户端。

3. 依上一步骤升级完成之后的说明,请自行自 Discuz! 的数据库删除 uc_pms 资料表,因为“短信息”都已转到 uc_pm_* 这些资料表了。

(如果你的 UCenter 版本为 1.0.0,则 utilities 目录里有 upgrade_1.0.0_1.5.0.php,可以让你用同样的方法将数据库由 1.0.0 先转为 1.5.0,之后再用 upgrade_1.5.2_1.6.0.php 转成 1.6.0)

全新安装 Discuz! X2.0

(Discuz! 7.2 的设定档为安装目录下的 config.inc.php,如果不知道数据库的名称与帐号密码,可以到这里偷看一下,或是你也可以安装到全新的数据库)

1. 因为是以全新的方式安装 Discuz! X2.0,你可以安装在新的目录。如果要安装在原本的目录,请将原本的目录 rename 成其它的名称份 (例如: old),因为待会我们还要用到旧的 Discuz! 7.2 的目录里的东西。

2. 将 Discuz! X2.0 压缩档解压缩之后,将 upload 目录下的所有档案上传至 Server。

3. 从浏览器存取 http://www.example.com/discuz/install/,依指示进行安装。安装时要选“仅安装 Discuz! X (手工指定已经安装的 UCenter Server)”,另外指定 UCenter 的 URL 及创始人密码。

转换 Discuz! 7.2 的数据库至 Discuz! X2.0

1. 将 Discuz! X2.0 中的 utilities 中的 convert 目录整个上传到 Discuz! 的安装目录。

2. 从浏览器存取 http://www.example.com/discuz/convert/,依指示进行数据库转换,选择由 Discuz! 7.2 转换至 Discuz! X2.0

升级完毕, 还要做的几件事
--------------------------
1. 编辑新论坛的 config/config_global.php 档案,设定好创始人。在 config/config_global.php 档案中,设定 $_config['admincp']['founder'] = '1'; (数字为创始人的 UID)
2. 直接访问新论坛的后台,访问地址:http://您的域名/admin.php
3. 使用创始人帐号登入,进入后台更新快取
4. 新系统增加了很多设定项目,包括使用者权限、组权限、论坛板块等等,您需要仔细的重新设定一次
5. 转移旧附件目录 (在转移之前,您的帖子将会无法找到任何附件)
a) 进入 old/attachments/ 目录
b) 将所有档案移动到 新论坛目录 /data/attachment/forum/ 目录中
6. 转移使用者头像 (独立安装 UCenter 的使用者不需要这个步骤)
a) 进入 old/uc_server/data/avatar/ 目录
b) 将所有档案移动到 新论坛目录 uc_server/data/avatar/
7. 删除 convert 程式,以免给您的论坛安装带来隐患
8. 待测试新论坛的所有功能均正常后,可以删除旧的程式备份和资料备份
9. 如果使用过分类资讯,需要重新整理一次分类资讯 (后台 → 更新统计 → 分类资讯整理)。
10. 使用创始人帐号,进入 UCenter 后台,修改应用,将论坛类型改为 DiscuzX。

3. 依上一步骤升级完成之后的说明做一下检查,最重要的是第 5 点,将旧的 Discuz! 目录下的 /attachments 里所有的档案移至新的 Discuz! 目录下的 /data/attachment/forum/。另外,因为我们是独立安装的 UCenter,也没有进行将 UCenter Home 1.6 转换至 Discuz! X2.0,故第 6 点可以忽略。

升级至 Discuz! X3.0

1. 将 Discuz! X3.0 压缩档解压缩之后,将 upload 目录下的所有档案上传至 Server,覆蓋原本 Discuz! X2.0 的档案。

2. 将 Discuz! X3.0 原始档 utilities 目录中的 update.php 上传到 Discuz! 的目录下的 install 目录,从浏览器存取 http://www.example.com/discuz/install/update.php,依指示进行程式与数据库升级。

3. 升级完成,将 install 目录整个删除。

4. 测试没有问题,将旧的 Discuz! 7.2 的目录删除,也自行将数据库中旧的 Discuz! 7.2 的资料表删除。

转址的问题

原本 Discuz! v7.2 的网址格式为:

  • http://www.example.com/discuz/viewthread.php?tid=673&extra=page%3D1
  • http://www.example.com/discuz/forumdisplay.php?fid=33

升级成 Discuz! X3.0 之后的网址分别变成:

  • http://www.example.com/discuz/forum.php?mod=viewthread&tid=673&extra=page%3D1
  • http://www.example.com/discuz/forum.php?mod=forumdisplay&fid=33

Discuz! 并不会自动帮我们转址,我们需自行处理!!

请在 Discuz! 的目录下新增 viewthread.phpredirect.php,内容:

<?php
    $Query = getenv("QUERY_STRING");
    header( "Location: ./forum.php?mod=viewthread&$Query" );
?>

新增 forumdisplay.php,内容:

<?php
    $Query = getenv("QUERY_STRING");
    header( "Location: ./forum.php?mod=forumdisplay&$Query" );
?>

参考网页

  1. Discuz!6.1/Discuz!7.0/Discuz!7.2/UCHome 2.0/SupeSite 7.5 到 Discuz!X2 升级/转换 - 帮助文档 - Discuz! 官方站 - Powered by Discuz!
    • Allen
    • 09/24. 2019 10:48上午
    Using Google Chrome Google Chrome 76.0.3809.132 on Windows Windows NT

    您好
    最近想升级Discuz7.2到较新的版本,您这篇应该有很大的帮助。但想先请教您:升级之前,要如何先把旧的内容备份呢?我很怕原有的资料不见了@@
    谢谢

    • Using Mozilla Firefox Mozilla Firefox 69.0 on Windows Windows NT

      主要备份数据库与所有档案。
      数据库可以用 phpmyadmin 汇出,若是 CPanel 本身就有直接备份数据库的功能,或是 mysqldump 指令,可参考:
      http://www.vixual.net/blog/archives/53
      档案也要全部下载回来。如果你的 Server 是 Linux,可以用 tar 把所有档案、资料夹,连同属性一起压缩备份。

  1. No trackbacks yet.

return top

%d 位部落客按了赞: