Unable to load dynamic library '/usr/lib/php/modules/module.so'
学校も休日の今日。
何気なくPHPのバージョンを確認して悦に浸ろうとした時のこと。
[root@centos6 ~]# php -v PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/module.so' - /usr/lib/php/modules/module.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP 5.3.3 (cli) (built: Jul 12 2013 20:21:47) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
え。
えええええええええええ!?
何? この警告。 許さない。絶対に
Unable to load dynamic library '/usr/lib/php/modules/module.so'
module.soが読めていないみたいです。
早速調査開始。
拡張モジュール読み込み設定のあたりだと思うので、/php.d/以下のiniファイルに検索をかけてみました。
[root@centos6 ~]# find /etc/php.d/ -name '*.ini' -type f -print | xargs grep 'module.so'
/etc/php.d/mcrypt.ini:extension=module.so
ビンゴ!☆⌒d(*^ー゚)b
先日、このCentOS6.4サーバーでphp-mcryptの更新を行ったのですが、その時に作られたmcrypt.iniの中身がおかしかったみたいです。
念のため、mcrypt.soの位置を確認します。
[root@centos6 ~]# rpm -ql php-mcrypt
/etc/php.d/mcrypt.ini
/usr/lib/php/modules/mcrypt.so
読み込みモジュール名の書き換えだけで問題ないようなので、viで変更しました。__ロ(。_。*)ケシケシ♪
[root@centos6 ~]# vi /etc/php.d/mcrypt.ini ; Enable mcrypt extension mcrypt extension=module.so ← 削除しました。 extension=mcrypt.so ← 追加しました。
設定ファイルを保存したら、Apacheを再読み込みさせて完了。
[root@centos6 ~]# /etc/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ] [root@centos6 ~]# php -v PHP 5.3.3 (cli) (built: Jul 12 2013 20:21:47) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
といった流れで、難なく解決しました。
いやいや。
[root@centos6 ~]# yum list installed | grep 'php-mcrypt' php-mcrypt.i686 5.3.3-1.el6.rf @rpmforge [root@centos6 ~]# grep 'php-mcrypt' /var/log/yum.log Dec 01 18:18:45 Installed: php-mcrypt-5.3.3-1.el6.rf.i686
rpmforgeめ。 設定ファイルの内容に誤りがあるとは・・・・・・。
面倒臭い。 (´⊆`;) いや、侮れない。
来週から行う稼働中サーバーのPHP5.4化作業もいろいろと気をつけよーっと。