古いサーバー(Fedora Core11)をメンテナンス中にエラーに遭遇した記録です。
同様の事象に詰まった方がサクっと解決できたら良いな~。
エラーの経緯と現象
apache2.4
php5.6
をソースからインストール
libxml2-v2.9.13
zlib-1.2.12
などの依存関係にあるライブラリもインストール。
その後apacheを起動しようとしたら下記エラーメッセージが表示された。
Cannot load modules/libphp5.so into server:
/usr/lib/libxml2.so.2: symbol gzopen64, version ZLIB_1.2.3.3 not defined in file libz.so.1 with link time reference
原因の究明
libxml2.9.13確かに手動インストールしたが何か間違っていただろうか?といろいろ追いかけた結果、zlib-1.2.12をインストールした時に古いバージョンのものが残っており、libxml2.so.2が古い方のzlibライブラリを参照していたのが原因。
[root@mackii usr]# find / -name libz.so.1*
/lib/libz.so.1
/lib/libz.so.1.2.3
/usr/lib/libz.so.1
/usr/lib/libz.so.1.2.12
/usr/src/zlib-1.2.12/libz.so.1
/usr/src/zlib-1.2.12/libz.so.1.2.12
/usr/libにあるもんだと思い込んでいたら、/libにあった。。。
/lib/libz.so.1
/lib/libz.so.1.2.3
を削除して対応、起動が確認できた。
結論
旧バージョンはRPM、新バージョンをソースからインストールしたので遭遇したのだと思われる。古いサーバーでyumも何も使えないので苦肉の策で全部手動でやっているのだ。アップデート方法の事前調査が不十分でした。。。(検証機で同じことやってるのだが・・・なぜ。。。)