さくらインターネット + SQLite で MT4 Beta が動かないとお嘆きのあなたへ

Movable Type 4.0 Beta(1〜3)は、DBD::SQLite のバージョンが 1.101.11 以上でないと正常に動いてくれないようです。このブログの設置してあるさくらインターネットのレンタルサーバにインストールされている DBD::SQLite のバージョンは、1.09 です。Beta1 では DB の選択肢に SQLite が表示され、選択してセッティングを完了してもエントリーが投稿できないとか、何かするたびにログインを求められるなどの現象が発生していました。しかし、Beta2 では SQLite の選択肢すら現れなくなりました(Beta3 においても同様)。

真っ当な手順を踏めば、さくらインターネットに DBD::SQLite の最新版をインストールしてもらうように申請するのが筋なのでしょうが、それでは面白くないです。会社の同僚に勧められた通り、ローカルに DBD::SQLite の最新版をインストールして、MT4 を SQLite で使ってみることにします。

参考にしたのは以下のブログのエントリーです。

っていうかほぼそのまま実行しただけです。以下、bash での作業が前提です。

まず自分のホームディレクトリに移動して、

$ cd ~

ディレクトリを作ります。

$ mkdir perl
$ mkdir -p .cpan/CPAN

設定ファイルを作ります。

$ vi .cpan/CPAN/MyConfig.pm

下記の内容を記述して保存します。

$CPAN::Config->{cpan_home}  = undef;
$CPAN::Config->{makepl_arg} = 'PREFIX=~/perl';
$CPAN::Config->{histfile}   = "$ENV{HOME}/.cpan/histfile";
1;

初期設定をします。

$ perl -MCPAN -e shell

ほとんどがデフォルトのまま Enter、ただしミラーサイトだけはきちんと選ぶこと(上記リンク先も参考にしてください)。

設定が終了すると cpan のプロンプトになりますので、DBD::SQLite をインストールします。

cpan> install DBD::SQLite

わらわらーっと文字が走り抜けて、最後に「ok」とか言われれば OK ですたぶん。

で、MT4 からこれを使うためには、以下のような修正をする必要があります。

まず mt-wizard.cgi。次の一行を加えてください。

use lib '/home/[user ID]/perl/lib/perl5/site_perl/5.8.4/mach';

use strict; の下が良いですかね。[user ID] はもちろんあなたの ID。ただしこのパスですが、インストールした環境によって異なる可能性があります。上記で上手く動かない場合は、最初に作成した "perl" 配下の "DBD/SQLite.pm" の場所を確認して、適宜変更してください。そして mt.cgi にも同様の一行を加えてください。

以上です。これであなたのさくらのレンタルサーバでも、MT4 が動くでしょう。動くんじゃないかな。動くと良いですね。

Dashboard

ところで。何となく動いているかもしれないのでサクッとご報告。ちょっと手を入れたら閲覧はいけるっぽい。投稿・編集は未確認。

MT4i 3.0 comming soon...?