64ビットのLinuxサーバにPHPをソースインストールで./configureする際に、予期せず以下のようなエラーに遭遇したことはないだろうか。
configure: error: libjpeg.(a|so) not found. php 5.2.17
configure: error: libpng.(a|so) not found. php 5.2.17
単にlibjpeg-devel, libpng-develがインストールされていないなら、
yum install libjpeg-devel
yum install libpng-devel
でインストールすればいい。しかし、これはもうやったのに、上記エラーが出る場合、32bit(i386)のライブラリがインストールされていない可能性がある。
# ls -la /usr/lib | grep libjpeg
lrwxrwxrwx 1 root root 17 5月 20 15:58 libjpeg.so -> libjpeg.so.62.0.0
lrwxrwxrwx 1 root root 17 5月 20 15:58 libjpeg.so.62 -> libjpeg.so.62.0.0
-rwxr-xr-x 1 root root 134268 1月 6 2007 libjpeg.so.62.0.0
のように、/usr/lib の中に、ライブラリが入っているか確認するといい。もしかしてなかったりしませんか? 次に64ビット用ライブラリも確認してみよう。
# ls -la /usr/lib64 | grep libjpeg
lrwxrwxrwx 1 root root 17 5月 20 15:17 libjpeg.so -> libjpeg.so.62.0.0
lrwxrwxrwx 1 root root 17 7月 2 2010 libjpeg.so.62 -> libjpeg.so.62.0.0
-rwxr-xr-x 1 root root 138936 1月 6 2007 libjpeg.so.62.0.0
こちらは有ったりしませんか?
なんだ、64bitのしかないなら、
./configure –with-libdir=lib64
のように指定すればいいではないか。でもやってみると、今度は、mysql_clientがないとか言われたりする。今度は32ビット版のライブラリしかないものが見つからなくなってしまう。。。困ったもんだ。
もし、yumでインストールしたlibjpegやlibpngのライブラリが64ビット版はあり、32ビット版がないという状況の場合、yumでi386のパッケージを除外する設定がされている可能性があります。普通、libjpeg, libpngは、yumインストールすると32ビット版、64ビット版の両方がインストールされるはずだからです。以下のように確認してみよう。
# cat /etc/yum.conf
設定の中に、
exclude=*.i386
のような記述があればコメントアウトする必要がある。これでyum install libjpeg-develで、32ビット版のライブラリもインストールされるはずだ。
/etc/yum.repos.d/
の中にあるファイルに関しても確認してみル必要があるかもしれない。
最近のコメント