Discuz! 7.2 升級 X3.4 的官方方式版本

教學作者:DC

教學論壇:https://omega.idv.tw/kdb120

  1. 說明升級步驟與事前準備好必要檔案
  2. 備份資料
  1. PHP 程式部分
  2. 資料庫部分   (對照的網址)
  3. 資料庫帳號密碼對照表
  4. 延伸教學,重建UCenter創始人密碼
  1. 開始版本升級
  1. 確認版本
  2. UCenter 升級至 1.6.0   (原站升級)
  3. 安裝 Discuz! X2.0   (原站升級)
  4. Discuz! 7.2 數據轉換至 Discuz! X2.0   (原站升級)
  5. 從 Discuz! X2.0 升級到 Discuz_X3.4   (原站升級)

I.說明升級步驟與事前準備好必要檔案

第一步 會員中心升級

UCenter 1.5.0,1.5.1,1.5.2 是 php 程式內容優化與修正,DB結構沒有變更都可以直接升級到 1.6.0。

1.5.x -> 1.6.0 主要是 短消息 結構優化如下,拆分是為了減少 pms 表單的壓力,分散儲存可以加快讀取的速度。

1.5.x 舊表格

cdb_uc_pms

1.6.0 新表格

cdb_uc_pm_indexes

cdb_uc_pm_lists

cdb_uc_pm_members

cdb_uc_pm_messages_0 ~ cdb_uc_pm_messages_9

第二步 論壇資料升級

Discuz 7.2 資料匯入到 只安裝 Discuz X2.0 的版本,UCenter 沿用舊的不重新安裝,再升級到 Discuz X3.4

所有需要的資料與版本都可以在官方舊論壇找到,只是下載的部分直接點連結是無效的,必須自己貼到瀏覽器下載也沒有 list 目錄的功能。

主要是因為檔案都放在 CDN 上了,可能有防盜連與 CDN 只要沒有命中就會跳錯誤訊息。

第三步 備齊必要檔案

包含舊版本重新安裝的 php 程式都已經打包在壓縮檔 efupdate.zip 裡不用去下載,這裡只是紀錄檔案來源。

1

UCenter 1.6.0

2

Discuz! X2 3

3

Discuz! X3.4

Comsenz 核心产品 UCenter 1.6.0 发布【2011.05.05 更新】

https://www.discuz.net/thread-2141609-1-1.html

UCenter 1.6.0 繁体中文 UTF8

http://download.comsenz.com/UCenter/1.6.0/UCenter_1.6.0_TC_UTF8.zip

全新安装教程:(1.5.0 ,1.5.1,1.6.0 通用)

http://faq.comsenz.com/viewnews-449

升级教程

1. UCenter 1.0.0到UCenter 152

首先参看以下教程

http://faq.comsenz.com/viewnews-452升级到完毕后, 在按照下面提示升级值 1.6.0

2. UCenter 1.5.2 以上版本的升级

图文教程

http://www.discuz.net/thread-2141455-1-1.html

1. 下载程序包,将upload当中的文件上传到服务器,覆盖旧的文件。

注意: upload 目录中的 install 不需要上传,如果已经上传,请使用ftp删除他2. 上传 utilities 目录中的 upgrade_1.5.2_1.6.0.php 到 ucenter 根目录

3. 访问 http://你的ucenter域名/upgrade_1.5.2_1.6.0.php

4. 参照提示, 完成升级

5. 使用创始人身份进入ucenter后台, 更新程序和模版缓存

更新日志

UCenter 1.6.0 Realease 20110501

1.调整短消息数据结构, 支持大容量短消息存储

2.增加群聊接口

3.修正 1.5.2 中存在的问题

4.调整UTF-8编码对用户名字段的长度判断, 支持 (15字节, 7个汉字)

5.去除对低版本的支持, 不支持 1.5 以下client客户端

[发布] Comsenz 核心产品 Discuz! X2 正式版【更新:2013-02-01】

https://www.discuz.net/thread-2168918-1-2.html

繁体中文UTF8

http://download.comsenz.com/DiscuzX/2.0/Discuz_X2_TC_UTF8.zip

[发布] Discuz! X3.4 正式版【2021-10-22】

https://www.discuz.net/thread-3847642-1-1.html

繁体中文 UTF8

