mtupgrade - 升級 Movable Type

### Movable Type 升級指引

- 名稱
- 概要
- 升級

- 預防措施
- 下載
- 升級檔案
- 執行升級腳本
- 刪除升級腳本
- 完成了！

- 注意事項

- 如果妳從比 1.3 還舊的版本升級
- 如果妳從比 1.4 還舊的版本升級
- 從 Berkeley DB 資料庫轉換成 SQL 資料庫

# 名稱

mtupgrade - 升級 Movable Type

# 概要

這份文件描述著如何升級到較新版本的 Movable Type 的程序。

# 升級

如果妳已經安裝過先前版本的 Movable Type (1.0-2.21) 的話，妳就不需要再進行一次完整安裝了。如果妳還沒有安裝過 Movable Type 的話，請參考安裝指引。

## 預防措施

進行任何升級動作前，把每一份網誌的所有文章項目及評論都匯出是個好主意。當升級過程中意外地發生甚麼錯誤時，妳會需要這些能被匯入的文章項目及評論的。

## 下載

下載升級套件檔案（而不是完整套件）。解開妳下載到的 .tar.gz 壓縮檔。

## 上傳檔案

1. 連接到妳的網頁伺服器
   開啟 FTP 連線到妳的網頁伺服器，並開啟妳安裝了 Movable Type 的目錄。

2. 上傳程式
   把壓縮檔裡所有的檔案和目錄上傳到妳的網頁伺服器，覆蓋掉所有舊版的檔案。

   請確定所有的檔案都以 ASCII 模式上傳，祇有影像圖片纔應該以 Binary 模式上傳。

   當妳上傳 extlib 目錄裡的檔案時，請小心別覆寫調任何妳初次安裝 Movable Type 時放進去的函式庫。

   請注意：如果妳曾經修改過 search_templates 目錄裡的搜尋模版，請不要從升級套件裡上傳 search_templates 目錄；否則這將會覆寫掉妳的搜尋模版。

   請注意：如果妳所要替換的檔案中，有些是被妳修改過了的，那麼妳應該要把這些檔案標記成已修改，並且對新版的檔案做一樣的修改。當然這祇有當妳的修改導致他們跟新版的 Movable Type 在某些情況下不相容纔需要這麼做。如果妳不確定妳是否得重新對新版的 Movable Type 檔案做一次這些更動的話，妳可以在 Support Forum 上提問。 （ http://www.movabletype.org/support/ ）。

   請注意：如果妳的 MT 程式存放在妳的 cgi-bin ，而妳的影像、文件和樣式表卻存放在 cgi-bin 之外的地方的話，請確定妳把 images 、 docs 和 styles.css 都上傳到正確的位置了。

3. 檢查權限
   確定每一個 CGI 腳本（所有這樣的檔案都以 .cgi 副檔名結尾）的權限都設定成 `755` 了。

   這表示持有人擁有讀取、寫入以及執行的權限，而團隊和其他人則祇有讀取和執行權限（但是沒有寫入權限）。

## 執行升級腳本

- 如果妳是從 2.6 版、 2.61 版、 2.62 版、 2.63 版、 2.64 版或 2.65 版升級的話
  妳不需要執行任何特別的升級腳本。

- 如果妳是從 2.5 版或 2.51 版升級，而且正在使用 MySQL 版本的 Movable Type 的話
  執行 mt-upgrade26.cgi。

- 如果妳是從 2.5 版或 2.51 版升級，而且並沒有使用 MySQL 的話
  妳不需要執行任何特別的升級腳本。

- 如果妳是從 2.2 版或 2.21 版升級，而且是用 MySQL 版本的 Movable Type 的話
  請先執行 mt-upgrade25.cgi ，然後再執行 mt-upgrade26.cgi 。

- 如果妳是從 2.2 或 2.21 版升級，而且沒有使用 MySQL 的話
  妳不需要執行任何特別的升級腳本。

- 如果妳是從 2.1 版或 2.11 版升級的話
  妳不需要執行任何特別的升級腳本。

- 如果妳是從 2.0 版升級的話
  請執行 mt-upgrade21.cgi 。

- 如果妳是從 1.0-1.4 中間任何版本升級的話
  請執行 mt-upgrade.cgi 。

## 刪除升級腳本

基於安全性因素，一旦妳升級完成後，妳就應該要馬上把下列檔案從 FTP 伺服器中刪除：

- mt-upgrade.cgi
- mt-upgrade21.cgi
- mt-upgrade25.cgi
- mt-upgrade26.cgi

## 完成了！

Movable Type 現在已經升級了，妳可以開始使用新的版本了。

現在請稍微閱讀一下 2.6 版指南，來看看怎麼使用新的功能。

# 注意事項

## 如果妳從比 1.3 還舊的版本升級

就跟 1.3 版一樣，現在妳可以在評論跟文章項目間分別控制換列和換段；換句話說，祇要妳高興，妳可以在評論中設定`轉換換列`，在文章項目中卻不要。請注意如果妳想要在 1.3 版裡面轉換換列和換段的話，妳得編輯每一份網誌的組態，並且核選`在評論中轉換換列和換段`核選框。

