Movable Type 4.26 から 4.261 へのアップグレード(データベース更新あり)
当ブログを、Movable Type 4.26 から 4.261 へアップグレードしました。

4.261 では「Movable Type 4.26 のスケジュールタスク実行時にエラーが発生する現象について」が解消されていますが、4.26 でスキーマバージョンが変更とならなかった(=データベースのスキーマが変更されなかった)バグも修正されています。ということで、すでに 4.26 にアップグレードした人は、4.261 へのアップグレードを推奨します。
その他、ブログ記事編集画面の表示オプションのtypo も修正されています。
以下、「Movable Type 4.25 から 4.26 へのアップグレード」と異なる手順のみ掲載します。
9.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードが開始画面になるので「アップグレード開始」をクリックします。

サインインします。

データベースのアップグレードが実行されます。終了したら「Movable Type に戻る」をクリックします。

ブログ管理画面にアクセスできれば完了です。
Movable Type 4.25 から 4.26 へのアップグレード
当ブログを、Movable Type 4.25 から 4.26 へアップグレードしました。ということで、アップグレード手順を紹介します。4.2x から 4.26 のアップグレードでも参考になると思います。

4.26 にアップグレードした後、検索速度が若干向上しています。
アップグレードは個人の責任で行ってください。正常にアップグレードできなかった場合、申し訳ありませんが当ブログに質問を頂いても解決するお手伝いをすることはできません。作業前には1項に示すバックアップ作業などを行い、ブログのバックアップを行ってください。
1.プラグインディレクトリについて
アップグレードは、新しいアプリケーションディレクトリを作成する方法を紹介していますが、この方法では、プラグインディレクトリにインストールしたプラグインを新しいアプリケーションディレクトリのpluginsディレクトリにコピーする手間が増えます。
以前も紹介しましたが、当ブログでは、自分でインストールしたプラグインを標準のディレクトリ配下に置くのをやめ、別のところに配置しました。そのおかげで、本エントリーで示すプラグインファイルのコピー作業は(ほぼ)なくなり、かなり楽になりました。
デフォルトでバンドルされているプラグインと、自分でインストールしたプラグインの差分を確認しながら必要なものだけをコピーする手間が省け、非常に便利です。
なお、さきほど「ほぼ」と書いたのは、プラグインにCGIが含まれるものについてはこの方法が使えないためです。また、mt-static/pluginsにあるファイルのコピー作業は必要です。
2.ブログのバックアップ
4.25 の状態でブログのバックアップを取得します。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
バックアップはこれ以外にも方法があります。SQLiteであれば、mt-config.cgi に指定してる DBファイルを丸ごとダウンロードしておけば良いでしょう。MySQL であれば、コマンドラインからバックアップを実行するか、phpMyAdmin によるバックアップが可能です。
なお、バックアップはアップグレード前だけでなく、定期的に行いましょう。
3.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
4.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
5.Movable Type 4.26 のアップロード
Movable Type 4.26 のプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順3~4と同じ要領でディレクトリを作成すると良いでしょう。
6.mt-config.cgi のコピー
旧アプリケーションディレクトリ(mt--)にある mt-config.cgi をFTPツールで一旦ローカルPCにダウンロードし、新アプリケーションディレクトリ(mt)にアップロードします。
この作業を行わずに、うっかり mt.cgi にアクセスすると、新規インストールの動作になってしまう場合があるので注意してください。間違ってアクセスしても、5項の後でパーミッション変更が行われていなければエラーになります。正常にアクセスできた場合も、ブラウザの操作をそれ以上行わなければ問題ありません。
7.SQLiteのデータベースをコピー(データベースにSQLite/SQLite2を使用している場合)
SQLite を使用していて、データベースファイルが旧アプリケーションディレクトリ(mt--)配下にある場合は、FTP ツールで一旦ローカル PC にダウンロードし、新アプリケーションディレクトリ(mt)配下の同じディレクトリにアップロードします。
SQLite のデータベースファイルがどれか分からない場合は、mt-config.cgi を任意のエディタで開き、Database という項目の右側に書かれている内容が SQLite のデータベースへのパスとファイル名になります。
8.CGIファイルの属性変更
5項でアップロードした、アプリケーションディレクトリ直下にある、各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します。属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
9.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスすると、アップグレードが直ちに完了するので「Movable Type に戻る」をクリックします。

