(172) 猿頁をMySQLにしてみた
本サイト猿頁は、現在 Mobavle Type (MT)のバージョン3.33-jaというblogシステムをLaCoocanという@niftyのWebスペースサービス上で動作させているわけです。皆さんにはmiscnotes.comというドメインにアクセスしていただいていますが、サービス自体は@nifty上でやっているわけですね。
MTにする前は へてむるクリエイタ~ +xhtml、さらにその前は秀丸+htmlだったりしたわけです。
正直blogを導入してからあまりタグ回りを意識しなくて済むようになったのでずいぶん書くのが楽になりました。
その分なんだかメモ代わりの書き飛ばしが多くなったような気がして、あまり親切な書き方ではなくなってきているかもしれないなーあたりを本年を振り返っての反省としたいと思います。
さてこのMTにTinyMCEforMTプラグインを組み込んで日々是エントリの記述にいそしんでいるわけですが。とかいいつつ文章は相変わらず秀丸で書いてからコピー&ペースト→装飾という手順を踏んでいるわけですが。
これで何が嫌かって、[保存]ボタンを押した時のもーれつな更新の遅さが嫌なわけです。
エントリのphp展開は割と速いみたいなのでトラックバックかなーと思い引用先以外へのトラックバックを全部外してみたんですがそれでもやっぱり重いったら。リンクを埋め込んでいないエントリでも重いったら。
つことで現行のSQLiteからMySQLにDBを変更したらちっとは速くなるかしら、ってことで試してみました。
が。
LaCoocanはユーザが独自にMySQLを設置することを禁止しており、LaCoocan側で提供しているんですね。で、この設定が@niftyの都合でがちがちに固められているのにサポート対象外という言い訳でどー設置されているかの情報がまったく提供されていないわけです。
これはしんどい。
わかってしまえばどうということではないんですが、正しい手順を割り出すのにエラい手間を食いましたので、備忘録代わりにメモしておきたいと思います。
ちなみに、あちこちのWebを検索してみるとMTのデフォルトDBはBerkeley DBだ、のような書き方をしているサイトを見かけますが、mt-config.cgi-originalを見ると対応している4種類のDBのすべて使えるような記述になっているんですよね。どれを使うかは、参照した手順の記述次第というところではないでしょうか。
LaCoocanの[こんな使い方]→[Movable Typeのインストール]ページの手順に従うと、SQLiteが有効になるみたいですね。以降の手順は、あくまでもこのページの記述通りに設定してある状態からの変更手順ですので、違う状態になっている方はそのへんお気をつけ。
で、結果。けっこう軽くなりました。ラッキー。
「MySQLよりSQLiteの方が軽い」という記述もあちこちのサイトで見かけたんですが、私としては、これ、ちょっと飲めません。
まぁ猿頁は長文だらけで500エントリ以上ありますので、データ量やレコード量による動作速度の違いなどもあるんだろうと思います。
パターンを網羅しないテストや自分の体験だけでどっちが軽いなどと言い切ってしまうのはかえって混乱や誤解をしますので、やめといた方がいいと思うんですけどねぇ。
つことで、MTの設定変更。
MTは3.3(3.2?)から設定ファイルが変わりましたので、それ以前のバージョン時に書かれたインターネット上の情報はあまり役に立ちません。mt.cfgに言及しているのはすべて旧版の情報です。
3.3ではmtディレクトリ直下のmt-config.cgiに対して変更を記述します。
mt-config.cgiの修正ヶ所は大きく2点。
ひとつめ。
MySQL Configurationセクションのコメントアウトを削除し、LaCoocanのMySQLの設定を記述。こんな感じになります。
##### MYSQL ##### ObjectDriver DBI::(4) Database (1) DBUser (2) DBPassword (3) DBHost (4)
LaCoocanの「データベースアカウント情報」ページ(ログインして左メニューから[オプション]の[データベース]をクリック)で「データベース名」と書かれているのを(1)に、「データベースアカウント」と書かれているのを(2)に記述します。とはいうもののLaCoocanではユーザが独自にデータベースを作成することができないようにしていますのでこの2つは固定で、同じものが書かれているはずです。
(3)はちょっとハマりました。パスワードは、LaCoocanでMySQLの使用設定を行った時にランダムに生成され、送られてくる完了通知メールの中に書かれています。@niftyのともLaCoocanのとも違うパスワードですのでお気をつけ。
(4)はかなりハマりました。答えはどちらにも「データベースサーバー名」を記述、です。
ふたつめ。
SQLite Configurationセクションをコメントアウトします。こんな感じで。
##### SQLITE ##### # ObjectDriver DBI::sqlite # Database /homepage/mt/mt.db
これで、従来のblogの表示ができなくなればとりあえずOKです。
さて、今度は従来のSQLiteからMySQLへのデータの引っ越しです。
MySQL側にきちんと移行できたかどうかは、引っ越し後にphpMyAdminでMySQLにそれ用のテーブルができているをチェックすれば確認できます。
phpMyAdminの導入手順はLaCoocanの[こんな使い方]→[phpMyAdminでデータベース管理!]ページの記述通りですのでここでは特に言及しません。
引っ越しそのものは、Ogawa::Memoranda の mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト で提供されているmt-db-convert.cgiを使いました。zipと作業手順は MTDatabase Converter.ja JP の MTDatabase Converter にあります。
私のMTは3.33-jaですので、上記zipからmt-db-convert33.cgiを抜き出してサーバスペースのmtディレクトリにアップロード、URLダイレクト入力でこのcgiを叩いてやればいいわけですね。事前設定とかまったく要りません。これはすごい。
このcgiを叩くとコンバート指定ページが表示されます。各設定値は以下の通り。
っても現行設定されている部分は初期表示されますので、表示を確認するだけの項目の方が多いような気もします。
| ObjectDriver: | SQLite |
| Database: | ./mt.db |
| ObjectDriver: | MySQL |
| Database: | (1) |
| DBUser: | (2) |
| DBPassword: | (3) |
| DBHost: | (4) |
(1)~(4)はそれぞれmt-config.cgiの修正項目と同じ情報を入力してやればOKOK。
あとは[Convert]ボタンを押してしばらく待てば完了です。
やっぱレンタルサーバであちこち首根っこ押えられながらの運用はキツいなぁ、と思えてきました。いい加減そろそろ固定IPもらって自前サーバ運用を考えた方がいいのかもしれませんね。むー。

Xreaで独自ドメインを取得して広告有りでMovable Type3.33jaを…