Windowsで Movable Typeを動かす

更新日:2004.10.11
作成日:2003.11.29

Movable Typeのインストールについては以下の日本語化のページが詳しい。
 http://milano.lolipop.jp/milano/mt/readme/
ただ、この解説はプロバイダのサーバ(UNIX/Linux)上へのインストールを対象としているので
自宅のWindowsサーバに Movable Typeをインストールする人には多少分かり難いところもある。
その辺りを補足する意味で本文を書いてみた。
なお、Perl CGIスクリプトが動けばいいので Webサーバソフトが何であるかには依存しないと思う。

(追記 2004.10.11) 筆者が試したバージョンは 2.661であったが、その後(2004/5頃) MovableTypeは 3.0にバージョンアップされ、日本語が最初からサポートされるようになった(有償ソフトになったのも大きな変化である)。
 インストールに関しては最初の方の日本語化パッチの部分が不要になり、かなり簡単になった。その他の部分は基本的に以前と同じなので本文の内容は 3.0でもそのまま使える。
 milanoさんの以下の 3.0の説明はレンタルサーバ用に書かれたものであるが自宅サーバでも大変参考になる。
 http://rebecca.ac/milano/install/


ActivePerlは 5.8.x より 5.6.1 build 635 の方がいいのではないかと思う。
Movable Typeで ImageMagickのインストールが必要であるが、ActivePerl 5.6.1 では
 http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/
にある ImageMagick.zip をダウンロードすればよいが、5.8.x 用は
 http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/
にはない。あちこち探してみても見つからないようだ。
これは一例であるが、5.8.x に乗り換えるのは時期尚早ということだと思う。

(追記) ActivePerl 5.8.x用のImageMagick に関してはこちらを参考に。
 http://kirishima.cc/mt/archives/000090.html

既に 5.8.xをインストールしているなら、C:\Perlを C:\Perl58x とでもフォルダ名を変更し、
5.6.1を C:\Perlにインストールすればよいだろう。
先で、もしどうしても 5.8.x を使いたくなったら今度は 5.6.1を C:\Perl561とし、
C:\Perl58x を C:\Perlに戻せば簡単に切り替えることができる。
まあ、こんな未練たらしいことはしなくても 5.8.xをアンインストールして困ることは何もない。


もし上記の日本語化の解説ページで躓くとすると 14.の段階ではないだろうか。
以下のようなメッセージが出て諦める人も多いかもしれない。
-----------------------------------------------------------------------
    DB_File...
        Your server does not have DB_File installed. DB_File is
        required if you want to use the Berkeley DB/DB_File backend.
        Please consult the installation instructions for help in
        installing DB_File.
    
    DBD::mysql...
        Your server does not have DBD::mysql installed. DBI and
        DBD::mysql are required if you want to use the MySQL database
        backend. Please consult the installation instructions for help
        in installing DBD::mysql.
    
    DBD::Pg...
        Your server does not have DBD::Pg installed. DBI and DBD::Pg
        are required if you want to use the PostgreSQL database
        backend. Please consult the installation instructions for help
        in installing DBD::Pg.
    
    DBD::SQLite...
        Your server does not have DBD::SQLite installed. DBI and
        DBD::SQLite are required if you want to use the SQLite database
        backend. Please consult the installation instructions for help
        in installing DBD::SQLite.
-----------------------------------------------------------------------
これは BerkeleyDB、MySQL、PostgreSQL、SQLiteのいずれの DBシステムも
インストールされていないというメッセージである。
Movable Typeはこの4つのうちのどれかがインストールされていないと動かない。
ここで PostgreSQL は Windows用のバイナリは配布されていないし、
Windows版のアクセス用 Perlモジュールも存在しないので Windowsサーバでは除外される。
(注) PostgreSQL 8.0から Windows版がフリーで配布されるようになり、PostgreSQLも
選択肢の一つに加わった。PostgreSQLのインストール/動作確認手順を参考に。

SQLiteについては興味があれば各自調べてください。
PHP5からは標準実装になるようです。
インストールするなら Perlモジュール は DBD-SQLite です。

BerkeleyDB、MySQLの Perlモジュールは以下の手順でインストールできる。
どちらか一方しか使わないので BerkeleyDBの方が簡単でいいのではないか。
アクセスのための Perlモジュールは両方ともインストールしておいても構わないが。

・コマンドプロンプトを開く。
・もしインターネットへのアクセスにプロキシを使う環境なら最初に以下を実行する。
 C:\> set HTTP_PROXY=http://192.168.0.2:8080
 (プロキシサーバのIP/ホスト名、ポート番号は自分の環境に合わせる)。