https://www.dismall.com/forum.php?mod=attachment&aid=MTA1fGI4ZGJlMjQ2fDE2MzU5OTI2NDd8MHw3Mw%3D%3D

II.備份資料

  1. PHP 程式部分

我們先使用 cPanel 後台的 檔案 -> 檔案管理器

我的結構是這樣 forum 是這次要升級的論壇

我們將 forum 的資料夾壓縮做備份。

forum.zip 這個檔案就是 PHP 程式的備份。

裡面包含了這兩個比較大的資料內容。

forum/attachments                   ←  論壇附件

forum/uc_server/data/avatar    ←  會員頭像

  1. 資料庫部分

可以透過 phpMyAdmin 或是透過論壇本身的程式來備份,我們統一透過論壇本身的程式來備份與還原

因為接下來要透過網址來操作所以網址的對照表如下

DC 測試的網址

對照的網址

舊論壇

https://d.omega.idv.tw/forum

https://你的網域/forum

我們先到 Discuz! 管理中心

https://d.omega.idv.tw/forum/admincp.php

全局 -> 站點信息 -> 論壇關閉 -> 是

記得按下 提交

先關閉論壇確保不會有新的數據再寫入後

開始 DB 備份作業

再來選擇 工具 -> 數據庫 -> 備份

數據備份類型

預設的 論壇全部數據 即可

按下 提交

會開始分卷備份,一卷預設是 2MB 論壇越大的話分卷會越多

當出現 恭喜您,全部 xx 個備份文件成功創建,備份完成。

整個論壇包含 UCenter 就都備份完畢囉~

有幾個備份文件依論壇大小而定

DB 備份檔案放置在

/d.omega.idv.tw/forum/forumdata/backup_rSmSCq

全部 74 個備份文件有點大,我們將 74 個檔案全選壓成一個 zip 檔比較小一點。

所以 211104_HHPzCIfi-1.sql.zip 就是我們的 DB 備份

備份資料的環節就結束囉~共兩個壓縮檔案,程式備份 forum.zipDB備份 211104_HHPzCIfi-1.sql.zip

C.資料庫帳號密碼對照表

說明

測試用論壇

舊論壇

資料庫

omegaidv_storget_forum

你論壇的資料庫名稱

使用者

omegaidv_storget_web

你論壇的資料庫使用者

密碼

Test@20211104Date

你論壇的資料庫密碼

  1. 延伸教學,重建UCenter創始人密碼

如果我真的忘了 UCenter 的創始人密碼該如何重建?

discuz 密碼為 salt 加密也就是加鹽加密,md5 加上混淆值

我們找到 d.omega.idv.tw/forum/uc_server/data/config.inc.php

我們需要裡面這兩個值

define('UC_FOUNDERPW', 'f1c8619a1ee39f95bab2f65a1a647313');

define('UC_FOUNDERSALT', 'w4ja94');

我們建立新檔案

新檔案名稱:newpw.php

newpw.php 填入以下的資料其中 $password 為你想設定的密碼

<?php

$password = 'P@ssOmega!' ;

$salt = 'w4ja94';

$pw = md5(md5($password).$salt);  

echo $pw;

?>

瀏覽器開啟

https://d.omega.idv.tw/forum/uc_server/data/newpw.php

會得到一串密碼 8fe8ffc82e5aed35e8017e8c646b70eb

我們編輯 /d.omega.idv.tw/forum/uc_server/data/config.inc.php

這個值

define('UC_FOUNDERPW', 'f1c8619a1ee39f95bab2f65a1a647313');

改為

define('UC_FOUNDERPW', '8fe8ffc82e5aed35e8017e8c646b70eb');

連到 https://d.omega.idv.tw/forum/uc_server/

創始人密碼輸入 P@ssOmega!

按下 登錄

就能進入 UCenter 用戶管理中心 了

  1. 開始版本升級

  1. 確認版本

首先我們先確認 Discuz 與 UCenter 版本號

UCenter 用戶管理中心

https://d.omega.idv.tw/forum/uc_server/

adminid=1 即是管理員的帳號

所以我就在UCenter後台把 admin 密碼改成 admin@dc

進入 Discuz! 管理中心

https://d.omega.idv.tw/forum/admincp.php

帳號 admin

密碼 admin@dc

登入後可以看到目前的版本

說明

 forum 論壇

你的論壇

UCenter 用戶管理中心 創始人密碼

admin@dc

請自己對照