ブログ管理画面にアクセスできれば完了です。
10.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリにコピーしてください。場合によっては mt-static/plugins ディレクトリからのコピーも必要です。
以上です。
Movable Type 4.23 から 4.25 へのアップグレード
当ブログを、Movable Type 4.23 から 4.25 へアップグレードしました(4.24 はスキップ)。ということで、アップグレード手順を紹介します。4.2x から 4.25 のアップグレードでも参考になると思います。

アップグレードは個人の責任で行ってください。正常にアップグレードできなかった場合、申し訳ありませんが当ブログに質問を頂いても解決するお手伝いをすることはできません。作業前には1項に示すバックアップ作業などを行い、ブログのバックアップを行ってください。
1.プラグインディレクトリについて
アップグレードは、新しいアプリケーションディレクトリを作成する方法を紹介していますが、この方法では、プラグインディレクトリにインストールしたプラグインを新しいアプリケーションディレクトリのpluginsディレクトリにコピーする手間が増えます。
私は前回のアップグレードより、自分でインストールしたプラグインを、標準のディレクトリ配下に置くのをやめ、別のところに配置しました。そのおかげで、本エントリーで示すプラグインファイルのコピー作業は(ほぼ)なくなり、かなり楽になりました。
デフォルトでバンドルされているプラグインと、自分でインストールしたプラグインの差分を確認しながら必要なものだけをコピーする手間が省け、非常に便利です。
なお、さきほど「ほぼ」と書いたのは、プラグインにCGIが含まれるものについてはこの方法が使えないためです。また、mt-static/pluginsにあるファイルのコピー作業は必要です。
2.アップロード後の状態について
アップグレード後、「タグ」フィールドの表示位置が「キーワード」フィールド、「概要」フィールドの下になっています。
また、前バージョンまで利用していた mixiComment プラグインが標準でバンドルされましたが、CORESERVERでは必要な Perl モジュールがなく、mixi 認証の設定ができないため、前の mixiComment プラグインを有効にしています。Google 認証も同じ状態です。
再構築はすべて正常に行なえています。
前置きが長くなりましたが、以下、アップグレード手順です。
3.ブログのバックアップ
4.23 の状態でブログのバックアップを取得します。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
バックアップはこれ以外にも方法があります。SQLiteであれば、mt-config.cgi に指定してる DBファイルを丸ごとダウンロードしておけば良いでしょう。MySQL であれば、コマンドラインからバックアップを実行するか、phpMyAdmin によるバックアップが可能です。
なお、バックアップはアップグレード前だけでなく、定期的に行いましょう。
4.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
5.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
6.Movable Type 4.25 のアップロード
Movable Type 4.25 のプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順2~3と同じ要領でディレクトリを作成すると良いでしょう。
7.mt-config.cgi のコピー
旧アプリケーションディレクトリ(mt--)にある mt-config.cgi をFTPツールで一旦ローカルPCにダウンロードし、新アプリケーションディレクトリ(mt)にアップロードします。
この作業を行わずに、うっかり mt.cgi にアクセスすると、新規インストールの動作になってしまう場合があるので注意してください。間違ってアクセスしても、6項のパーミッション変更が行われていなければエラーになります。正常にアクセスできた場合も、ブラウザの操作をそれ以上行わなければ問題ありません。
8.SQLiteのデータベースをコピー(データベースにSQLite/SQLite2を使用している場合)
SQLite を使用していて、データベースファイルが旧アプリケーションディレクトリ(mt--)配下にある場合は、FTP ツールで一旦ローカル PC にダウンロードし、新アプリケーションディレクトリ(mt)配下の同じディレクトリにアップロードします。
SQLite のデータベースファイルがどれか分からない場合は、mt-config.cgi を任意のエディタで開き、Database という項目の右側に書かれている内容が SQLite のデータベースへのパスとファイル名になります。
9.CGIファイルの属性変更
5項でアップロードした、アプリケーションディレクトリ直下にある、各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します。属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
10.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードが開始画面になるので「アップグレード開始」をクリックします。

サインインします。

データベースのアップグレードが実行されます。終了したら「Movable Type に戻る」をクリックします。

