組態設定

### Movable Type 使用手冊：組態設定

« 目錄

- 組態設定

# 組態設定

Movable Type 的組態檔案叫做 mt.cfg ，位於妳的 Movable Type 主目錄（也就是妳的 .cgi 腳本所在之處）裡。以下列出的是妳在 mt.cfg 裡面可以使用的有效組態選項，以及每一個選項的描述和預設值。 這些描述本身也有在 mt.cfg 裡出現。

- CGIPath
- AdminCGIPath
  Movable Type 用 CGIPath 和 AdminCGIPath 設定來建立連回 Movable Type CGI 腳本的鏈結。舉例來說， `<$MTCGIPath$>` 這個 MT 標籤會被取代成 CGIPath 的值。 AdminCGIPath 會被用來建立連到 mt.cgi 的鏈結，而 CGIPath 則是被用來建立連到所有其他 CGI 腳本的鏈結。

  AdminCGIPath 並非必要的；如果妳沒有指定特別的值，它就會採用 CGIPath 的值。但是如果妳想要把妳的 mt.cgi 跟其他 CGI 腳本放在不同的目錄，或者是妳想要在使用 mt.cgi 的時候啟用 SSL 網址的話，也許妳就會用得到。

  預設值： 無

  使用範例：

      CGIPath http://www.妳的-站台.com/路徑/指到/mt/
      AdminCGIPath https://www.妳的-站台.com/路徑/指到/mt/

- DataSource
  如果妳正在指定使用 Berkeley DB 資料儲存選項時，這裡就是妳的 MT 資料庫檔案存放用的 db 目錄的檔案系統路徑。

  預設值： ./db

  使用範例

      DataSource ./db

- StaticWebPath
  如果妳把妳所有的 MT 檔案放在某個 cgi-bin 目錄裡，妳就會需要把靜態檔案（ docs 、 images 和 styles.css ）放在別的地方，讓網頁伺服器不會去試著執行他們。手冊裡的障礙排除小節裡有著更詳細的說明。

  預設值： 無

  使用範例

      StaticWebPath /路徑/指到/靜態-檔案/

- TemplatePath
  Movable Type 程式前端所會用到的模版所儲存的 tmpl 目錄的檔案系統路徑。

  預設值： ./tmpl

  使用範例：

      TemplatePath ./tmpl

- MailTransfer
  如果妳想要用 SMTP 來取代 sendmail 的話，就需要把這個 MailTransfer 設定成「 smtp 」（如後述）。 MailTransfer 可以用的值有： `smtp` 、 `sendmail` 和 `debug` （這樣會把郵件訊息都寫到標準錯誤輸出 STDERR 以茲除錯之用）。

  預設值： `sendmail`

  使用範例：

      MailTransfer smtp

- SendMailPath
  根據預設值， Movable Type 會在以下三個地方試著尋找 sendmail ： /usr/lib/sendmail 、 /usr/sbin/sendmail 和 /usr/ucblib/sendmail 。如果妳的 sendmail 放在不同的地方，妳可以加以調整這個 SendMailPath 組態設定。

  預設值： 以上任何一個

  使用範例：

      SendMailPath /usr/sbin/sendmail

- SMTPServer
  妳的 SMTP 伺服器的地址，用來跟 `MailTransfer smtp` 一起運作。

  預設值： `localhost`

  使用範例：

      SMTPServer smtp.妳的-站台.com

- NoTempFiles
  在預設的情況下，寫到輸出檔案（像是妳的某個索引頁面或彙整頁面）時， Movable Type 會試著先把資料寫到某個暫存檔去，然後再把這個暫存檔加以更名。當寫入資料的過程發生預期外的錯誤時，就可以避免妳站台上原本的檔案也遭到毀滅。如果妳不喜歡這樣的作用（因為妳可能得為此而將目錄的存取權限設得非常寬鬆）時，妳可以用 `NoTempFiles` 將這個功能關閉。

  預設值： `0`

  使用範例：

      NoTempFiles 1

- WeblogsPingURL
  傳送 XML-RPC 格式的 weblogs.com 通告所要用的網址。

  預設值： `http://rpc.weblogs.com/RPC2`

  使用範例：

      WeblogsPingURL http://其他.替用的.weblogs.com.伺服器/路徑/

- BlogsPingURL
  傳送 XML-RPC 格式的 blo.gs 通告所要用的網址。

  預設值： `http://ping.blo.gs/`

  使用範例：

      BlogsPingURL http://其他.替用的.blo.gs.伺服器/路徑/