UCenter 版本

UCenter 1.5.1 Release 20091001

Discuz! 管理中心帳號

admin

請自己對照

Discuz! 管理中心密碼

admin@dc

請自己對照

Discuz! 版本

Discuz! 7.2 Release 20101020

UCenter 客戶端版本

UCenter 1.5.1 Release 20091001

  1. UCenter 升級至 1.6.0

UCenter 的設定檔 /d.omega.idv.tw/forum/uc_server/data/config.inc.php

記得先保存好 將 efupdate\UCenter_1.6.0_TC_UTF8\upload

內的檔案上傳覆蓋 /d.omega.idv.tw/forum/uc_server 內的檔案

UCenter 1.5.0 的結構與 1.5.2 一樣,故可直接套用 1.5.2 -> 1.6.0 的升級程式

efupdate\UCenter_1.6.0_TC_UTF8\utilities\upgrade_1.5.2_1.6.0.php

上傳到

/d.omega.idv.tw/forum/uc_server/

連線 https://d.omega.idv.tw/forum/uc_server/upgrade_1.5.2_1.6.0.php

/d.omega.idv.tw/forum/uc_server/data/upgrade.lock 的狀態

upgrade.lock 未刪除 

upgrade.lock 已刪除

請點 如果您已確認完成上面的步驟,請點這裡升級 的連結

如下面抓圖會開始處理短消息

升級完成。

原短消息表(cdb_uc_pms表)已經不再使用,建議您在測試短消息功能及數據沒有問題之後,刪除此表。

將advanced/uc_client中的文件覆蓋您的uc_client客戶端。

舊的 cdb_uc_pms 拆成圖中沒圈選的表單。

將advanced/uc_client中的文件覆蓋您的uc_client客戶端。

efupdate\UCenter_1.6.0_TC_UTF8\advanced\uc_client

覆蓋

/d.omega.idv.tw/forum/uc_client

  1. 安裝 Discuz! X2.0

保留我們剛剛更新完的 uc_client 與 uc_server 這兩個資料夾其他通通搬進 old 資料夾內

efupdate\Discuz_X2_TC_UTF8\upload

內容上傳到

/d.omega.idv.tw/forum

我是壓縮後上傳在整包解壓比較快

解壓縮覆蓋

安裝網址

https://d.omega.idv.tw/forum/install

請按下我同意

檢查安裝環境 請按 下一步

選擇

僅安裝 Discuz! X (手工指定已經安裝的 UCenter Server)

UCenter 的 URL:請填

http://d.omega.idv.tw/forum/uc_server

UCenter 創始人密碼:admin@dc

按下 下一步

如果確定填的 URL 是正確的

但是不管怎麼填都連不上 UCenter

且 UCenter 用戶管理中心 通信情況 都是通信失敗

請查看網站根目錄是否設定了

.htaccess

限制來源 IP

<Limit GET HEAD POST>

    order allow,deny

    allow from xxx.xxx.xxx.xxx

    deny from all

</Limit>

不管你 allow form 怎麼開都會是通信失敗

請暫時將紅色這一整段刪除

<Limit GET HEAD POST>

xxxxxxxxxx

</Limit>

有需要的話之後在加回來~

刪除後就能正常安裝,通信成功

要填的資訊參考

資料庫帳號密碼對照表

測試用論壇

omegaidv_storget_forum

omegaidv_storget_web

Test@20211104Date

管理員密碼填:admin@dc

按下 下一步

不明原因會卡在這裡

https://d.omega.idv.tw/forum/install/index.php?method=ext_info

我們自己回到首頁

http://d.omega.idv.tw/forum

如果像右邊沒有模板的樣子

請登入到後台

http://d.omega.idv.tw/forum/uc_server/admin.php

更新緩存 -> 全部勾選 -> 提交

就能恢復有模板的樣子囉

後來發現是 https 無法調用 http 的模板,之後會解決先無視。

         

  1. Discuz! 7.2 數據轉換至 Discuz! X2.0

efupdate\Discuz_X2_TC_UTF8\utility

裡面的資料夾 convert 整個複製到

/d.omega.idv.tw/forum/

底下

如右

/d.omega.idv.tw/forum/

會多出 convert 這一個資料夾

瀏覽器開啟

http://d.omega.idv.tw/forum/convert/

會有如右的轉換畫面

我們按下