ブログ管理画面にアクセスできれば完了です。
11.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリにコピーしてください。場合によっては mt-static/plugins ディレクトリからのコピーも必要です。
4.1 からアップグレードした場合、下記の2つのプラグインはコア機能に統合されたので、旧ディレクトリからコピーしないでください(4.1からブログを開始した場合、Template Refresh プラグインは含まれていません)。
- Widget Manager
- Template Refresh
以上です。
Movable Type のアップグレードで旧アプリケーションディレクトリのプラグインを新アプリケーションディレクトリにコピーしない方法
Movable Type の最近の一般的なアップグレード手順は次のようになっています。
- 旧アプリケーションディレクトリをリネーム(mt であれば、mt-- など)
- 新アプリケーションディレクトリ mt を作成
- 新アプリケーションディレクトリに Movable Type をアップロード
- 旧アプリケーションディレクトリにある mt-config.cgi を新アプリケーションディレクトリにコピー
- 新アプリケーションディレクトリの mt.cgi にアクセスしてアップグレード開始
- アップグレード完了後、旧アプリケーションディレクトリの plugins ディレクトリにある(ユーザーが自分で追加した)プラグインを、新アプリケーションディレクトリの plugins ディレクトリにコピー(プラグインによっては旧アプリケーションディレクトリの mt-static/plugins 配下のものも新アプリケーションディレクトリの mt-static/plugins 配下にコピー)
この方法では、手順6の作業(下)が結構面倒です。

という訳でこのエントリーでは、plugins ディレクトリにある、ユーザー追加のプラグインを新アプリケーションディレクトリへコピーする手間を省く方法を紹介します。
現在運用中のアプリケーションディレクトリが存在する状態で説明します。以下の設定を行っておけば、次回以降のアップグレードではプラグインのコピーを省略できます。
1.プラグインディレクトリの作成
アプリケーションディレクトリ以外の任意のディレクトリに、plugins ディレクトリを作成します。例えば、アプリケーションディレクトリが
- /home/www/hogehoge/mt
であれば、
- /home/www/hogehoge/plugins
という風に作成します。
2.プラグインのコピー
アプリケーションディレクトリの plugins ディレクトリにある、ご自身でアップロードしたプラグインを、新しく作成した
- /home/www/hogehoge/plugins
に移動します。元のアプリケーションディレクトリには、ご自身でアップロードしたプラグインを残さないようにしてください。
Movable Type 4.2 のデフォルトプラグインは以下の通りです。これらのプラグインは既存の plugins ディレクトリに置いたままにしてください。
- Cloner
- feeds-app-lite
- Markdown
- MultiBlog
- spamlookup
- StyleCatcher
- Textile
- TypePadAntiSpam
- WidgetManager
- WXRImporter
3.mt-config.cgi の編集
アプリケーションディレクトリにある、mt-config.cgi をダウンロードして任意のエディタで開き、このエントリーのディレクトリ構成の例であれば、ファイルの最後に次の内容を追加します。
PluginPath plugins
PluginPath /home/www/hogehoge/plugins
ここで追加する環境変数 PluginPath は、プラグインディレクトリの位置を示すものです。PluginPath は何行でも記述することができます。
1行目は既存の plugins ディレクトリのパス(相対パス)、2行目に新しく作成した plugins ディレクトリのパス(絶対パス・または相対パス)を設定します。1行目を記述しておかないとデフォルトプラグインが読み込まれません。
2行目を相対パスで記述する場合、このエントリーのディレクトリ構成の例であれば、次のようにします。
PluginPath plugins
PluginPath ../plugins
修正後、元のアプリケーションディレクトリにアップロードし、ブログ管理画面の「システム」→「プラグイン」で、追加した plugins ディレクトリにあるプラグインが表示されればOKです。
以下に、このエントリーのディレクトリ構成の例で、追加した plugins ディレクトリの位置を図示しておきます。

なお、前述した通り、mt-static/plugins 配下にあるプラグインの資材は、アップグレード時に手動でコピーする必要があります(環境変数 StaticWebPath は mt-config.cgi に複数行設定することはできません)。
4.参考
参考サイトは下記です。ありがとうございました。
mt-static/plugins のコピー簡略化は無理っぽいですが、mt-config.cgi のコピー簡略化は環境変数 MT_CONFIG があるので、何とかなるかもしれません。
Movable Type 4.22 から 4.23 へのアップグレード
当ブログを、Movable Type 4.22 から 4.23 へアップグレードしました。変更されているファイルが少ない場合は特定のファイルだけを上書きするのですが、今回は変更ファイルが多かったので、通常のアップグレード手順を紹介します。

