[PHP]將 Discuz! 由 7.2 昇級至 X3.0 的步驟
主要步驟
Discuz! 沒辦法直接從 7.2 昇級至 X3.0,中間需先昇級至 X1.5 或 X2.0 才行! 主要的昇級步驟如下:
- 將 UCenter 昇級至 1.6.0
- 全新安裝 Discuz! X2.0,安裝時選「僅安裝 Discuz! X (手工指定已經安裝的 UCenter Server)」
- 轉換 Discuz! 7.2 的資料庫至 Discuz! X2.0
- 昇級至 Discuz! X3.0
你需要準備的帳號、密碼:
- Discuz! 7.2 的資料庫名稱、帳號、密碼
- UCenter 創始人的密碼
- 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.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" ); ?>
您好
最近想升級Discuz7.2到較新的版本,您這篇應該有很大的幫助。但想先請教您:升級之前,要如何先把舊的內容備份呢?我很怕原有的資料不見了@@
謝謝
主要備份資料庫與所有檔案。
資料庫可以用 phpmyadmin 匯出,若是 CPanel 本身就有直接備份資料庫的功能,或是 mysqldump 指令,可參考:
http://www.vixual.net/blog/archives/53
檔案也要全部下載回來。如果你的 Server 是 Linux,可以用 tar 把所有檔案、資料夾,連同屬性一起壓縮備份。