48
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

【PHP】追加したモジュールが読み込めない時に疑うポイント

追加したモジュールが読み込めない
つまり以下のようなエラーが発生する時である

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 ~]# 
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
48
Help us understand the problem. What are the problem?