アップグレードは個人の責任で行ってください。正常にアップグレードできなかった場合、申し訳ありませんが当ブログに質問を頂いても解決するお手伝いをすることはできません。作業前には1項に示すバックアップ作業などを行い、ブログのバックアップを行ってください。
なお、4.1x から 4.23 にアップグレードされる場合、4.1x と 4.2x のバックアップファイルは互換性がありませんので、ご注意ください。
1.ブログのバックアップ
4.22 の状態でブログのバックアップを取得します。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
バックアップはこれ以外にも方法があります。SQLiteであれば、mt-config.cgi に指定してる DBファイルを丸ごとダウンロードしておけば良いでしょう。MySQL であれば、コマンドラインからバックアップを実行するか、phpMyAdmin によるバックアップが可能です。
バックアップはアップグレード前だけでなく、定期的に行いましょう。
2.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
3.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
4.Movable Type 4.23 のアップロード
Movable Type 4.23 のプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順2~3と同じ要領でディレクトリを作成すると良いでしょう。
5.mt-config.cgi のコピー
旧アプリケーションディレクトリ(mt--)にある mt-config.cgi をFTPツールで一旦ローカルPCにダウンロードし、新アプリケーションディレクトリ(mt)にアップロードします。
この作業を行わずに、うっかり mt.cgi にアクセスすると、新規インストールの動作になってしまう場合があるので注意してください。間違ってアクセスしても、6項のパーミッション変更が行われていなければエラーになります。正常にアクセスできた場合も、ブラウザの操作をそれ以上行わなければ問題ありません。
6.SQLiteのデータベースをコピー(データベースにSQLite/SQLite2を使用している場合)
SQLite を使用していて、データベースファイルが旧アプリケーションディレクトリ(mt--)配下にある場合は、FTP ツールで一旦ローカル PC にダウンロードし、新アプリケーションディレクトリ(mt)配下の同じディレクトリにアップロードします。
SQLite のデータベースファイルがどれか分からない場合は、mt-config.cgi を任意のエディタで開き、Database という項目の右側に書かれている内容が SQLite のデータベースへのパスとファイル名になります。
7.CGIファイルの属性変更
5項でアップロードした、アプリケーションディレクトリ直下にある、各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します。属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
8.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードのチェックが行われ、すぐに完了します。すぐに完了するのは、4.22 と 4.23 ではデータベースのスキーマに変更がないためです。これでブログ管理画面にアクセスできれば完了です。

9.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリにコピーしてください。場合によっては mt-static/plugins ディレクトリからのコピーも必要です。
4.1 からアップグレードした場合、下記の2つのプラグインはコア機能に統合されたので、旧ディレクトリからコピーしないでください(4.1からブログを開始した場合、Template Refresh プラグインは含まれていません)。
- Widget Manager
- Template Refresh
以上です。
Movable Type 4.21 から 4.22 へのアップグレード
当ブログを、Movable Type 4.21 から 4.22 へアップグレードしました。変更されているファイルが少ない場合は特定のファイルだけを上書きするのですが、今回は変更ファイルが多かったので、通常のアップグレード手順を紹介します。

