其實寫這篇文章的同時我很猶豫,因為它是我寫過最繁瑣的一篇文章,一共有 25 個步驟。
這篇文章寫給 TT 0.9x → TT 1.06 的人看,其他版本你就斟酌參考吧。
這次將 TT Blog 從 0.96 升級到 1.06,整整耗費了兩週的時間,( 6/11 → 6/25 ),升級之路困難到超乎想像,最後總算有好的結果。連自認 PHP 高手的我都被玩殘,所以對 PHP、MySQL、Server 不夠瞭解的人千萬不要輕易嚐試升級,TT 0.96 和 TT 1.06 幾乎是不同的 Blog 。堅持要升級的人你一定能體會到,根本就不是你在玩 Blog,而是 Blog 在玩你。
(P.S: 以下範例皆為單機版,因為 TT 的多用戶版作得並不夠好,不建議使用。)
(P.S: 以下 /tt/ 代表你的 tt 安裝資料夾,例如我的 TT 資料夾是 blog,就用 /blog/ 替換。)
(P.S: TT 是 TatterTools 的簡稱。)
這裡我假設你有虛擬主機(以下稱為 Server 端)
另外你在自己的電腦上架設的 Web Server(以下稱為 Local 端)
--Server
1. 在 Server 端安裝全新的 TT 1.06 (目前最新版本)
咦? 我要升級也,為什麼第一步叫我安裝全新的 TT 1.06? TT 1.0x 對 Server 的要求可以說是嚴苛不盡人情的,請先在你的 Server 端安裝一個全新的 TatterTools 1.06,能夠正確運作的話,才可以考慮升級,省得你白忙一場。
TT 1.0x 以上版本要求伺服器支援 Apache 的 rewrite 模組,同樣是 IIS 的 rewrite 模組並不會被接受;另外,TT 1.0x 會鎖住網域名稱,例如 www.raienet.com/blog 和 raienet.com/blog 是有分別的,升級到一半發現主機不支援你就哭死。
幸運的人多嗎? 你錯了,我就是那個哭死的其中一個,全都準備好了才發現主機不支援,搞到進退不得,頭都洗了... 總不能倒回去吧,最後花錢請主機商幫我整個網站移機,也因此我順利升級卻並不怎麼高興...
Server 端不能安裝 TT 1.06 的話,就忘掉升級的事吧,任何努力都不會有結果的。
--Local
2. 建立你的 Local PHP Server
剛剛提到 TT 1.0x 以上版本指名要 Apache 的 rewrite 模組,所以你的 Local 端要採用 Apache,這裡建議用 Appserv,它是一個快速建立 Apache Server 的好工具。
請想辦法讓你的 Local 端和 Server 端的 php 和 MySQL 版本一致,以避開不必要的問題。
3. 開啟 Apache 的 rewrite 模組
編輯 httpd.conf,Appserv 的位置在 C:\Appserv\apache\conf\httpd.conf
找到 #LoadModule rewrite_module modules/mod_rewrite.so
改成 LoadModule rewrite_module modules/mod_rewrite.so
找到 #AddModule mod_rewrite.c
改成 AddModule mod_rewrite.c
找到
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
改成
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
找到
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None
改成
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride All
重新啟動 Apache
4. 反覆練習備份並還原你的 MySQL 資料庫
請用 phpMyAdmin 備份 MySQL 資料庫,並確定可以順利還原。
5. 在你的 Local 端架起和 Server 端一模一樣的 TT 0.96
我們要將 TT 升級過程完全在 Local 端運作,讓你 Server 端的 TT 完全不會受到失敗影響,一有狀況就從 Server 端備份還原到 Local 端,因為升級會遭遇的狀況太多,直接由 Server 端升級無異於自我了斷。
6. 用 migrator.php 將 TT 0.96 資料庫轉為 XML
migrator.php 可以將 TT 0.9x 的資料庫轉成 TT 1.02 資料庫,是升級的重要工具。
請將 migrator.php copy 到你 TT 0.96 目錄下的 admin 資料夾,並由 Local 端開啟 migrator.php,你可以看到一個韓文的網頁,點選此頁最下方的連結,會產生一個 XML 檔,這就是 TT 1.02 的資料庫了!
7. 下載 TT 1.02
為什麼需要 TT 1.02? 因為在步驟 6. 得到的 XML 檔是 TT 1.02 的資料庫,所以 TT 1.02 僅僅是你升級的跳板而已。繁體中文版的 TT 1.02 你可以在大陸 TatterTools 中文官方論壇找到。
8. 安裝全新的 TT 1.02
請安裝全新的 TT 1.02 並確定它能正確運作。
安裝完成之後開啟 TT 1.02 目錄下的 config.php
將 $service['domain'] = 'localhost'; 改成 $service['domain'] = '127.0.0.1';
若你的本機後台是 http://localhost/tt/owner
以後要用 http://127.0.0.1/tt/owner 登入後台,這是 TT 1.0x 後台不能登入的解決方法。
另一個 $database['server'] = 'localhost'; 是正確的,不要去改它。
以後請習慣 http://localhost → http://127.0.0.1 這樣的用法。
9. 將你的 Local 端允許上傳檔案大小增加到 8M
開啟 C:\WINDOWS\php.ini
搜尋 upload_max_filesize
將 2M 改成 8M(TT1.1x版之後設定檔案上傳上限為8M,調更高也沒用)
(要看你在步驟 6. 獲得的 XML 檔案有多大,如果你的 XML 檔大小低於 2M 可以省略此步驟)
10. 將 XML 轉變為 MySQL 資料庫
在你的 TT 1.02 後台用資料回復功能將 XML 的資料庫轉回 MySQL 資料庫
它有一個上傳檔案大小的門檻,在剛剛的步驟已經解決了。
還原時你可以發現,附件也跟著還原了,XML 檔如此大的原因就在於附件也包含在其中。
11. 使用 TT 1.02 的 checkup 功能檢查文章
它會將你的 TT 0.96 文章調整以適於 TT 1.02 版本。
在你本機上的 TT 1.02 目錄下執行 checkup,例如:http://127.0.0.1/tt/checkup
雖然目錄上看不到,但是執行後有結果出現。
12. TT 1.02 安裝完成
請確認你的 TT 1.02 可以在 Local 端正常運作
現在你的 Server 端有 TT 0.96,Local 端有 TT 1.02
13. 下載 TT 1.06
請到 TatterTools 官網下載英文版的 TT 1.06。
14. 備份 TT 1.02
請作備份,因為 TT 1.02 只有 Local 端才有,MySQL 資料庫也要作備份,以供還原。
15. 將 TT 1.06 直接丟進 TT 1.02 的目錄裡
聽說 TT 1.0x 之後升級都是用這種方法。資料覆蓋 → checkup
16. 使用 TT1.06 的 checkup 功能檢查文章
它會將你的 TT 1.02 文章調整以適於 TT 1.06 版本。
在你本機上的 TT 1.06 目錄下執行 checkup,例如:http://127.0.0.1/tt/checkup
17. TT 1.06 安裝完成
請確認你的 TT 1.06 可以在 Local 端正常運作
現在你要思考的,是將本機的資料庫複製到 Server 端的問題。
因為你在步驟 1. 已經確認主機支援 TT 1.06,所以理論上,接下來的步驟你可以順利完成。
--Server
18. 重新安裝 TT 1.06
我知道你在步驟 1. 已經在 Server 端裝好 TT 1.06了,所以你可以自行決定是否有此必要,因為 TT 1.0x 會鎖住網域名稱,若你要取代原有的 TT 0.96,一定要將它幹掉。也請別忘了備份...
例如
你的 TT 0.96 位置為 http://(url)/tt
你的 TT 1.06 位置為 http://(url)/tt2
直接將 tt2 更名為 tt,會變成找不到網頁。
這種情形下,要重新安裝 TT 1.06 在 http://(url)/tt 。當然,不是每個人都會有此需要。
19. 將你的附件上傳到主機
現在開始打理 Server 端的 TT 1.06
TT 1.06 附件的位置在 tt/attach/1 整個目錄對應 copy 到 Server 端 TT 1.06 ,上傳完畢後,/attach 和 /1 的權限都要設成 777,不然會另外出現圖片不能上傳的 Bug 喔。
--Local
20. 備份 Local 端的 TT 1.06 資料庫
在本機上的 tt 後台用資料備份工具,選擇不要包含附件,因為剛剛我們已經將附件上傳到 Server 端了。
--Server
21. 在 Server 端還原 TT 1.06 資料庫
在 Server 端的 tt 後台用資料還原工具,還原資料庫。
老話一句,請別忘了先用 phpMyAdmin 備份,太相信 TT 的還原工具也是會慘死。
22. TT 1.06 安裝完成
請確認你的 TT 1.06 可以在 Server 端正常運作。
升級完成!但是事後的 Bug 修復也算是升級工作,所以請別高興得太早...
--Other
23. 關於文章的 Bug
有使用 [code] 這個標籤的文章,[code]會自動出現,需要手動將它們一一移除。
24. 關於 Dotum 字型的 Bug
有使用 \ 的文章會自動變成 W,請將 Dotum 字型換為 Arial 或 Verdana
25. 關於 EAS plug-in
TT 1.0x 的 EAS plug-in 是阻擋垃圾留言、引用的好工具。
話說回來,想升級的人看完這篇文章,可能臉都綠了。雖然我已經把重點都講了,還是勸你們先作好長期抗戰的準備吧。
也許仍有其他遺漏的重點,畢竟兩週的升級時間實在太長了,失憶在所難免... Orz
相關連結:LINWEN@Blog,Tattertools升級!1.0.6.1版本
| 2006/06/25 19:35 |
Trackback Address :: http://blog.raienet.com/trackback/232