- MTPingURL
  傳送 XML-RPC 格式的通告到 movabletype.org （如果妳有近期更新金鑰的話）所要用的網址。

  預設值： `http://www.movabletype.org/update/`

  使用範例：

      MTPingURL http://其他.替用的.movabletype.org.伺服器/路徑/

- CGIMaxUpload
  當妳透過 Movable Type 的上傳機制上傳檔案的時候，會有一個檔案尺寸的限制，以免妳的伺服記遭受 DoS 攻擊。

  預設值： `1000000` (1MB)

  使用範例：

      CGIMaxUpload 500000

- DBUmask
- HTMLUmask
- UploadUmask
- DirUmask
  建立檔案或目錄的時候， Movable Type 會用 umask 設定來控制檔案存取權限。如果妳在 cgiwrap 或 suexec 底下執行的話，就應該把所有的設定都設成 `0022` 。

  預設值： `0111` (DBUmask, HTMLUmask, UploadUmask), 0000 (DirUmask)

  使用範例：

      DBUmask 0022

- HTMLPerms
- UploadPerms
  除了用 umask 設定來控制權限之外，妳還可以用 HTMLPerms 以及 UploadPerms 設定來控制由系統所產生的檔案（不論是被產生還是被上傳的檔案）權限。實際上唯一會用到這個設定的機會是要處理系統所產生的檔案的可執行位元 -- 舉例來說，如果 MT 產生了某個 PHP 檔案，那麼就得要設定可執行位元後纔能夠加以執行。所以妳得要把 HTMLPerms 設定成 `0777` 。

  預設值： `0666`

  使用範例：

      HTMLPerms 0777

- TempDir
  上傳檔案的時候，如果 Movable Type 注意到你要上傳的檔案已經存在了，就會先詢問你，讓妳選擇是否要覆寫原始的檔案；因此 MT 需要先把已上傳的資料放到，某個暫存檔去。這個暫存檔存放的目錄則是由 TempDir 設定來指定。

  預設值： `/tmp`

  使用範例：

      TempDir /tmp/

- EntriesPerRebuild
  重建單篇彙整的時候， Movable Type 會把重建程序拆成好幾個階段，每一個階段都會重建 N 則文章項目。 N 的預設值是 40 ，所以預設 MT 每一次祇會重建 40 則文章項目，然後再重建下 40 則，依此類推。妳可以在這裡改變全域設定；例如說當妳的伺服器異常穩定的時候，妳也許會想要一次做完所有的事。

  預設值： `40`

  使用範例：

      EntriesPerRebuild 100

- ImportPath
  import 目錄的檔案系統路徑，用來匯入文章項目和評論之用 -- import 就是指那些要被匯入的檔案所存放的地方。

  預設值： ./import

  使用範例：

      ImportPath ./import

- UseNFSSafeLocking
  預設的情況下， Movable Type 在讀取及寫入時使用了 Perl 的 flock() 函式來鎖定妳的資料庫。然而對於那些用 NFS 掛上的目錄來說， Perl 的 flock() 卻可能會爛掉，除非 perl 可執行檔被以 fnctl(2) 建立，而非 flock(2) ；即便如此鎖定仍然不真的會一定成功。

  因此如果妳有在 NFS 系統上執行 Movable Type 的困擾，妳可以用 UseNFSSafeLocking 指令使用在 NFS 上可以正常運作的簡單檔案鎖定。

  預設值： `0` （不使用 NFS-safe 鎖定）

  使用範例：

      UseNFSSafeLocking 1

- NoLocking
  在某些 Windows 系統上，不論是 flock() 還是 link() 都沒辦法用，所以妳不但不能用預設的 flock() 鎖定，也沒辦法用 NFS-safe 鎖定。在這種情況下，妳可以開啟 NoLocking 選項。請注意妳應該祇在系統不支援其任何東西的情況下纔用 -- 這是最後的辦法，因為這樣子會增加資料庫損毀的可能性。然而，如果妳是系統的唯一一個使用者，那麼這對妳來說應該不是甚麼問題纔對。

  預設值： `0` （要鎖定）

  使用範例：

      NoLocking 1

