Movable Type 7にバージョンアップ

このweblogはMovable Typeで運用している。現在ブログツールとしてはWordPressが圧倒的に人気だが、それでもMovable Typeを使い続けているのは、Movable TypeがHTMLを静的に生成でき、このRaspberry Piのような非力なサーバーに適していると思うからである。

これまで、aptでインストールできたmovabletype-opensource 5.2.7を使っていたが、とっくの昔にサポート終了状態で、ある時にaptitudeで更新パッケージをインストールするとパッケージの依存関係が解決されなくなって、その時にaptitudeが提示する解決方法を訳も分からずに選択して延命したが、aptでの管理が困難な状態になっていた。
加えて、コメントを投稿すると、裏で投稿に成功するものの、"wide character in syswrite"というエラーメッセージが表示されるようになっていたことに今月気付いたので、Movable Typeをパージョンアップすることにした。

前回のバージョン3→5への移行は相当大変で、コメントフォームの日本語化など、やり切れず諦めて放置した部分もあり、今回もかなり不安だったが、今回はMovable Typeの
個人無償版ダウンロードのページからMovable Type 7 r.4605のパッケージをダウンロードして、Apacheの設定を切り替えながら「旧バージョンから Movable Type 7 へアップグレードする」のページの手順に従って、ほぼ一発で成功した。

ただ、全体的に動作が遅くなり、サイトの再構築をすると、"500 Internal Server Error"というエラーになった。Apacheのログを見ると、

[fcgid:warn] mod_fcgid: read data timeout in 40 seconds, ...
[core:error] End of script output before headers: ...

というのが残っており、FastCGIのタイムアウト設定を変えれば解決することがわかったので、/etc/apache2/mods-enabled/fcgid.confに

FcgidIOTimeout 100

を加えると、成功した。

また、「Q.ウェブサイトが英語で表示される」のページのA.の手順に従って、テンプレートの日本語化にも一発で成功した。

ただ、これまでに自分でテンプレートをカスタマイズしてきたのがリセットされてしまい、どこをどういじったのかを控えてなかったので、バックアップされたテンプレートと比較しながら元に戻すのが結構面倒だった。以前に行ったテーマ切り替えでも同じような苦労があったので、今後はテンプレートに対して手動で行ったカスタマイズ内容を控えておくことにした。


これでMovable Typeのアップデートが可能になったし、コメントのフォームの日本語化もできて、すっきりした。

ただ、以前はそうでなかったと思うのだが、コメントの一括管理画面で未公開コメントを公開に変更しても、即座にサイトに変更されないことに気付いた。サイトの再構築をすると反映されるし、コメント編集画面で公開すると反映されるので、バージョン7 r.4605のバグのように思うのだが、そういう仕様なのだろうか。

なお、FastCGIのタイムアウトエラーの問題は、単純にFastCGIを無効にしても解消したが、サイトの再構築の時間が3倍くらい長くなった(約15分→約45分)ので、やめた。

なお、Movable Typeの「注意・制限事項と既知の問題点」のページに、FastCGIに関して、次のことが書かれていた。

既知の問題
  • Microsoft IIS サーバーで FastCGI を利用するとき、 FastCGI のタイムアウト値が短いと処理がタイムアウトを起こす場合があります。(MTC-8937)
制限事項
以下の項目は、制限事項となっており、修正を予定していません。
  • FastCGI を利用されている場合、サイトのエクスポートとインポートが正しく動作しません。
  • FastCGI を利用されている場合、アップグレードが正しく動作しません。

確かに「サイトのエクスポート」はエラーになり(Apacheのログは"mod_fcgid: stderr: Movable Type: SIGTERM caught.")、FastCGIの設定を外すとエクスポートできた。
筆者は時々「記事」の「エクスポート」の機能を使うのだが、これはFastCGI利用でもエラーにならなかったので良かった。