記事「MovableTypeとMysqlの不具合_3(Mysql4.1系ソースからインストール作業) 」 について


mysqlインストール、phpインストール、そしてmysqlアンインストール、mysqlの再度インストールという手順を踏んだ結果


apacheの再起動ができなくなってしまった。むかっ


# /usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 480 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: libmysqlclient.so.15: cannot open shared object file: No such file or directory


ん?LAMP崩壊??


エラーメッセージの通りhttpd.confの480行目(LoadModule php5_module modules/libphp5.so)をコメントアウトすればapacheの再起動は出来るが、phpが使えなくなってしまう状況。


また、libmysqlclient.so.15というファイルを見つからない。



# find / -name libmysqlclient.so.15 -print
# find / -name libmysqlclient* -print
/usr/local/mysql/lib/mysql/libmysqlclient.so.14.0.0
/usr/local/mysql/lib/mysql/libmysqlclient.so.14
/usr/local/mysql/lib/mysql/libmysqlclient.so
/usr/local/mysql/lib/mysql/libmysqlclient.la
/usr/local/mysql/lib/mysql/libmysqlclient.a
/usr/local/mysql-4.1.7/libmysql/.libs/libmysqlclient.so.14.0.0
/usr/local/mysql-4.1.7/libmysql/.libs/libmysqlclient.so.14
/usr/local/mysql-4.1.7/libmysql/.libs/libmysqlclient.so
/usr/local/mysql-4.1.7/libmysql/.libs/libmysqlclient.a
/usr/local/mysql-4.1.7/libmysql/.libs/libmysqlclient.lai
/usr/local/mysql-4.1.7/libmysql/.libs/libmysqlclient.la
/usr/local/mysql-4.1.7/libmysql/libmysqlclient.la


似たようなファイルはあったので無理やりコピーしてみたり、シンボリックリンクを張ってみたwが再起動できず。


# cd /usr/local/mysql/lib/mysql


# cp libmysqlclient.so.14 lib
libdbug.a libmysqlclient.a libmystrings.a
libheap.a libmysqlclient.la libmysys.a
libmerge.a libmysqlclient.so libnisam.a
libmyisam.a libmysqlclient.so.14 libvio.a
libmyisammrg.a libmysqlclient.so.14.0.0
# cp libmysqlclient.so.14 libmysqlclient.so.15
# /usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 480 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: symbol mysql_set_character_set, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference


# ls -al libmysql*
-rw-r--r-- 1 root root 1196524 Jul 9 23:23 libmysqlclient.a
-rwxr-xr-x 1 root root 874 Jul 9 23:23 libmysqlclient.la*
lrwxrwxrwx 1 root root 24 Jul 9 23:23 libmysqlclient.so -> libmysqlclient.so.14.0.0*
lrwxrwxrwx 1 root root 24 Jul 9 23:23 libmysqlclient.so.14 -> libmysqlclient.so.14.0.0*
-rwxr-xr-x 1 root root 1104081 Jul 9 23:23 libmysqlclient.so.14.0.0*
-rwxr-xr-x 1 root root 1104081 Jul 10 01:13 libmysqlclient.so.15*
# ln libmysqlclient.so.15 libmysqlclient.so.14
ln: `libmysqlclient.so.14':
# ln -s libmysqlclient.so.15 libmysqlclient.so.14.0.0
ln: `libmysqlclient.so.14.0.0':
# ls
libdbug.a libmyisammrg.a libmysqlclient.so.14@ libmysys.a
libheap.a libmysqlclient.a libmysqlclient.so.14.0.0* libnisam.a
libmerge.a libmysqlclient.la* libmysqlclient.so.15* libvio.a
libmyisam.a libmysqlclient.so@ libmystrings.a


どうやら、phpをインストールした時にmysqlと連携をとるようにmakefileを作成したが、mysqlを入れなおしたことでその依存関係が壊れたのが原因らしい。


phpの./configureを確認してみると確かに・・・
# ./configure \
> --with-apxs2=/usr/local/apache2/bin/apxs \
> --with-gd \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --with-zlib \
> --enable-mbregex \
> --enable-mbstring \
> --enable-trans-sid


よって、解決方法はphpの再インストール。むかっ
phpディレクトリを削除してインストール開始。


# rm -rf php
# make
# make install



php.iniは以前のインストール後に修正したのでバックアップをとっておきインストール後コピー。


phpを再インストールした結果、apacheの再起動、phpの使用が出来るようになりました。