LoginSignup
2
1

More than 5 years have passed since last update.

Windows の PHP 起動時、追加したモジュールが読み込めない時に疑うポイント

Last updated at Posted at 2018-08-22

発生する事象

PHP の起動時(あるいは Apache などの起動時)に PHP のエラーログに以下のようなエラーが記録されている場合です。

PHP Warning: PHP Startup: Unable to load dynamic library '...\xxx.dll' - 指定されたプロシージャが見つかりません。 in Unknown on line 0

はじめに

こちらを参照して、疑わしいところがあればつぶしておきます。

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

php.ini が間違っていない場合

php.ini で extension 関連の設定が間違っていない場合、また同じ extension に対して2行の Warning が出るような場合、その dll の依存モジュールが読み込めていない可能性があります。依存モジュールはモジュールごとに異なります。

以下、モジュールごとに疑われる可能性を記します。

php_curl.dll

libeay32.dll と ssleay32.dll とにパスが通っているか、または httpd.conf で LoadFile しているか確認します。

また、パスが通っていて PHP の起動自体には成功している場合も、実行時に以下のようなエラーが出ることがあります。

... Fatal error: Call to undefined function curl_init() ...

この場合、libeay32.dlllibssh2.dllssleay32.dll(いずれも PHP に同梱されていると思います)が Apache の bin フォルダに入っていることと、PHP が参照しているものと同じものかどうかなどを確認します。(参考

私は PHP の 5.6.31 から 5.6.37 への入れ替え時にこのエラーを経験しました。PHP の入れ替えでも発生するときと発生しないときがあります。

php_oci8.dll

Oracle Instant Client をインストールするのが近道とのこと。おそらく oci.dll にパスが通っているか、または httpd.conf で LoadFile しているかしないといけないのでしょう。

php_mysql.dll

libmysql.dll と libpq.dll と libmcrypt.dll とにパスが通っているか、または httpd.conf で LoadFile しているか確認します。

php_pgsql.dll, php_pdo_pgsql.dll

libpq.dll にパスが通っているか、または httpd.conf で LoadFile しているか確認します。

php_wfio.dll

PHP 7.1 以降は不要だと思います。参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1