- NoHTMLEntities
  在預設的情況下， Movable Type 會用 Perl 的 HTML::Entities 模組來將字符編碼成 HTML 項目，當然前提條件是妳有這個 Perl 模組可用。然而在某些情況下，即便妳有這個模組，像是妳用了別的字元編碼系統（波蘭文、俄文等等）時，妳就不會希望拿它來編碼；在這種情況下，妳應該把 NoHTMLEntities 的值設成 `1` 。

  預設值： `0` （可以的話，就使用 HTML::Entities ）

  使用範例：

      NoHTMLEntities 1

- NoCDATA
  在預設的情況下， Movable Type 會在把 XML 資料編碼的時候檢查裡面是否有 HTML 標籤或其他對 XML 不安全的資料；如果有的話，就會把妳的資料包進 CDATA 標籤裡。然而有些新聞彙總軟體會沒有辦法處理這種混著 CDATA 和其他資料的東西；所以如果妳遇到了這個問題的話，妳就可以用 NoCDATA 來把任何特殊字符編碼成實體。

  預設值： `0` （使用 CDATA ）

  使用範例：

      NoCDATA 1

- PingTimeout
  送出通告 -- 不論是引用通告或更新通告 時， Movable Type 都會設定一個通告的逾時值，纔不會花太多時間而把整個系統凍結起來。妳可以把預設的 `15` 秒用 PingTimeout 指令的值覆寫成別的時間長短。這個值會假設以秒來計算。

  預設值： `15`

  使用範例：

      PingTimeout 5

