追加したモジュールが読み込めない
つまり以下のようなエラーが発生する時である
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/XXXXXX.so' - /usr/lib64/php/modules/XXXXXX.so: cannot open shared object file: No such file or directory in Unknown on line 0
モジュールが追加されているかを確認
エラーで指定されている場所にモジュールがあるかを確認してみる。
[root@test-web ~]# ll /usr/lib64/php/modules/ | grep XXXXXX
-rwxr-xr-x 1 root root 346117 Jun 7 10:14 XXXXXX.so
[root@test-web ~]#
番外編:php.iniの探し方
php --iniコマンドで、一番上に書かれているphp.iniが読まれている。
今回の場合は'/etc/php.ini'が該当する
[root@test-web ~]# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed: /etc/php.d/bz2.ini,
/etc/php.d/calendar.ini,
/etc/php.d/ctype.ini,
/etc/php.d/curl.ini,
/etc/php.d/dom.ini,
/etc/php.d/exif.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/ftp.ini,
/etc/php.d/gettext.ini,
/etc/php.d/gmp.ini,
/etc/php.d/iconv.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/mcrypt.ini,
/etc/php.d/mysqlnd.ini,
/etc/php.d/mysqlnd_mysqli.ini,
/etc/php.d/opcache.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysqlnd.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/posix.ini,
/etc/php.d/shmop.ini,
/etc/php.d/simplexml.ini,
/etc/php.d/sockets.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/sysvmsg.ini,
/etc/php.d/sysvsem.ini,
/etc/php.d/sysvshm.ini,
/etc/php.d/tokenizer.ini,
/etc/php.d/xml.ini,
/etc/php.d/xml_wddx.ini,
/etc/php.d/xmlreader.ini,
/etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini,
/etc/php.d/zip.ini
[root@test-web ~]#
grepで出てきた場合
php.iniのextension_dirの指定が抜けていないかを確認
コメントアウトされている場合は以下のように記述
php.ini
extension_dir = "/usr/lib64/php/modules"
grepで出てこなかった場合
findコマンドで他の場所にないかを探してみる
[root@test-web ~]# find / -name 'XXXXXX.so'
/usr/local/php-5.5.14/lib/php/extensions/no-debug-non-zts-20121212/XXXXXX.so
[root@test-web ~]#
php.iniでの読み込ませる際にディレクトリごと指定してみる。
extension=/usr/local/php-5.5.14/lib/php/extensions/no-debug-non-zts-20121212/XXXXXX.so
php.iniを操作したら必ずやること
httpdプロセスの再起動
[root@test-web ~]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
[root@test-web ~]#