## 如果妳從比 1.4 還舊的版本升級

就跟 1.4 版一樣， Movable Type 需要至少 `0.8` 版的 File::Spec Perl 模組。如果妳沒有 `0.8` 版以上的話，就會在更新後看到這個錯誤：

    Can't locate object method "splitpath" via package "File::Spec"
    at lib/MT.pm line 209.

如果妳不確定妳的伺服器上的 File::Spec 版本夠不夠新，妳應該再執行 mt-check.cgi 一次（請參考下面的檢查所需及選用模組小節）；如果妳的伺服器需要較新版本的 File::Spec 的話，請遵照這份指引。

## 從 Berkeley DB 資料庫轉換成 SQL 資料庫

從 2.2 起， Movable Type 終於開始支援 SQL 資料庫 (MySQL) 了。到了 2.6 版之後，還多支援了 PostgreSQL 和 SQLite 。請注意這祇是選用的 -- Berkeley DB 資料儲存仍舊在支援之列。如果妳對於使用 SQL 資料庫一點興趣也沒有的話，請跳過這個小節。

如果妳已經把妳的 Movable Type 轉換成 SQL 資料庫支援模式的話，也請跳過這個小節。

要判斷妳的主機是否支援 SQL 資料庫以及連線所需的 Perl 函式庫的話，請執行 mt-check.cgi 並觀察任何下列模組的狀態： DBD::mysql 、 DBD::Pg 或 DBD::SQLite 。如果其中任何一個被安裝了，妳的伺服器也就能夠支援這個版本的 Movable Type 了。如果這些模組通通沒有被安裝，而妳又想要用 SQL 資料庫的話，恐怕妳就得聯絡一下妳的主機管理者了。

如果妳對於轉換資料有興趣的話，升級套件裡同時也包了一個能把資料從 Berkeley DB 檔案複製到 SQL 資料庫的腳本 (mt-db2sql.cgi) 。要把既有的 MT 轉換成使用 SQL 資料庫的話，請按照下列的步驟進行：

1. 編輯妳的 mt.cfg 檔案。
   在文字編輯器裡開啟妳的 mt.cfg ，並加入這幾列：

       ObjectDriver driver_name
       Database database_name
       DBUser database_user

   這裡的 driver_name 可以是下列之一的東西： DBI::mysql 、 DBI::postgres 或 DBI::sqlite ； database_name 則是妳想用來儲存資料的 SQL 資料庫名稱；而 database_user 則是用來連線到那個資料庫所需的使用者名稱（請注意，如果妳所用的是 SQLite 的話，就不需要提供使用者名稱和密碼了）。

   如果妳的 SQL 資料庫伺服器位於不同的主機上的話，妳也可以用 DBHost 來指定主機名稱：

       DBHost database_host

   請注意： 如果妳用的是 PostgreSQL 或 MySQL 的話，妳在 database_name 所指定的資料庫就一定要是已經存在了的 -- Movable Type 沒辦法自動生一個出來！

2. 設定妳的密碼。
   請注意：如果妳正在使用 SQLite 資料庫的話，就可以略過這個步驟。

   基於安全性的考量，妳的 SQL 資料庫密碼不能僅是單純地放在 mt.cfg 裡，而得放在一個叫做 mt-db-pass.cgi 的檔案裡。

   在文字編輯器裡開啟 mt-db-pass.cgi ，然後找到這一列：

       database_password

   請把 database_password 代換成用來連接到妳的 SQL 伺服器所需的密碼。

3. 執行 mt-db2sql.cgi
   開啟妳的網頁瀏覽器，並把網址指到妳站台上的 mt-db2sql.cgi ，舉例來說，如果妳的站台位於 http://www.your-site.com/ ，而妳所上傳的 Movable Type 檔案位於 /mt 目錄裡的化，妳就得輸入 http://www.your-site.com/mt/mt-db2sql.cgi 。

   mt-db2sql.cgi 這個 Perl 腳本會在妳的 SQL 資料庫裡建立起必要的架構，然後把妳的 Berkeley DB 檔案裡的資料扔進去。

4. 檢查成功與否
   一旦 mt-db2mysql.cgi 執行結束後，在妳的瀏覽器裡檢視那一頁的最底下，看看轉換是否成功了。如果是的話，這個訊息看起來會像這樣：

       Done copying data from Berkeley DB to SQL database! All went well.

   如果妳看到這樣的訊息，就做完了。 當妳登入到 Movable Type 並且使用時，妳已經開始在用 SQL 版本的系統了。

   如果有錯誤發生了，這個訊息

       An error occurred while loading data:

   就會被顯示出來，同時附上當時的錯誤訊息。如果錯誤發生了，請開啟妳的 mt.cfg 檔案，並且移除下列這一列：

       ObjectDriver driver_name

   同樣地，這裡的 driver_name 指的是妳在步驟 1. 所設定的驅動程式名稱。

   接著妳可以回來使用 Berkeley DB 版本的 Movable Type 。然後把妳收到的錯誤訊息貼到 Support Forums 吧。

Copyright © 2001-2003 Six Apart. All Rights Reserved.