アップグレードは個人の責任で行ってください。正常にアップグレードできなかった場合、申し訳ありませんが当ブログに質問を頂いても解決するお手伝いをすることはできません。作業前には1項に示すバックアップ作業などを行い、ブログのバックアップを行ってください。
なお、4.1x から 4.22 にアップグレードされる場合、4.1x と 4.2x のバックアップファイルは互換性がありませんので、ご注意ください。
1.ブログのバックアップ
4.21 の状態でブログのバックアップを取得します。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
バックアップはこれ以外にも方法があります。SQLiteであれば、mt-config.cgi に指定してる DBファイルを丸ごとダウンロードしておけば良いでしょう。MySQL であれば、コマンドラインからバックアップを実行するか、phpMyAdmin によるバックアップが可能です。
バックアップはアップグレード前だけでなく、定期的に行いましょう。
2.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
3.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
4.Movable Type 4.22 のアップロード
Movable Type 4.22 のプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順2~3と同じ要領でディレクトリを作成すると良いでしょう。
5.mt-config.cgi のコピー
旧アプリケーションディレクトリ(mt--)にある mt-config.cgi をFTPツールで一旦ローカルPCにダウンロードし、新アプリケーションディレクトリ(mt)にアップロードします。
この作業を行わずに、うっかり mt.cgi にアクセスすると、新規インストールの動作になってしまう場合があるので注意してください。間違ってアクセスしても、6項のパーミッション変更が行われていなければエラーになります。正常にアクセスできた場合も、ブラウザの操作をそれ以上行わなければ問題ありません。
6.SQLiteのデータベースをコピー(データベースにSQLite/SQLite2を使用している場合)
SQLite を使用していて、データベースファイルが旧アプリケーションディレクトリ(mt--)配下にある場合は、FTP ツールで一旦ローカル PC にダウンロードし、新アプリケーションディレクトリ(mt)配下の同じディレクトリにアップロードします。
SQLite のデータベースファイルがどれか分からない場合は、mt-config.cgi を任意のエディタで開き、Database という項目の右側に書かれている内容が SQLite のデータベースへのパスとファイル名になります。
7.CGIファイルの属性変更
5項でアップロードした、アプリケーションディレクトリ直下にある、各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します。属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
8.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードが開始します。「アップグレード開始」をクリック。

サインインします。

アップグレードを実行します。完了したら「Movable Typeに戻る」をクリック。

アップグレードが完了しました。これでブログ管理画面にアクセスできれば完了です。

9.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリにコピーしてください。場合によっては mt-static/plugins ディレクトリからのコピーも必要です。
4.1 からアップグレードした場合、下記の2つのプラグインはコア機能に統合されたので、旧ディレクトリからコピーしないでください(4.1からブログを開始した場合、Template Refresh プラグインは含まれていません)。
- Widget Manager
- Template Refresh
以上です。
Movable Type 4.1x から 4.2 へのアップグレード
ローカル環境で、Movable Type 4.13 から 4.2 へアップグレードしてみました。簡素な環境ですが正常にアップグレードできたことを確認できたので、手順を紹介します。
なお、アップグレードは個人の責任で行ってください。正常にアップグレードできなかった場合、申し訳ありませんが当ブログに質問を頂いても解決するお手伝いをすることはできません。作業前には1項に示すバックアップ作業などを行い、ブログのバックアップを行ってください。
1.ブログのバックアップ
4.1 の状態でブログのバックアップを取得します。
注:ブログのバックアップファイルは4.1と4.2で互換性がありません。ドキュメントにも次のように書かれており、4.2 で復元する場合は、4.2 のバックアップファイルしか対象にできません。
Movable Type 4 ドキュメント - バックアップしたブログの復元
バックアップファイルは、必ずバックアップを行った Movable Type と同じ環境で復元してください。例えば、Movable Type 4.1 の環境で、バックアップしたファイルを Movable Type 4.2 で復元したいとき、まず、Movable Type 4.1 で (緊急時用) バックアップを作成後、その Movable Type を Movanle Type 4.2 にアップグレードし、再度バックアップファイルを作成します。その Movable Type 4.2 の環境で作成したバックアップファイルを使用して、復元したい Movable Type 4.2 の環境で復元します。
この件については下記の記事が参考になると思います。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
バックアップはこれ以外にも方法があります。SQLiteであれば、mt-config.cgi に指定してる DBファイルを丸ごとダウンロードしておけば良いでしょう。MySQL であれば、コマンドラインからバックアップを実行するか、phpMyAdmin によるバックアップが可能です。
バックアップはアップグレード前だけでなく、定期的に行いましょう。
2.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
3.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
4.Movable Type 4.2のアップロード
Movable Type 4.2 のプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順2~3と同じ要領でディレクトリを作成すると良いでしょう。
5.mt-config.cgi のコピー
旧アプリケーションディレクトリ(mt--)にある mt-config.cgi をFTPツールで一旦ローカルPCにダウンロードし、新アプリケーションディレクトリ(mt)にアップロードします。
この作業を行わずに、うっかり mt.cgi にアクセスすると、新規インストールの動作になってしまう場合があるので注意してください。間違ってアクセスしても、6項のパーミッション変更が行われていなければエラーになります。正常にアクセスできた場合も、ブラウザの操作をそれ以上行わなければ問題ありません。
6.SQLiteのデータベースをコピー(データベースにSQLite/SQLite2を使用している場合)
SQLite を使用していて、データベースファイルが旧アプリケーションディレクトリ(mt--)配下にある場合は、FTP ツールで一旦ローカル PC にダウンロードし、新アプリケーションディレクトリ(mt)配下の同じディレクトリにアップロードします。
SQLite のデータベースファイルがどれか分からない場合は、mt-config.cgi を任意のエディタで開き、Database という項目の右側に書かれている内容が SQLite のデータベースへのパスとファイル名になります。
7.CGIファイルの属性変更
5項でアップロードした、アプリケーションディレクトリ直下にある、各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します。属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
8.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードが開始します。「アップグレード開始」をクリック。

