2007.07.08

Movable Type 4をインストールしてみた

この二日ほど、カップ麺の更新もしないで何をしてたかというと、Movable Typeの4のインストール。ちょうど一年前ぐらいにこのココログの調子が悪く、48時間という長時間にわたるメンテが行われたりしたころから、ゆくゆくは自前のサーバでブログをと考えていたので、MT4には興味があったのだ。去年一度、人に頼まれレンタルサーバ上にMT3をインストールしたことがあるので、すんなりいくかと思ったら……。ブログのテクニカルなことをブログのネタにするのはとも思ったけど、今回いろんな方のブログ、HPに助けてもらったし、わからないとほんとなかなか苦労するので、気がついたことをメモ代わりに書いておきます。

最初に試したのはMovable Type 3.35のiMac G4 (MacOS 10.4.10)へのインストール。データベースには、Mac OS Xのデフォルトで使えるBerkley DBを使ったので楽勝。MT3本体をダウンロード/インストールし、Six Apart社のサイト上のマニュアルどおりに設定を行えば30分ほどで仕事は終わる。Mac OS X特有の注意事項としてはインストール場所。OS Xでは[ユーザ]/library/WebServer/Documentsにおいたhtmlファイルが公開されるんだけど、CGIはCgi-Executablesフォルダに置かないといけないので、MTのフォルダからmt-staticフォルダを抜いたもの(このフォルダを以下MTとする)は/library/WebServer/CGI-executables/に置き、mt-staticフォルダや、新たに作成するblogフォルダ、dbフォルダ(それぞれブログの記事と、データベースの中身が入る、名前は任意)は/library/WebServer/Documents/に置くということ(これをしたくない場合は、森俊之さんのこちらのページなどを参照のこと)。マニュアルではこれらのファイル、フォルダの権限をFTPアプリケーションを使って変更することになっているけど、ローカルに置いたのであれば、terminalで、cdコマンドを使ってWebServerディレクトリに入り、

chmod 755 CGI-executables/mt*.cgi
chmod 777 Documents/blog
chmod 777 Documents/db

とすればOK。この構成にした場合、mt-config.cgi中では、CGIPathがhttp://localhost/cgi-bin/mt/に、StaticWebPathがhttp://localhost/mt-staticに、Berkley DBの設定のDataSourceが../../Documents/dbにしておけばいいはずです。http://localhost/cgi-bin/mt/mt-check.cgiによるチェックがOKで、http://localhost/cgi-bin/mt/mt.cgiで初期化画面が表示されたらOK。

で、いよいよMT4に挑戦。ここからは(たいした意味はないんだけど)Intel MacBook (OS 10.4.10)にインストール。MT4では、データベースとしてBerkley DBは使えないので、まずはMySQLをインストール。これがなかなか大変だった。Berkley DBですんじゃったり、レンタルサーバにあらかじめインストールしてあるmySQLを使えるのがどんなにありがたいことかわかった次第。今回インストールしたのはmySQL 5.0.41のMac OS X 10.4 (x86)版。インストール自体はpkgなのでダブルクリック一発。今すぐPCをサーバとして使おうと思ってるわけではないので、起動時に自動的にmySQLを立ち上げるためのMySQLStartupItem.pkgはインストールせず。かわりにMySQL.prefPaneをインストールしておけば、システム環境設定からMySQLのオン/オフができる。ややこしいのは後処理。MySQL AB社のマニュアルは大部でわかりにくいんだけど、山口氏のこちらのページを参考にさせていただきました。山口氏の記述、ちょっとディレクトリがおかしいようなので、僕の場合は、MySQLのディレクトリに移動(cd /usr/local/mysql/)してから、

sudo chown -R mysql data
./bin/mysqladmin -u root password <ルート用のパスワード>

で何とかクリア。データベースをネット上に置くのであれば他のanonymousのアカウントも処理しなきゃいけないみたいだけど、とりあえずその予定はまだないのでこれで終わったことにして、次はMT4用にデータベースを作成。これはMT3の場合と同じなので、MT3のマニュアルを見て作成。先ほどと同じディレクトリから、

./bin/mysqladmin -uroot -p<ルート用のパスワード> create <データベース名(mtなど)>
./bin mysql -uroot -p<ルート用のパスワード>
grant select,insert,update,delete,create,index,alter on mt.* to <ユーザ名(mtuserなど)>@localhost identified by '<このユーザのパスワード>';

でOK。

これが済んだらデータベースとのインターフェース、ドライバであるところのDBI、DBD::mysqlのインストール。まずはDBI。山口氏の記事では

sudo perl -MCPAN -e 'install DBI'

でインストールしてらっしゃるので、その通りに(あとでエラーが出たさいにDBIもおかしいのかなと疑い、手作業でダウンロードしてmakeも試してみたけど、make testでもほとんどエラーが出なかったのでこの方法でもほぼ問題なくいけるはず)。問題だったのはDBD::mysqlのインストール。cpanではうまくいかないので自分でmake。もしmakeが初めてであれば、まずはOS Xのインストーラ・ディスクか、AppleのDeveloper ConnectionからXcodeをインストール(何をインストールするにも、ことごとくmakeを避けてきた僕も今回初めてインストールしました)。基本的には、あとはDBD::mysql 4.005をダウンロード/解凍し、terminalで解凍先のディレクトリに行って、perl Makefile.pl、make、make test、make installを順にするだけ。最後のmake installは権限がないといわれたら、sudo make installとすればOK。パスワードが必要ならば、あらかじめNetinfo マネージャ(「ユーティリティ」フォルダ内)でルートパスワードを設定しておく。ところが、これでDBD::mysqlをインストールしても、mt-check.cgi上では認識されているものの、実際にmt.cgiを立ち上げるとドライバをロードできないといった趣旨のエラーが出て止まってしまう。で、make testのエラーメッセージとパッケージに添付のINSTALL.htmlと格闘すること数時間、ここにあった

PATH=$PATH:/usr/local/mysql/bin
export PATH

(MySQL本体へのパスを通す)と、

mkdir /tmp/mysql-static
cp /usr/local/mysql/lib/*.a /tmp/mysql-static
perl Makefile.pl --libs="-L/tmp/mysql-static -lmysqlclient"

(こちらはINSTALL.htmlにあったものを若干改変)をしてからmake、make test……と進め、何とか成功。上記で作ったtmp内のディレクトリは、インストール終了後に、

rm -rf /tmp/mysql-static

で消しておく。あとはMT3と同じ手順でMT4本体をインストールし、mt-config.cgiの設定さえちゃんとすれば(これはほとんどMT3の場合と同じ。上記で3について説明したものに加えて、さっきのMySQLのデータベース名、ユーザ名、パスワードなどを正しく書き込めばOK)できあがり。

Mt4xoinagaそんなわけで、なんとかインストールが終わりました。デフォルトのスタイルはこんな感じ。いろいろいじってみます。

| | コメント (3) | トラックバック (0)