« せかいのえほん展 | メイン | 竹馬を自作 »

MTをバージョンアップ

最近はトラックバックスパムがうっとおしかった。多い日には、30件近いトラックバックスパムが来るのだ。ほとんどがOnlineCasinoだ。このサイトのMovableTypeは、ずっと3.1(英語版)だったが、このバージョンでは、認証されないユーザからのコメントについては、管理者が承認しないとBlogには表示されないしくみが採用されていた。しかし、トラックバックについては完全無防備状態だったため、Spammerたちのやりたい放題だった。そのほかにも、もとのバージョンで個人的に不便を感じていた点としては、記事検索やトラックバックを行ったときに日本語が化けてしまう、などがあった。英語版だったのだから、しかたのないところだが。
Blogをやっている人の多くが経験されているのではないかとおもうが、トラックバックスパムが登録されると、手動で削除することは簡単だけど、「なんでこんなことやらなきゃいけないのだ」という思いで腹が立つ。
そこで、SpamFighter(スパムファイター)という開発コード名が付けられ、コメントやトラックバックなどのスパム対策強化を中心に開発されたという「Movable Type 3.2 日本語版」へバージョンアップすることにした。(10月12日には、Movable Type 3.2日本語版 Release-2 の提供が開始されている。このサイトでもこれを使うことにした。)詳細はSixApartのサイトを参照してもらいたいが、これで、トラックバックスパムが来ても認証しなければそのうち自動的に消えていくし、現在のところ、トラックバックや検索での文字化けなどはまったく発生していないため、当初困っていたことはすべて解消された。

MovableTypeには、Updateを行うCGIが用意されていたりするが、もとのバージョンが英語版の場合にも対応しているかどうか不明だったし、もし失敗すると復旧が大変になるので、基本的に安全策をとって別DBへのインストール+エクスポート・インポートで対応した。詳細な手順について、私が実施した方法を紹介する。

ここのところ、Blogへの書き込み頻度が下がっていたのは、バージョンアップの作業をもくもくとやっていたから、というのも一因だ。本日、バージョンアップの作業も一段落するので、少しくらいは回復するだろう。(やはり毎日更新はできないが。)

1.念のため既存のDBとすべてのディレクトリのバックアップを行う
万が一の対策のため、バックアップを行った。

2.新しいDBを作成
私の使っているレンタルサーバXREAでは、5つまでDBを作ることができる。それを利用して、もともと使っていたDBは、従来のBlogを運用したままで、もう1つのDBを作成した。

3.最新のMovableTypeをダウンロードしてインストール
私は、無償の限定個人ライセンスを使っているだけだが、目的にあわせて適切なライセンスしてもよいだろう。
サポートなしでも、ドキュメントにしたがって簡単にインストールできた。3.1英語版のマニュアルを読んで入れたときよりは、比較にならないほど楽だった。既存Blogを運用している都合上、違うパス(~/mt32j/配下)にインストールした。

4.既存のBlogをエキスポートして、新Blogへインポート
MovableTypeの機能を利用して、一旦既存Blogの内容をテキストファイルにエキスポートし、それを新Blogへインポートした。インポートで最初は日本語が化けてしまったが、テキストファイルをUTF-8に変換してからインポートすれば解決できた。

5.新Blogのスタイルを修正
同じMovableTypeとはいえ、バージョンが違うと、デフォルトで提供されているテンプレートの中身は違っていた。これを直すのに若干手間取った。古いテンプレートをそのまま使えば動くかもしれないが、新しいデフォルトのテンプレートを使うことによって得られるメリットを捨てる可能性がある。そこで、面倒だが、1つ1つカスタマイズを行った。幸い、パーツ毎に見ると、カット&ペーストで済むので、あとは根気だけなのだけれど。バージョンアップにあわせて、ちょっとデザイン変更を行ったところや、まだ手がついていないところもあるが、これからもぼちぼち修正していこうとおもう。

6.既存Blogのパスから新Blogのパスへリダイレクトする.htaccessを作成
既存のBlogは別にメジャーなものではないが、検索エンジンから入ってくる人が一番多かった。つまり、検索ロボットが覚えているパスが使えなくなったら、404 Not Foundになってしまうので、基本的に記事to記事でリダイレクトを行うことにした。基本的に従来のディレクトリ階層のままになっているわけではないので、既存Blogと新BlogのアーカイブのHTMLソースから、テキストエディタで編集して、すべての既存記事から、対応する新BlogのエントリへとRedirectするようにしている。.htaccessの記述方法については、ミケネコの htaccess リファレンスを参考にさせていただいた。

7.最後に、既存Blogへのアクセスパスを変更しようとして失敗
当初の計画では、既存Blogを/mt_bakなどのパスへ退避させて、新Blogを/mtで運用することを想定していた。しかし、なにを間違えたか、うまくパスを変更することができず、しかもかなりのファイルを壊してしまう結果となった。また、/mt32jにインストールした新Blogのほうも、いろいろやったけれど、うまくパスを変更することができなかった。1.でバックアップをとっているので、復旧できないわけではないのだが、すでに新Blogを運用開始していて、既存パスですべての記事にリンクできるようになっているため、別に不具合はない。そのため、復旧作業はやめることにした。そのかわりに、既存Blogのアクセスパスhttp://mattani.xrea.jp/mt/index.phpから新Blogのアクセスパスhttp://mattani.xrea.jp/mt32j/へ、やはり6で紹介した方法でRedirectを行うことにした。

だいたいざっとこんなところだ。皆様の参考になれば幸いです。

トラックバック

このエントリーのトラックバックURL:
http://mattani.xrea.jp/mt32j/mt-tb.cgi/197

この一覧は、次のエントリーを参照しています: MTをバージョンアップ:

» PHPにおける文字化け from Shoulder.jp

1.Apacheでの設定(実行環境)

[詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)