ダイナミックパブリッシング利用で、Movable Type のシステムディレクトリ名がかわる場合の影響と修正に関してのメモです
ちょっと意味不明なのですが、おもにローカル環境で動作確認している場合で、MTのヴァージョンごとでディレクトリ名変えたりしながら使っているといった状況下での話で、通常の利用ではまずおこらないような話です。
よくある手順でアップデートを済ませますが、このときに新しいヴァージョンのほうはディレクトリ名を前のものと異なる状態にしてアップデートを実行します。
データベースは以前のヴァージョンのデータベースを複製し、データベース名変更にしてアクセスしているとします。
その状態でそのままダイナミックパブリッシング(以下単に、「ダイナミック」と表記)に設定してある、 サイト/ブログ を表示してみます。
すると以下のようなことがおこっています。
- 新しい記事を作成、公開してもページが見つからないというエラーがでる
- 過去記事の編集、公開をおこなっても更新されていない
- プラグイン設定の変更をおこなったとき、プラグインデータの取得がうまくおこなわれていない
で、これらの原因を探ってみたところ、mtview.php のファイルの内容が原因ということがわかりました。
対処方法
公式なやり方(cf. Movable Type 5.x の変更点、注意事項、および既知の問題 : Movable Type 5 ドキュメント アップグレードの注意点)では、一旦、ダイナミック用に生成されていた .htaccess ファイルと mtview.php を削除したうえで、ダイナミックを解除(スタティックにもどす)、再度ダイナミックに設定といった手順です。
今回はローカル環境想定ということで、直接書き換えの方法を示します。
mtview.php の場所ですが、ほとんどの場合、ダイナミック設定されてるブログ(サイト)のトップのディレクトリにあるはずです。
あけてみますと、以下のようなコードがみられます。
include('/path/to/Movable Type システムディレクトリ名/php/mt.php');
$mt = MT::get_instance(ブログID, '/path/to/Movable Type システムディレクトリ名/mt-config.cgi');$mt->view();
件の不具合では、Movable Type システムディレクトリ名 が以前のものとなっています。
そこを新しいほうのディレクトリに書き換えすればOKです。
簡単にまとめますと、mtview.php はデータベースと関わるので注意が必要です。