组态设定

### 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.