- PingInterface
  在預設的情況下，外送的引用通告及更新通告都會用執行 Movable Type 的伺服器上預設的網路界面卡 (NIC) 送到網路上。在某些情況下，也許會妳會需要或想要讓送出去的通告走不同的網路界面卡或網路連線。在這種情況下，妳可以輸入要發送通告的網路界面卡的 IP 地址。

  妳可以祇指定 IP 地址 (xxx.xxx.xxx.xxx) ，或者是 IP 地址及通訊埠號 (xxx.xxx.xxx.xxx:#) 。如果沒有特別指定通訊埠號的話，外送的通告將會採用下一個可用的通訊埠。如果指定了某個通訊埠的話，外送的通告就會從特定的 IP 地址和通訊埠送出去。當妳需要固定的來源 IP:通訊埠位址來通過防火牆的對外連線時，就會相當有用。

  請注意：除非真的需要，否則請不要指定通訊埠。如果妳所指定的通訊埠已被使用了，那麼外送的通告將會失敗，而且不會傳回任何錯誤訊息。

  預設值：無

  使用範例：

      PingInterface 192.168.10.5
      PingInterface 192.168.10.5:8080

- PingProxy
  在某些情況下，如果執行 Movable Type 的電腦位於防火牆後或者處於內部私人網路時，就得用代理伺服器纔能夠存取網際網路。妳可以在 PingProxy 設定代理伺服器的完整網址，然後 Movable Type 就會把所有的引用通告及更新通告由這個指定的代理伺服器送出。

  預設值：無

  使用範例：

      PingProxy http://192.168.10.5:3128

- PingNoProxy
  如果設定了前面提到的 PingProxy 的話， Movable Type 就會把所有的引用通告及更新通告都由那個指定的代理伺服器送出，除非通告目的地的網域被列在 PingNoProxy 裡。

  預設值： localhost, 127.0.0.1

  使用範例：

      PingNoProxy internal.lan, example.tld

- ImageDriver
  指定從已上傳的檔案建立縮圖所要用的影像工具組合。在預設的情況下會使用 ImageMagick library 和 Image::Magick 這個 Perl 模組；如果引的系統沒有這些東西，那麼妳就可以改用 NetPBM （當然也是在妳的系統上裝了這個工具之後纔能這麼做）這個設定可以用的值包括有 ImageMagick 和 NetPBM 。

  預設值： `ImageMagick`

  使用範例：

      ImageDriver NetPBM

- NetPBMPath
  在預設的情況下， Movable Type 會從這三個地方尋找 NetPBM 工具： /usr/local/netpbm/bin 、 /usr/local/bin 和 /usr/bin 。如果妳的 NetPBM 工具被安裝到不同的路徑去，那麼妳就可以來調整 NetPBMPath 組態設定。請注意這個路徑應該指到包含 NetPBM 可執行檔的目錄去；舉例來說，如果妳的 pnmscale 可執行檔位於 /home/foo/netpbm/bin/pnmscale ，那麼妳應該把 NetPBMPath 的值設成 /home/foo/netpbm/bin 。

  預設值： 上述三個路徑中任何一個

  使用範例：

      NetPBMPath /home/foo/netpbm/bin

- CommentScript
- TrackbackScript
- SearchScript
- XMLRPCScript
- ViewScript
  在預設的情況下， Movable Type 用於迴響的腳本叫做 mt-comments.cgi ，引用腳本叫做 mt-tb.cgi ，搜尋引擎腳本叫做 mt-search.cgi ， XML-RPC 伺服器腳本叫做 mt-xmlrpc.cgi ，而動態網誌檢視腳本則叫做 mt-view.cgi 。在某些情況下 -- 例如當妳在 mod_perl 底下執行 MT 、或者妳的伺服器要求妳的 Perl 腳本必須使用 .pl 副檔名時 -- 妳可能需要指定這些腳本採用不同的檔名。妳祇需要更改這些值，就可以設定在預設模版及 Movable Type 程式碼中到處被用到的腳本名稱。

  預設值： CommentScript 是 mt-comments.cgi ； TrackbackScript 是 mt-tb.cgi ； SearchScript 是 mt-search.cgi ； XMLRPCScript 是 mt-xmlrpc.cgi ； ViewScript 是 mt-view.cgi

  使用範例：

      CommentScript comments
      TrackbackScript trackback
      SearchScript search
      XMLRPCScript xmlrpc
      ViewScript weblog

- PublishCharset
  在預設的情況下，妳使用系統的所送出的 HTTP 檔頭語系編碼會依照妳的個人設定值裡的『偏好語言』而定。妳也可以設定 PublishCharset 來覆寫掉預設的語系編碼。不過請小心，因為這個設定值會覆寫掉系統上所有的網誌和所有的使用者設定。某個編碼的範例可能會是像 `UTF-8` 。

  預設值：根據偏好語言來編碼

  使用範例：

      PublishCharset UTF-8

- SafeMode
  『安全模式』會啟用關於安全跟其他東西的警告，同時也會關閉一些小功能（例如把模版連到 .cgi 和其他副檔名的檔案）。安全模式預設是開啟的；妳可以把 `SafeMode` 設成 `0` 來將之關閉。

  預設值： `1`

  使用範例：

      SafeMode 0

- GlobalSanitizeSpec
  在預設的情況下， Movable Type 會清理（『消毒』）任何妳的讀者送所出來的資料。這表示這將清除任何可能會危害妳網站安全的源碼（包括 HTML 或其他的）。消毒碼的作法則是祇允許某些 HTML 標籤 -- 至於其他的標籤和所有的程序指示（像是 PHP 等）則會被清掉。 GlobalSanitizeSpec 設定就是用來指定哪些標籤和屬性是可用的。

  預設值： `a href,b,br/,p,strong,em,ul,li,blockquote`

  使用範例：

      GlobalSanitizeSpec blockquote,div

- GenerateTrackBackRSS
  在預設的情況下， Movable Type 系統會對每一個引用物件 ─ 不論是文章引用物件還是類別引用物件 ─ 自動地產生並管理一個單獨的 RSS 檔案，列出該物件的所有引用通告。而這些通告則會被儲存在你的本機彙整路徑裡。如果妳想要關閉這個功能的話，可以把 GenerateTrackBackRSS 設成 `0` 。預設的設定是 `1` ，也就是會為每一個引用物件產生 RSS 檔案。

  預設值： `1`

  使用範例：

      GenerateTrackBackRSS 0

- SearchTemplatePath
  search_templates 目錄的檔案系統路徑，這裡存放著妳的搜尋模版。這個設定的預設值是 ./search_templates ，這表示 search_templates 目錄跟 mt.cgi 檔案會在同一個目錄裡；妳應該不需要改變這個設定，除非妳把妳的 search_templates 目錄給搬到別的地方去了。

  預設值： ./search_templates/

  使用範例：

      SearchTemplatePath /home/foo/我的/search_templates/

- DefaultTemplate
  預設的搜尋模版檔名，這個檔案應該位於妳的 search_templates 目錄裡（請見 SearchTemplatePath 指令）。如果妳定義了替換模版（見後述），妳就不需要使用這個預設模版了。

  預設值： default.tmpl

  使用範例：

      DefaultTemplate my-template.tmpl

- AltTemplate
  如果妳有多重網誌，或者是打算為妳的網站提供多種不同的版本時，妳應該也會想要用替換模版來提供不同版本的搜尋結果。更多細節請見使用手冊裡的替換模版小節。妳可以隨意定義任意數量的替換模版。

  根據預設值，下列的替換模版已經被設起來了：

      AltTemplate comments comments.tmpl

  這一列會設起一個用於『新評論搜尋』的替換模版。

  使用範例：

      AltTemplate work work.tmpl

- ExcludeBlogs
- IncludeBlogs
  若要在搜尋站台時僅包含某份網誌，妳可以使用 IncludeBlogs 和 ExcludeBlogs 設定。 IncludeBlogs 列出會被包含在搜尋內的網誌，而 ExcludeBlogs 則列出會被排除在搜尋外的網誌。別試著同時用 -- IncludeBlogs 會覆寫掉 ExcludeBlogs 的設定。預設值是搜尋所有的網誌。列出多份網誌時請以逗號隔開網誌 ID 。

  預設值： 無

  使用範例：

      ExcludeBlogs 1,3,4
      IncludeBlogs 2

- RegexSearch
- CaseSearch
  下列的設定會指定妳的站台上的預設搜尋參數；他們都可以被隱藏表單輸入或表單輸入給覆寫掉。妳很有可能會想要保留這些參數的預設值，然後允許使用者另行覆寫。 RegexSearch 是正規表示式搜尋，而 CaseSearch 則是大小寫敏感搜尋。

  預設值： 每一個設定都是 `0`

  使用範例：

      RegexSearch 1
      CaseSearch 1

- SearchCutoff
- CommentSearchCutoff
  正規搜尋時所要囊括的天數 (SearchCutoff) 或者是新評論搜尋時所要囊括的天數 (CommentSearchCutoff) 。

  預設的 SearchCutoff 是從妳的網誌的開頭搜尋（妳全部的文章項目），而預設的 CommentSearchCutoff 則是最後一個月的評論。

  使用範例：

      SearchCutoff 7
      CommentSearchCutoff 7

- MaxResults
  搜尋結果的最大筆數。如果是直接搜尋的話，搜尋結果的數目會是依各份網誌計算的 -- 舉例來說，如果妳把 MaxResults 設成 `5` ，那麼就表示搜尋結果的最大筆數是妳系統上每一份網誌 `5` 個結果。如果是新評論搜尋的話，這個數值就會是有新評論的最大文章項目數。

  預設值： 無上限（也就是盡可能傳回最多的結果）

  使用範例：

      MaxResults 5

- ResultDisplay
  搜尋結果的排序順序。 `ascend` 會按照時間的先後順序（最舊的文章放在最上面）把所有的文章項目列出； `descend` 則會用倒過來的時間先後順序（最新的文章放在最上面）把所有的文章項目列出。

  預設值： `descend`

  使用範例：

      ResultDisplay ascend

- SearchSortBy
  搜尋結果的排序欄位。如果妳指定了 `created_on` 的話，就會按照文章發表的日期來排序；如果妳指定了 `title` 的話，就會按照文章的標題來排序。妳也可以跟 ResultDisplay 合用，來指定要按照遞增或遞減的順序來排序。

  預設值： `created_on`

  使用範例：

      SearchSortBy title

- ExcerptWords
  當妳在搜尋結果裡使用 `<$MTEntryExcerpt$>` 標籤時，所要顯示的文摘字數。這個設定跟妳在網誌組態裡的『文摘字數』是分開的；這個設定祇會影響到妳的搜尋結果中的文摘。

  預設值： `40`

  使用範例：

      ExcerptWords 100

- SearchElement
  在預設的情況下，搜尋動作祇會搜尋妳的網誌裡的文章項目，而不會搜尋評論。評論搜尋會比文章項目搜尋還要慢，因為這得翻閱更多文字。妳可能會想要把這個設定保留成 `entries` ，然後讓讀者有需要的時候纔覆寫這項設定值。這項設定的值可以是 `entries` 、 `comments` 或 `both` 。

  預設值： `entries`

  使用範例：

      SearchElement both

- NoOverride
  在預設的情況下，搜尋引擎幾乎會允許搜尋模版覆寫掉上述所有的組態指令。可是這麼一來會有一個副作用，也就是使用者祇需要修改查詢字串裡的值，也可以覆寫掉上述的組態指令。確切地來說，如果妳有一些私人網誌的話，這將會造成相當的危險。現在妳可以用 NoOverride 後面加上以逗號分隔的清單，設定哪些網誌組態將不能由搜尋模版或使用者加以覆寫。換句話說，在這種情況下，祇有在 mt.cfg 裡的設定纔會被採用。

  預設值： none

  使用範例：

      NoOverride IncludeBlogs,ExcludeBlogs

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