SHIROのIchigoJam日記

IchigoJamの電子工作とプログラミングをメインに

Windows版XAMPPとMovableType

 MovableTypeを動かしている自宅WebサーバーWindows Server 2008)で、サーバーパッケージ「XAMPP」を最新版(1.7.2)に入れ替えました。
 作業の中で気づいたことなどを、参考までにメモしておきます。

●XAMPP

 Webサーバーを開設するのに必要なソフトを一式まとめた、便利なパッケージです。Windows版XAMPPのページはこちら。
 http://www.apachefriends.org/jp/xampp-windows.html

などのソフトが入っていて、「XAMPP」の名前はそれらの頭文字から取られています。
 それぞれのソフトをダウンロード〜インストール〜動作設定と作業するのはかなり面倒なのですが、XAMPPだとインストール一発で済むのでとても便利です。

●XAMPPのバージョン

 2009年10月現在の最新バージョンは1.7.2で、以下のようなソフトが入っています。

 動作環境は、Windows 2000、XP(Server 2003も含む)、Vista(Server 2008も含む)の32ビット環境です。
 ここで注意なのですが、1つ前のバージョン1.7.1までは、Perlはアドオンとして別に配布されていました。
 これまではXAMPPをインストールした後にPerlを追加でインストールしないといけなかったのですが、今回の1.7.2から同梱されています。
 上記のXAMPPのページにも、そのことが書かれていません。ご注意ください。
 (アドオン項目からPerlが無くなってしまったので、「XAMPP1.7.2用のPerlはまだ出ていないのか」と勝手に思い込んでいました…)
 なお、旧バージョンのXAMPPとPerlは、以下のサイトからダウンロードできます。
 http://sourceforge.net/projects/xampp/files/
 XAMPP本体は「XAMPP Windows」、Perlアドオンは「Windows add-ons」の中にあります。
 XAMPPのバージョン(と言うよりApacheのバージョン)に合ったPerlをダウンロードする必要があります。
《例》

  • XAMPP 1.6.6a(Apache 2.2.8) … perl-addon-5.8.8-2.2.8
  • XAMPP 1.7.1 (Apache 2.2.11) … perl-addon-5.10.0-2.2.11

MySQL文字コード設定

 XAMPPのインストールや設定については様々な情報ページがありますので、そちらを参照して下さい。
 私が特記することとしては、MovableType(MT)を動かすためにMySQL文字コード設定が必要です。 
 MTではデフォルトの文字コードがUTF8なのですが、MySQL側でちゃんと文字コード設定をしないと、データベース内部で文字化けが起こって、変なデータが出力されてしまうことがあります。
 具体的には、MySQLディレクトリ内にある設定ファイル「my.ini」を編集して、以下の行を追加します。

  • [client]セクション内
    default-character-set=utf8
  • [mysqld]セクション内
    default-character-set=utf8
    skip-character-set-client-handshake
  • [mysqldump]セクション内
    default-character-set=utf8
  • [mysql]セクション内
    default-character-set=utf8

 とにかく「何が何でもUTF8にしろ」と命令します(笑)
 「skip-character-set-client-handshake」は、MySQL内部で文字コード変換をしないようにするオプションです。
 MySQL文字コードの確認は、MySQLコマンドラインで以下のようにします。

mysql> show variables like 'character_set%';

+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8                           |
| character_set_connection | utf8                           |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | utf8                           |
| character_set_server     | utf8                           |
| character_set_system     | utf8                           |
| character_sets_dir       | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+

 この設定を、MT用のデータベースを作る前にやっておく必要があります。
 これをやらずにMTを使い始めると、後で設定を変えてもMT管理画面の表示やエントリ読み込みなどが文字化けして、えらい目に遭います。(経験済み ^^;)