サインインします。

アップグレードを実行します。完了したら「Movable Typeに戻る」をクリック。

アップグレードが完了しました。これでブログ管理画面にアクセスできれば完了です。

9.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。4.1 で外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリ(場合によっては mt-static/plugins ディレクトリも必要)にコピーしてください。
なお、下記の2つのプラグインはコア機能に統合されたので、旧ディレクトリからコピーしないでください(4.1からブログを開始した場合、Template Refresh プラグインは含まれていません)。
- Widget Manager
- Template Refresh
以上です。
2008.08.17
6項を追加しました。
2008.08.31
9項にテンプレートセットの記述を追加しました。
Movable Type 3 から Movable Type 4 のアップグレードにおける注意事項(その2)
「Movable Type 3 から Movable Type 4 のアップグレードにおける注意事項」で不足していた項目を、このエントリーに掲載しておきます。1~6までは前の記事を参照ください。
7.サブカテゴリーリスト用テンプレートタグ
MT3 では MTSubCategories タグで表示されていたサブカテゴリーリストが、MT4 のメインページやカテゴリーアーカイブ以外のアーカイブで表示されなくなります。
カテゴリーリストを表示する場合は下のように、MTSubCategories タグを MTTopLevelCategories に書き換えてください。
変更前
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>
変更後
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>
8.ウェブページのテンプレート
MT3 からのアップグレードでは、ウェブページ用のテンプレートが存在しません(アーカイブテンプレートは MT3 のテンプレート構造を引き継ぐため)。
注:MT4.0 ベータの時に試した情報なので、誤っていたらご指摘ください。
ウェブページのテンプレートを作成するには、「デザイン」→「テンプレート」→「アーカイブテンプレート」の「アーカイブテンプレートを作成」の右にある「ウェブページ」をクリック。

