ちょっと試しに、かなり久々にMovable Typeを使ってみようと思い、Movable Type(オープンソース版)をインストールしようとしたところ、システムにDBD::mysqlがインストールされていないのでDBにMySQLを使えないというエラーが・・・
なんだかなあと検索してみたら、「s13.coreserverのDBD::mysqlが動いていない」という記事がありました。
引越しが少々面倒ですが、このような場合、他のサーバに移動するのが早い解決方法のようですね。より負荷の少ないサーバで試したところ、ちゃんとDBD::mysqlも問題なく動いていました。
s13coreがハズレだったようでした。
(; ; うちのサーバー、ハズレだったようですよ。
ちくしょーと思いながら確認したところ、DBD::mysqlはインストールされていて、リンクしているMySQLのライブラリのバージョンが異なっていました。
■リンク内容をチェック!
xxx@s13:~> ldd /usr/local/lib/perl5/site_perl/5.8.8/i686-linux/auto/DBD/mysql/mysql.so
linux-gate.so.1 => (0xffffe000)
libmysqlclient.so.15 => not found ←これ
libz.so.1 => /usr/local/lib/libz.so.1 (0x40022000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40035000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40068000)
libm.so.6 => /lib/tls/libm.so.6 (0x4007e000)
libc.so.6 => /lib/tls/libc.so.6 (0x400a5000)
/lib/ld-linux.so.2 (0x80000000)
■MySQLのライブラリもチェック!
xxx@s13:~> ls /usr/local/mysql/lib/mysql/libmysqlclient.so*
/usr/local/mysql/lib/mysql/libmysqlclient.so
/usr/local/mysql/lib/mysql/libmysqlclient.so.16 ←これ
/usr/local/mysql/lib/mysql/libmysqlclient.so.16.0.0
おそらくcoreserverの中の人が、別サーバーからコピペでインストールしたんでしょうね。(ー_ーメ)
MySQLのライブラリを別途インストールしてLD_LIBRARY_PATHを通すことも出来そうですが、DBD::mysqlを自前インストールすることにしました。
詳細な手順はこれ!
xxx@s13:~> mkdir server_src
xxx@s13:~> cd server_src/
xxx@s13:~> wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.011.tar.gz
xxx@s13:~> tar -xzvf DBD-mysql-4.011.tar.gz
xxx@s13:~> cd DBD-mysql-4.011/
xxx@s13:~> mkdir ~/perl
xxx@s13:~> perl Makefile.PL PREFIX=$HOME/perl
xxx@s13:~> make
xxx@s13:~> make install
xxx@s13:~> perl -I ~/perl/lib/perl5/site_perl/5.8.8/i686-linux/ -e 'print $DBD::mysql::VERSION . "\n"' -MDBD::mysql
4.011
xxx@s13:~> cp -Rpd ~/perl/lib/perl5/site_perl/5.8.8/i686-linux/* public_html/MTインストールディレクトリ/lib/
これで無事MySQLを使えるようになりました。
ふ~危ない危ない(何が?)。