DreamHost を使い始めて 1 週間が立ちました。ドメインの移行も無事に終わり、コンテンツの移動も完了したんですが、どうにもこうにも Movable Type が重いんですよ。むしろ今まで3年間使ってきたロリポップ!の方が速度的には早いかもと思えてくる。
Movable Type を快適に動作するようにするには mod_perl 下の環境で使えば早くはなるんですが、DreamHost に mod_perl はインストールされていません。しかし代わりに DreamHost には FastCGI という mod_perl と同等な Apache モジュールが組み込まれています。そしてタイミングがいいことに MT3.34 では FastCGI のサポートが向上したとのことなので、MT のバージョンを上げるついでに今までの CGI 環境から FastCGI 環境に移行してみました。
以下に DreamHost での FastCGI 導入手順をまとめてみます。
Stable 版の Perl をインストールする
これには訳があって、普通に使う分にはデフォルトの Perl5.8.4 でいいのですが、後々何か便利なプラグインが必要になったとき、Perl モジュールが必要だったりします。その際、root 権限がないためモジュールのインストールが出来ないって事があるのですが、自前でビルドした Perl を使えば問題なく好きなモジュールをインストールする事が出来ます。Perl のインストールは以下のページに書いたので参考にしてください。
FCGI モジュールをインストールする
DreamHost Wiki に書いてあるので僕は FCGI モジュールをインストールしたのですが、これは確認をとらずにやってしまったので実際必要なのかわかりません。MT のソースみた限りでは use FCGI; って記述は見当たらなかったのでもしかしたらなくても動くのかもしれませんが、念のためインストールしておきましょう。
% cpan
cpan> install FCGI
CPAN Shell からで問題なく簡単にインストール出来るはずです。
.cgi の shebang を書き換える
shebang っていうのはスクリプト言語の先頭にあるおまじないのようなものです。MTデフォルトの shebang は #!/usr/bin/perl になっています。この状態だとデフォルトの Perl を使う設定なので先ほどインストールした Stable 版を使えるように書き換えましょう。その際自分のインストールした Perl のパスにしてください。例えば下のような感じで
#!/usr/bin/perl -w
↓ #書き換える
#!/home/ashizawa/local/bin/perl -w
っと .cgi ファイルを全部書き換えれば OK。とりあえず、現段階で (CGI 環境ですが) ちゃんと動作しているのか確認しておきましょう。mt-check.cgi にアクセスして画面が出たら大丈夫なはずです。その際足りないモジュールなどがないか確認しておきましょう。足りない場合は CPAN Shell を立ち上げインストールしてください。
.htaccess に FastCGI の設定を記述する
このファイルを使うのはプロセスを起動する際だけなんだけど書いておかないと起動出来ないっぽので設定しておく。
AddHandler fastcgi-script fcgi
たぶんこれだけでいいはず。
mt-config.cgi に FastCGI の設定を加える
Movable Type が FastCGI で動作するようにする設定は以下の部分を書き換えるだけです。『Perl はデフォルトでもいいよ』って人はこの部分だけ変更するれば良いとおもいます。
AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi
XMLRPCScript mt-xmlrpc.fcgi
AtomScript mt-atom.fcgi
UpgradeScript mt-upgrade.fcgi
ActivityFeedScript mt-feed.fcgi
ViewScript mt-view.fcgi
LaunchBackgroundTasks 0
LaunchBackgroundTasks の設定ですが 0 は切っておく設定です。デフォルトではバックグラウンドで起動するタスクがあるらしいのですが、DreamHost ではこれがあると FastCGI が使えないようなので切っておくようにしました。
.cgi を .fcgi にリネームする
先ほど設定したスクリプトは実際にはまだ .cgi のままなので FTP ソフトを使うかサーバーにログインするなりして拡張子を書き換えておきましょう。書き換えが終わったら mt.fcgi にアクセスしてみてください。MT の設定画面が表示されたら FastCGI 化は成功です。ついでに再構築もしておきましょう。今のままでは表示されている Blog の方で mt-comments.cgi などが書き変わっていないのでコメントやトラックバックなどが使えない状態です。再構築するれば .fcgi に書き変わるのでちゃんと使えるようになります。
以上で設定は終わりです。
設定ファイル .htaccess について
DreamHost Wiki を読む限りだと .htaccess に AddHandler の設定が必要なんだと思うんですけど、そこは設定しなくても拡張子だけ変えれば FastCGI で起動出来ます。たぶん Apache の conf ファイルに設定済みなんでしょう。
感想
体感速度的にはかなり早くなった気がします。ロリポップ!よりも記事投稿とかもストレスなく出来るし快適です。これでやっと移行してよかったと思えるようになったかな。だけど、ちょっと安定度に欠けるようで MT にアクセスしてる最中インターナルサーバーエラーを出す時があるので要注意。まぁそれを差し引いても快適です。

コメントする