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.