Discuz! 7.2 -> Discuz! X2.0

的修改按鈕

按下修改連結

http://d.omega.idv.tw/forum/convert/index.php?a=setting&source=d7.2_x2.0

如果出現右邊 403 畫面的話別急

這是網路主機黑名單功能的問題如下

https://omega.idv.tw/kdb120/viewthread.php?threadid=4777

d7.2_x2.0 被列入黑名單,只要改名成 dz7.2_x2.0 即可

/d.omega.idv.tw/forum/convert/source/d7.2_x2.0

改成

/d.omega.idv.tw/forum/convert/source/dz7.2_x2.0

d7.2_x2.0 目錄修改為 dz7.2_x2.0

這一頁重新整理一下

http://d.omega.idv.tw/forum/convert/

可以看到連結變成 dz7.2_x2.0 了

點一下修改

要填的資訊參考

資料庫帳號密碼對照表

因為是原站升級填同一組

測試用論壇

omegaidv_storget_forum

omegaidv_storget_web

Test@20211104Date

持久連接設 0

按下 保存服務器設置

第一次出現空的不用擔心

重新整理一下頁面

預設全選

按下 開始轉換

因為有些欄位沒有會出現錯誤,目前知道是 member

最後的說明 I. II. 我們都做完了~剩 III 這一個

====================================

Discuz! 7.2 升級至 Discuz! X2.0 說明

====================================

I 升級前的準備

---------------

1. 建立程序備份目錄,例如 old/

2. 將原論壇所有程序移動到 old/ 目錄中

3. 上傳 Discuz! X 產品的 upload/ 目錄中的程序到論壇目錄

4. 執行安裝程序 /install

   安裝的時候請指定原 Discuz! 7.2 掛接的UCenter Server地址(如果 UCenter版本低於1.6.0,需先升級 UCenter )

II 升級論壇數據

---------------

1. 安裝完畢,測試論壇可以正常運行以後,上傳 Discuz! X Convert 程序到論壇更目錄

2. 執行 /convert

3. 選擇相應的程序版本,開始轉換

4. 轉換過程中不可擅自中斷,直到程序自動執行完畢。

5. 轉換過程可能需要較長時間,且消耗較多服務器資源,您應當選擇服務器空閒的時候執行

III 升級完畢, 還要做的幾件事

--------------------------

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。

我們回 http://d.omega.idv.tw/forum/ 卻發現會員只有一個?

上面標黃的都做完後到後台 http://d.omega.idv.tw/forum/admin.php 工具 -> 更新緩存 全打勾 -> 確定 就都回來啦~

這樣轉換是很快,但是舊的 Table cdb_ 開頭 與 新的 Table pre_ 開頭混在同一個 DB 資料量加倍,且舊的 UCenter 與新安裝的 UCenter Table 名稱又不相同,這次升級是沿用舊的沒有裝新的。而且也沒有舊的論壇可以對照。

  1. 從 Discuz! X2.0 升級到 Discuz_X3.4

將 efupdate\Discuz_X3.4_TC_UTF8_20211022\upload

全部上傳到

/d.omega.idv.tw/forum

將 efupdate\Discuz_X3.4_TC_UTF8_20211022\utility\update.php

上傳到

/d.omega.idv.tw/forum/install

連線 http://d.omega.idv.tw/forum/install/update.php

回到 http://d.omega.idv.tw/forum/ 就是升級完成的論壇囉~

轉址的問題

原本 Discuz! v7.2 的網址格式為:

http://www.example.com/forum/viewthread.php?tid=2095&extra=page%3D1

http://www.example.com/forum/forumdisplay.php?fid=33

昇級成 Discuz! X3.0 之後的網址分別變成:

http://www.example.com/forum/forum.php?mod=viewthread&tid=2095&extra=page%3D1

http://www.example.com/forum/forum.php?mod=forumdisplay&fid=33

Discuz! 並不會自動幫我們轉址,我們需自行處理!!

請在 Discuz! 的目錄下新增 viewthread.php 與 redirect.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" );

?>

原本文章內的舊連結

http://d.omega.idv.tw/forum/viewthread.php?tid=2095&extra=page%3D1

連線會出現

404

Not Found

建立完畢後再連一次就會自動跳轉到正確的位置了~

http://d.omega.idv.tw/forum/forum.php?mod=viewthread&tid=2095&extra=page%3D1