Discuz! 7.2 升級 X3.4 的官方方式版本
教學作者:DC
教學論壇:https://omega.idv.tw/kdb120
第一步 會員中心升級
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 更新】 |
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】 |
繁体中文UTF8 http://download.comsenz.com/DiscuzX/2.0/Discuz_X2_TC_UTF8.zip |
[发布] Discuz! X3.4 正式版【2021-10-22】 |
繁体中文 UTF8 https://www.dismall.com/forum.php?mod=attachment&aid=MTA1fGI4ZGJlMjQ2fDE2MzU5OTI2NDd8MHw3Mw%3D%3D |
我們先使用 cPanel 後台的 檔案 -> 檔案管理器 | 我的結構是這樣 forum 是這次要升級的論壇 |
我們將 forum 的資料夾壓縮做備份。 | forum.zip 這個檔案就是 PHP 程式的備份。 裡面包含了這兩個比較大的資料內容。 forum/attachments ← 論壇附件 forum/uc_server/data/avatar ← 會員頭像 |
可以透過 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.zip,DB備份 211104_HHPzCIfi-1.sql.zip
說明 | 測試用論壇 | 舊論壇 |
資料庫 | omegaidv_storget_forum | 你論壇的資料庫名稱 |
使用者 | omegaidv_storget_web | 你論壇的資料庫使用者 |
密碼 | Test@20211104Date | 你論壇的資料庫密碼 |
如果我真的忘了 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 用戶管理中心 了 |
首先我們先確認 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 | |
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 |
保留我們剛剛更新完的 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 的模板,之後會解決先無視。 |
|
將 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 畫面的話別急 這是網路主機黑名單功能的問題如下 | |
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 名稱又不相同,這次升級是沿用舊的沒有裝新的。而且也沒有舊的論壇可以對照。
將 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