PHP啟動提示Unable to load dynamic library php_curl.dll怎麼辦 ,下面我們來看解決辦法哦
這個問題容易手配PHP的時候出現, 在php.ini中正確開啟了curl擴展後, 在PHPINFO中卻看不到相關的信息, 而Apache的日志會顯示以下錯誤:
PHP Warning: PHP Startup: Unable to load dynamic library 'D:\DEV\ENV\php-5.3.10\ext\php_curl.dll' - xd5xd2xb2xbbxb5xbdxd6xb8xb6xa8xb5xc4xc4xa3xbfxe9xa1xa3rn in Unknown on line 0
什麼原因造成的這個問題呢?
答案是curl擴展對庫文件有依賴, 就像在Linux下面編譯PHP的時候也需要安裝依賴的庫一樣.
在PHP官網手冊的Windows下安裝擴展庫的頁面上已經詳細的標注了PHP所有的擴展文件依賴那些庫. 其中特別提示了以下內容 (http://php.net/manual/zh/install.windows.extensions.php)
有些擴展庫需要額外的 DLL 才能工作。其中一部分包括在發行包裡,PHP 4 中在 C:phpdlls目錄下,PHP 5 中在主目錄下,但還有一些,例如 Oracle( php_oci8.dll)所需要的 DLL 沒有綁定在發行包裡。如果安裝 PHP 4,將綁定的 DLL 從 C:phpdlls拷貝到主目錄 C:php中。別忘了將 C:php放到系統路徑 PATH中去
在頁面的介紹中,我們可以查詢到curl擴展依賴libeay32.dll, ssleay32.dll這兩個庫文件, 這兩個文件已經附屬在PHP的Windows程序包中,我們無需去單獨下載. 搞清楚了這些, 解決方法也很簡單了: 讓Windows或者Apache能順利加載到這個2個dll文件即可, 下面我列出幾個解決方案
方案1 將libeay32.dll, ssleay32.dll拷貝到c:windowssystem32文件夾中
方案2 將你PHP程序的目錄加入到系統的PATH變量中即可
方案3 如果你使用的是Apache服務器且使用模塊的方式來運行PHP的話, 可以在httpd.conf中加載PHP模塊的配置語句之前加上下面兩句話讓Apache來加載這兩個dll, 例子如下:
代碼如下 復制代碼LoadFile "D:DEVENVphp-5.3.10ssleay32.dll"
LoadFile "D:DEVENVphp-5.3.10libeay32.dll"
LoadModule php5_module "D:DEVENVphp-5.3.10php5apache2_2.dll"