2024年6月24日 星期一

PHP 於windows平台啟動 Unable to load dynamic library 'ext\\php_curl.dll' 如何排除?

 

太久沒碰PHP 設定了  在要使用curl時才發現 出現 Unable to load dynamic library 'ext\\php_curl.dll' 問題,原以為是版本或extension 路徑沒指向對,瞎找了一陣子,但後來想想 其它的dll 都可以載入正常為啥就php_curl  和OpenSSL 不能呢?


後來查到原來PHP 在5.6.6 之後可能會有因 php_curl.dll 和 ssleay32.dll/libssh2.dll/libeay32.dll 有匹配的問題,導致模組無法正常啟動,這從LOG檔中只會和你說無法載入,但並沒告訴你是因為它所用到的LIB有問題而造成, 因此如果要修正此問題


就要在 Apache.conf 之中 於loadFile 時手動將會用到dll 設定載入上來,如下:


LoadModule php5_module "C:/php-5.6.40/php5apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php-5.6.40"
# load curl and open ssl libraries
LoadFile "C:/php-5.6.40/libeay32.dll"
LoadFile "C:/php-5.6.40/ssleay32.dll"
LoadFile "C:/php-5.6.40/libssh2.dll"

再重啟apache 即可正常載入使用