テンプレートはエントリーアーカイブを元に作成すると良いでしょう。そして、ブログ記事用のテンプレートタグを、ウェブページ用のテンプレートタグにリネームします。
テンプレートタグのリネームの主な対応は下記の通りです。
| ブログ記事 | ウェブページ |
|---|---|
| MTEntryID | MTPageID |
| MTEntryTitle | MTPageTitle |
| MTEntryBody | MTPageBody |
| MTEntryMore | MTPageMore |
その他のタグも、「Entry」を「Page」に変更すれば良いと思います。
コメント・トラックバックのテンプレートタグはそのまま(コメントは前の記事を参考にしてMT4対応に修正が必要)で大丈夫ですが、利用しないのであれば削除しても良いでしょう。
関連記事
Movable Type 3 から Movable Type 4 のアップグレードにおける注意事項
Movable Type 3 から Movable Type 4 のアップグレードでは、注意すべき点がいくつかあります。本エントリーで現在分かっている項目をまとめてみましたので、参考になれば幸いです。
1.JavaScript(mt.js) 作成
MT4 ではコメントフォーム制御用の mt.js というインデックステンプレートが必要になりますが、アップグレードではこのテンプレートが生成されないようです。
対策として、下記の手順で mt.js を取得してください。
1.1 インデックステンプレートを作成
- 名前:JavaScript
- テンプレートの種類:JavaScript (javascript)
- 出力ファイル名:mt.js
- 再構築オプション:チェック
- 内容:空のまま
で保存。
1.2 テンプレートの初期化
Template Backup and Refresh プラグインを使って、作成した JavaScript テンプレートを初期化します。これで mt.js のコードを取得することができます。
2.コメントフォーム
MT3 のコメントフォームでは、認証機能や CAPTCHA 等、MT4 の全ての機能を利用することができません。また1項で作成した JavaScript を利用するためにも、下記のエントリーを参考に、MT4 用の変更を行ってください。
3.プラグイン
アップグレードで MT4 に対応していないプラグインを利用していると、再構築でエラーになる可能性があります。
拡張タグのプラグインは、無効である旨のエラーメッセージが表示されると思いますので、
- エラーとなるテンプレートタグをテンプレートから外す
- プラグインを MT4 対応のものにアップグレードする
といった対処を行ってください。
4.システムテンプレート
システムテンプレートはアップグレード対象にならないようです。
ということで、元ブログのテンプレートを手動でコピーしてください。なお、コメント完了テンプレートについては MT3 と制御が異なっているので、そのまま使うことはできないと思われます(これについては別途エントリーしま
す)。
5.「認証なしコメント」を受け付ける
アップグレードによる管理情報の引継ぎ状況は未確認ですが、ちょっと分かりにくいのがコメント受信設定です。
認証なしコメントを受け付ける設定は管理画面の「設定」→「コメント」ではなく、「設定」→「登録 / 認証」にあります。
6.インポート・エクスポート機能を利用したデータ引継ぎ
6.1 タグ・出力ファイル名
インポート・エクスポート機能を利用したブログ記事のデータ引継ぎでは、タグや出力ファイル名の情報が引き継がれません。
これを引き継ぐためには、MT3 側のインデックステンプレートにエクスポートデータを作成するためのテンプレートを作り、これによって生成されたデータを MT4 のブログにインポートすると良いでしょう。
- JunnamaOnline (Mirror):MT3→MT4へタグやbasenameを引き継いで(インポート&エクスポートで)簡単に移行する方法。
- Movable Type のブログ記事インポートフォーマット(一番最後にテンプレートが掲載されています)
6.2 サブカテゴリー
インポート・エクスポート機能を利用したブログ記事のデータ引継ぎでは、サブカテゴリー情報が引き継がれません。
また、親カテゴリーが異なるサブカテゴリーに同名のサブカテゴリーが存在すると、ひとつのカテゴリーとして扱われてしまいます。
たとえば、下記のようなカテゴリー構成の場合、
AAA
└ CCC
BBB
└ CCC
カテゴリー「CCC」はひとつのカテゴリーにまとめられてしまいます。
同名のカテゴリーがまとめられてしまう問題を回避するには、エクスポート前に、重複するサブカテゴリー名のみ、異なるカテゴリー名にしておく必要があります。
6.3 その他
ブログ記事本文に連続したハイフンが含まれていると、適正でないフォーマットのエクスポートデータが生成され、結果的に正常にインポートできない可能性がありますので、MT3→MT4へタグやbasenameを引き継いで(インポート&エクスポートで)簡単に移行する方法。にあるプラグインを利用すると良いでしょう。
なお、エクスポートデータの改行文字が \n(LF) でない場合も正常にインポートできません。生成したエクスポートデータを Windows の任意のエディタで編集する場合、改行文字が \r\n(CR/LF)にならないよう、注意しましょう。
関連記事
Movable Type 3 から Movable Type 4 へのアップグレード方法
Movable Type 4 がリリースされましたので、Movable Type 3 からのアップグレード方法を紹介致します。
アップグレードはこれまでの MT3.x → MT3.x の方法と若干異なっています。おおざっぱに申し上げますと、データベースと構成ファイル(mt-config.cgi)以外、全て潔く削除します。
以下、Movable Type 4 のドキュメントを参考に、順を追って説明します。メジャーバージョンアップということで事前準備が色々ありますので、作業内容をしっかり把握してから実施してください。
また本エントリーはアップグレードの正常性を100%保証するものではありませんので、ご自身の責任で行ってください。
注意事項
- MT3管理画面系のプラグインはMT4ではエラーになります。
- MT3のMTタグ拡張プラグインで一部利用できないものがあります(
MTPaginate/MTCollate/MTTagInvoke等)。 - インデックステンプレート等で MTSubCategories タグは動作しません(カテゴリー・アーカイブのみで有効)
1.バックアップの取得
下記のバックアップを取得(FTPツールでダウンロード)します。
- アプリケーションディレクトリ(mt.cgi があるディレクトリ)
- スタティックディレクトリ(mt-static)
- ブログディレクトリ(index.html があるディレクトリ)
- データベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)
アップグレード作業では、ダウンロードしたアプリケーションディレクトリの中にある mt-config.cgi と(サーバ上の)データベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)を使用します。
注:4項にも記していますが、FTPツールでダウンロードする手段の他、アプリケーションディレクトリとスタティックディレクトリのディレクトリを変更するだけでもいいかもしれません(その場合は3項までの作業を先に実施してください)。ただしこの場合も、データベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)・ブログディレクトリはローカルPCにダウンロードしてください。
2.データベースのバックアップ
データベースのバックアップを取得します。データベースのバックアップがあれば、アップグレードに失敗しても全てを復旧できます。
MySQL や PostgreSQL を利用している場合、レンタルサーバで提供されているバックアップ方法やシェルを利用したバックアップを行ないます。
「MySQL + phpMyAdmin によるバックアップ」も参考にしてください。
3.エントリー・コメント・トラックバックのエクスポート
データベースのバックアップが分からない場合、エクスポート機能を利用して、エントリー・コメント・トラックバックをバックアップします。
この方法では、テンプレートやログ等、全ての情報は取得できませんが、エントリー・コメント・トラックバック・カテゴリーの基本的な情報を取得できます(サブカテゴリは反映されません)。
操作方法は管理画面より「読み込み/書き出し」をクリックし、「エントリーの書き出し」をクリック。後は「XXからエントリーを書き出す」をクリックすればファイルのダウンロードに進みます。