・Perlモジュールのインストール
 C:\> ppm
 PPM> install DB_File ←(BerkeleyDB用)
 PPM> install DBI ←(MySQL用)
 PPM> install DBD-MySQL ←(MySQL用)
 PPM> quit

場合によってはこの方法ではうまくインストールできないことがあるかもしれない。
そのときは以下のようにすればよい。

・下記サイトから
 http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/ (ActivePerl 5.6.1用)
 http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/ (ActivePerl 5.8.x用)
以下の zipファイルをダウンロードする。
 DB_File.zip
 DBI.zip
 DBD-Mysql.zip

・それぞれ解凍し、カレントディレクトリを解凍先のパスに移動後、以下を実行する。
 > ppm install DB_File.ppd
 > ppm install DBI.ppd
 > ppm install DBD-Mysql.ppd

・インストールに成功すれば
 C:\Perl\site\lib\DB_File.pm
 C:\Perl\site\lib\DBI.pm
 C:\Perl\site\lib\DBD\mysql.pm
がコピーされている。

その後、再度 mt-check.cgiを実行して DB_File と DBD::mysql が以下のように表示されれば
インストール成功である。
-----------------------------------------------------------------------
    DB_File...
        Your server has DB_File installed (version 1.806).

    DBD::mysql...
        Your server has DBD::mysql installed (version 2.1026).
-----------------------------------------------------------------------
・同様に ImageMagick も Image-Magick.zip をダウンロード/解凍し、
 > ppm install Image-Magick.ppd
を実行すればインストールできる(最初に書いたように 5.6.1のみ、必須ではなさそうですが)。


DBシステムに BerkeleyDBを使うのであれば後は難しいところは何もないと思う。
 http://milano.lolipop.jp/milano/mt/readme/

 http://lolipop.jp/?mode=manual&state1=other&state2=movable
の説明に従えばトラブルことはないだろう。

日本語化のページの 19.では、サーバ機自身でテストをし、/mt でCGIの実行が可能との前提であれば、最初は
 CGIPath http://127.0.0.1/mt/
と設定しておくとよいのではないか。他の PCからアクセスするにはそのような IP/ホスト名を設定する。


もし DBを MySQL にするなら、
 http://bloggers.ja.bz/sunouchi/archives/000046.php

 http://milano.lolipop.jp/milano/mt/readme/mtcfg.html (*1)
が参考になるだろう。
どちらもUNIX/Linuxを対象とした説明であるが、Windowsなら mt.cfgに
ObjectDriver DBI::mysql
Database MT (MT は MySQLに登録したデータベース名の一例。この上の /mtとは無関係。登録方法はこの下で説明)
DBUser xxxx (ユーザ名。登録方法はこの下で説明)
の3行を追加する。
さらに mt-db-pass.cgiで database_password を削除し ユーザ xxxx のパスワードを記述する。

肝心の MySQLのインストールについては、
 http://homepage1.nifty.com/yito/anhttpd/faq/mysql.html
が参考になるだろう。
MySQLそのものは Webサーバ上ではなくバックエンドで動くので Webサーバの種類には
依存せずに動くと思う。ただ普通はWebサーバ経由のアクセスになるので
その部分ではサーバ依存な箇所がないとは断言はできないが。

MySQLを使うなら基本操作については人に聞かなくてもいいように勉強すること。
例えば上記のデータベース名 MT を作成し、ユーザ xxxxが使えるようにするには *1 を参考に、コマンドプロンプトから
C:\> mysqladmin -uROOTユーザ名 -pパスワード create MT (-u や -p の後に空白無)
C:\> mysql -u ROOTユーザ名 -pパスワード (-u の後に空白有、-p の後に空白無)
mysql> grant all privileges on *.* to xxxx@localhost IDENTIFIED by 'xxxxのパスワード';
mysql> quit
を実行する。
MySQLのインストール、データベース名の設定後 mt-load.cgi を実行する。

もしここで躓くようなら、phpMyAdmin をインストールしておくといいかもしれない。
DBの各種情報が視覚的に容易に確認できる。
ただし PHPのインストールが必要であり、さらに悩みの種を増やすことにもなりかねないが。
躓いたときは、自分のことを「初心者」だと言う人には前途多難かも。
BerkeleyDBから MySQLにデータを引き継ぐことはできそうなので(きちんと調べてないが)
MySQLが分かるようになるまでは BerkeleyDBにするのが賢明かと思います。


作成:いと,mailto:gfh05223@nifty.com