MacOSX(Tiger)でMovable Typeを動かす

Movable Typeでいろいろ試したいことがありましたが、実稼働しているblogで大きなテストをするのは危険ということでMacOSXでテスト用にMovable Typeを動かすことにしました。

前提として
– apaceh2
– mysql5
– perl
– php5
などがmacportsでインストールされている状態です。

データベースはXREAからバックアップをとっているのがあるので、XREAで使っているのと同じユーザ名をつくって、

#cd
#mysqladmin5 -u root -p create makotokw
#mysql5 -u root -p
> use makotokw
> alter database default character set utf8 collate utf8_general_ci;

として、
(あとで気がつきましたが、テーブルは全部shift-jisでした。。。)

# /opt/local/bin/mysql5 -u root -p makotokw < /tmp/mysqldb.dump

でok
まんまMovable TypeディレクトリをMacOSXに放り込んでいけるかなと思いましたがログインすると

Got an error: Can't locate object method "configure" via package "MT::ObjectDriverFactory" at lib/MT.pm line 852

という表示になりました。

mt-check.cgi
を表示してみるとモジュールが表示されません。

apacheのログを見ると

Use of uninitialized value in subroutine entry at /opt/local/lib/perl5/site_perl/5.8.8/darwin-2level/DBI.pm line 1242.
Use of uninitialized value in subroutine entry at /opt/local/lib/perl5/site_perl/5.8.8/darwin-2level/DBI.pm line 1242.
Use of uninitialized value in subroutine entry at /opt/local/lib/perl5/site_perl/5.8.8/darwin-2level/DBI.pm line 1242.
Undefined subroutine &DBD::mysql::db::_login called at /opt/local/lib/perl5/site_perl/5.8.8/darwin-2level/DBD/mysql.pm line 142.
at /usr/local/arcadia/web/com.makotokw/www/mt/lib/MT/ObjectDriver/Driver/DBD/mysql.pm line 49

というエラー。DB系で失敗しているみたいです。

そもそも、この環境には
/usr/bin/perl

macportsで入れた
/opt/local/bin/perl
が共存していました。

mt-check.cgiの一行目の

#! /usr/bin/perl

#! /opt/local/bin/perl

したところ続々エラーが表示されました。

必須モジュールである(MySQLの)DBドライバが入っていません。

そこで

# export  FTP_PASSIVE=1
# sudo perl -MCPAN -e shell
> install DBI
> install DBD::mysql

でインストールしてみたもの、、、DBD::mysqlがインストールできません。

macports以前に入れたmysqlをアンインストールしてみました。

# cd /usr/local
# sudo rm -rf mysql*
# cd /Library/PreferencePanes/
# sudo rm -rf MySQL.prefPane/

やっぱりだめ。

検索してみると・・・
http://www.r-styles.net/mt-archives/2006/02/movabletype_on_macosx_with_mys.html

先ず、「cpan>」に続けて「install DBD::mysql」と入力して実行する。が、恐らく失敗するので、「exit」と入力して CPAN を終了する。

どうもMacOSXでは失敗するのが当たり前のようになっているようです。が探してみても、/opt/local/...で始まる人がいないので正直不安に。。。皆さんMAMPとか使ってるのかな?
結局ここを参考に
http://jayallen.org/journey/2006/04/dbd-mysql-build-problems-on-mac-book-pro

cd ~/.cpan/build/DBD-mysql-4.005
sudo perl Makefile.PL --cflags="-I/opt/local/include/mysql5/mysql" --libs="-L/opt/local/lib -L/opt/local/lib/mysql5/mysql -lmysqlclient -L/opt/local/lib -lz -lm  -L/opt/local/lib -lssl -lcrypto" --mysql_config="/opt/local/bin/mysql_config5"
sudo make
sudo make test
sudo make install

でいけました。

さて、mt*.cgiの#! /usr/bin/perlを#!/opt/local/bin/perlに書き換えるのは面倒なので

# mv /usr/bin/perl /usr/bin/perl.bak
# ln -s /opt/local/bin/perl /usr/bin/perl

とシンボリックリンクを張ることに。

無事、ログインできました。Dashboardから最近の記事が表示されているのでDBの読み込みも問題なさそうです。

再構築したところスタイルシートがぼろぼろになりました。

mt-config.cgiおよびブログの設定の「公開」のところで、URLを変えておかないといけなさそうです。