2項が実施できない&テンプレートをバックアップしたい場合は、テンプレートの内容をテキストファイルに保存するか、「「このテンプレートにリンクするファイル」の使い方 for Movable Type」を使ってください。
4.旧バージョンのデータ削除
バックアップを作成した後、FTP ツールで、アプリケーションディレクトリとスタティックディレクトリの内容を空にします。ドキュメントによると「以前のバージョンとの混在を防ぐため」のようです。
ドキュメントにしたがって潔く削除してもいいのですが、自信がない・恐い方は、アプリケーションディレクトリとスタティックディレクトリのディレクトリ名を変更するだけでもいいのではないかと思います。変更した場合は、前と同じ名前の空のディレクトリを作っておいてください。
スタティックディレクトリがアプリケーションディレクトリ配下にある場合、つまり Movable Type のディレクトリ構成をそのまま使っている場合は、空のアプリケーションディレクトリのみ作成しておきましょう。
注:ブログディレクトリとデータベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)は削除、あるいはリネームしないでください。
5.Movable Type 4 のアップロード
予めダウンロードしておいた Movable Type 4 を以前と同じように、アプリケーションディレクトリにアップロードします。
6.構成ファイル (mt-config.cgi) の復旧
1項のバックアップから、構成ファイル (mt-config.cgi) を元の位置にアップロードします。
旧バージョンで mt-config.cgi が存在せず、mt.cfg の場合は、mt-config.cgi にリネームしたものをアップロードします。また、MySQL や PostgreSQL 利用の場合、データベースパスワード等が含まれる mt-db-pass.cgi ファイルの内容は mt-config.cgi に反映させてください。
また、MT3.3 以前のバージョンからアップグレードする場合、「3.3の新機能の1つであるログ・フィード機能で、検索の結果のフィードを出力するために、mt-config.cgi に以下を追記してください。」とドキュメントに記されています。
AltTemplate feed results_feed.tmpl
7.カスタマイズの反映 (オプション)
「default_templatesディレクトリやsearch_templatesディレクトリ内のテンプレートをカスタマイズしていた場合は、ローカル側に作成したバックアップから、それらをアップロードします。」とドキュメントに書かれています。
8.mt.cgi にアクセスしてアップグレード
これでアップグレードが開始します。ここでは MT-3.35-ja からのアップグレードした実績で説明します。
「アップグレード開始」をクリック。

ユーザー名・パスワードを入力。

アップグレードが開始します。

アップグレードが完了しました。「Movable Type に戻る」をクリック。

これで MT4 のダッシュボードが表示されれば完了です。

一定期間運営して問題がないようでしたら、4項をディレクトリ名変更作戦で作業を進めた方は、旧ディレクトリをFTPツールで削除してください。
ちなみに MT3.35-ja のアプリケーションディレクトリ・スタティックディレクトリの内容が残った状態から上書きしても、アップグレードは成功しました。参考まで。
2007.08.09
注意事項を追記しました。
2007.08.09
プラグインから MTPaginate を削除しました。
2007.08.11
注意事項に MTSubCategories を追加しました。
