ロリポップでMT3.2再構築時のエラー解決法 データベースをBarkeleyDB→SQLiteに

去年の話ですが、はじめてMovable Type3.2をインストールして使ってみたら、20記事くらい書いたところで、再構築時にエラーが出て再構築できなくなってしまいました。

こんなエラーメッセージがでました。
「500Error CGIもしくはSSIが正しく動作していません。」

そこで、ネットでいろいろと検索して解決策を調べていたら、下記のサイトを見つけました。

腐女子のMovableTypeカスタマイズ感想文 SQLiteの導入とバークレーからの変換

簡単に言うと、MT3.2のデータベースをデフォルトのBarkeleyDBからSQLiteに変更するということですね。

僕はレンタルサーバーにはロリポップを使っているのですが、ロリポップはSQLiteに対応しています。

ロリポップとMT3.2の相性が悪いということで、他のレンタルサーバーに変更した人もいるみたいですが、SQLiteにすれば、全く問題なく動作します。ちなにみ、SQLiteにしてから、一度も再構築時のエラーは起きてないです。

BarkeleyDBからSQLiteへの変更はとても簡単です。

まず、普通にMovable Type3.2をインストールします。ロリポップを使っている人は、こちらのページを参考にして下さい。

そして、「mt-config.cgi」を開き、63行目、64行目のコメントを下記のように外します。(先頭に#がついていると、その行はコメントとして扱われるのです。)

# ObjectDriver DBI::sqlite
# Database /path/to/sqlite/database/file

      ↓  ↓  ↓
ObjectDriver DBI::sqlite
Database /path/to/sqlite/database/file

それから、64行目をこのように書き換えます。(「/」から始まるフルパスでもOKです)
Database ./db/mtdb

保存してファイルを閉じたら、「mt-config.cgi」を任意に場所にアップロードして下さい。

「mt-db2sql.cgi」を呼び出します。
呼び出すとは、例えば、あなたのMT3.2をインストールしたURLが
www.sample.com/cgi/mt/
だとしたら、
ブラウザのアドレス入力欄に
www.sample.com/cgi/mt/mt-db2sql.cgi」
とタイプします。

そうすると、ファイルの変換が始まり、
「Done copying data from Berkeley DB to SQL database! All went well.」
というメッセージが表示されればOKです。

最後に、BarkeleyDBはもう使わないので、コメントアウトしておきます。

もう一度、「mt-config.cgi」を開き、70行目の「DataSource」で始まる行の一番最初に#を付けて下さい。こんな感じで。

DataSource 〜〜〜〜 中略 〜〜〜〜
      ↓  ↓  ↓
# DataSource 〜〜〜〜 中略 〜〜〜〜

#を付けたら、ファイルを保存し、もう一度アップロードして終わりです。