MovableTypeをVer3.2へアップグレード (成功!)

サイト運営費捻出のため広告を使用しています

movabletype-mt

 このブログはMovableTypeで運営しています。既にMovableTypeのバージョンは3.2になっているのですが、なぜかアップデートしたあとに再構築をすると「internal server error」が出てしまうというトラブルに悩まされていました。

 色々情報を調べてみると、berkleyDBとの相性が悪いという記事もあったので、データベースをsqliteに変換したりもしました。ところがsqliteに変換すると、エラーにこそならないものの、ブログの再構築にとんでもない時間がかかってしまうのです。これでは使い物にならないので、また、古いバージョンのMovabletype&BerkleyDBの組み合わせに戻して、ずっと運用を続けていました。

 ところが最近になってトラックバックSPAMが増えてきて、古いバージョンのMovableTypeでは運営を続けるのも困難になってきたので、再度、バージョンアップの方法について検討しました。このブログはさくらインターネットでサーバーを借りて運用しています。このさくらインターネットで使用できるDBMSは他にMySQLがあります。

 MySQLも優れたオープンソースのDBMSではあるのですが、さくらインターネットのMySQLを処理するDBサーバの負荷が高いことが多いらしく、性能が問題になる場合が多いという書き込みが別のブログに書かれており、MySQLの採用を躊躇していました。BerkleyDBやSQLiteの場合にはDBサーバーを使用することはなく、自分が借用しているサーバースペース上にデータベースの実体ができる形式になるため、DBサーバーの影響を受けることはなくなります。またデータベースの実体が自分のサーバースペースの中にあるので、FTPなどで簡単にデータベースの実体をバックアップできるところも長所となります。MySQLを使用した場合にバックアップする時には、MovableTypeのEXPORT機能でバックアップする形になるのでしょう。


 しかし、SQLiteもダメだったので選択肢としてはMySQLぐらいしか残されていないので、試しにデータベースをMySQLへ変換してみました。変換には「mt-db-convert.cgi」というプログラムを使用しました。このcgiはwebベースで簡単な設定をするだけでデータベース形式の相互変換を行うことができます。また、現在のデータベースの設定については、MovableTypeの設定ファイルから自動的に読みとって設定しておいてくれるので、変換先のデータベースに関する設定さえすれば変換ができるところも便利です。

 実際にMT-DB-CONVERT.CGIで変換をしてみて気がついたのですが、SQLiteに変換する時と比べて、MySQLに変換するときの方が格段に変換スピードが速いです。さくらインターネットのデータベースサーバーについてはあまり良い評判を聞いていなかったので、大きな期待はしていなかったのですが、これはもしかしたら期待できるかもしれないと思い始めました。

 変換が終わって、MT-CONFIG.CGIの中のデータベースに関する設定を書き換えると、MySQLが使用されます。既に投稿済みのエントリーを一つ選んで、保存をしてみました。ここで1エントリ分について再構築のプロセスが走るはずです。これでうまく再構築が終われば、最初の関門はOKです。実際にやってみると、ほぼBerkleyDBのときと同じくらいのスピードで再構築が終わりました。これならばどうにか使えるスピードです。試しに、個別エントリーアーカイブをまとめて再構築してみると、これもBerkleyDBのときと同じ程度のスピードで再構築を進めていってくれました。

 一部のプラグインについてはMT3.2に対応していないらしく、エラーになったりするものもあったので、動作を一つ一つ確認していって、不具合があるものについてはプラグイン自体をアップデートしたり、プラグインを外してしまったりして整合をとることができるようにしました。

 今のところは、MovableType3.2とMySQLの組み合わせで特に不具合は発生していないので、このまま運用を続けていってみようと思っています。

(2006.1.1追記)

 不具合を見つけました。mt-xmlrpc.cgiがうまく動いていないみたいです。今日、初詣に行った深大寺からモブログで投稿をしてみたのですが、うまく投稿がされていなかったので、原因を追及していく中で見つけました。

 たぶん、MovableTypeを3.2に上げたときに動かなくなったのでしょう。そこで、ネット上で情報を探してみました。すると色々な情報があります。その中で参考になったのは、3.2からはxmlrpcで投稿をするときに専用のパスワードを設定する必要になったという情報でした。具体的には、MovableTypeの管理画面にログインして、「システムメニュー→投稿者→投稿者を選択→画面の一番下」という順番で辿っていくとパスワードを設定する画面が見つかるはずです。ここで、新たにパスワードを設定しました。

 それでもなおうまく動きません。モブログとブログペットで確かめてみましたがダメです。詳しいエラー原因がわからないので、「ubicast Blogger」という記事を投稿するためのソフトウエアでテストをしてみました。すると、エラーメッセージが表示されて、「データベースのディレクトリ設定が誤っている」という主旨のメッセージがでていることが判りました。
 そこで、mt-config.cgiの設定を見直してみましたがこちらはあっています。ほかに何が原因なのかと色々と考えていると、ありました原因が・・・。mt.cfgファイルをそのまま残していたのですが、この中のデータベースに関する設定が古いまま(つまり誤っている)だったのです。mt.cfgを削除すると無事にmt-xmlrpc.cgi経由の投稿ができるようになりました。

コメント

  1. SPV = Nightmare より:

    うさタソ復活か!?

    MovableTypeをVer3.2へアップグレード (成功!) 昨年、MTを3…