首頁  >  文章  >  後端開發  >  php無法載入動態函式庫怎麼辦

php無法載入動態函式庫怎麼辦

藏色散人
藏色散人原創
2020-07-23 11:02:313900瀏覽

php無法載入動態函式庫的解決方法:1、將PHP的整合包裡的「libmySQL.dll」複製到system32目錄下;2、將PHP的解壓縮目錄加入PATH裡;3、在Apache的設定檔用loadfile去載入一些動態連結函式庫。

php無法載入動態函式庫怎麼辦

php載入動態函式庫失敗

PHP的整合包裡帶了很多的動態連結函式庫,但當我們依照說明配置好後,執行phpinfo()卻發現好多個模板並沒有載入。僅管我們在php.ini中已經將對應連結庫前面的註解(;)去掉了。

本人在配置WAMP時發現一個很有趣的事情:有時mysql模組能加載,有時又不能加載。後經仔細研究發現,能載入時mysql用的都是安裝文件,不能載入時mysql用的大多是壓縮包。兩都會有什麼差別呢?

差異就在於安裝包在安裝裡可以選擇將mysql的安裝目錄(./MySQL*.*/bin)加入到PATH裡。

這樣又會有什麼效果呢?原來在這個目錄下有個和PHP的整合包裡同名的檔案--libmySQL.dll。

上網搜尋發現還有其它的解決方法:

將PHP的整合包裡的libmySQL.dll複製到system32目錄下-目錄通常肯定是在PATH裡的;

還有一個不需要改PATH的辦法,就是在Apache的設定檔裡加一句:[loadfile X:/*/libmySQL.dll]要用絕對路徑。

問題的根源似乎已經找到了,其它的模組是不是也可以這樣解決呢。

答案是肯定的,可以。

最省事的方法是將PHP的解壓縮目錄(通常包含libmysql.dll、php.exe等)加入PATH裡;

然後重啟系統-只重啟apache是​​不行的,你在phpinfo()裡查看的「Apache Environment」的PATH參數時就會發現,「PATH 」這一項根本沒有變,如能不重啟系統就更改應用,本人目前還不知道,誰知道,請告訴我。

還有個不用改PATH也就不用重啟系統系統的辦法就是在Apache的設定檔用loadfile去載入一些動態連結函式庫。

本人經過測試將我已知的模組及其要加載的動態鏈接庫列出來:

  PHP模块      运行时要加载的动态链接库
  ------------------------------------------------------------
  php_fdf.dll                ->fdftk.dll
  php_interbase.dll      ->gds32.dll
  php_pdo_firebird.dll ->gds32.dll
  php_curl.dll               ->ssleay32.dll
  php_ldap.dll             ->ssleay32.dll
  php_openssl.dll        ->ssleay32.dll
  php_mcrypt.dll         ->libmcrypt.dll
  php_mhash.dll         ->libmhash.dll
  php_msql.dll           ->msql.dll
  php_mssql.dll           ->ntwdblib.dll
  php_pdo_mssql.dll   ->ntwdblib.dll
  php_mysql.dll           ->libmysql.dll
  php_mysqli.dll          ->libmysql.dll
  php_pdo_mysql.dll   ->libmysql.dll

所要加載的動態鏈接庫全部位於PHP的集成的包解壓縮目錄(通常包含libmysql.dll、php.exe等)。目錄還有三個檔案:fribidi.dll、libeay32.dll和libswish-e.dll,本人目前尚不知道它們有何用處。至於其中每個模組的名稱和作用,本人就不班門弄斧了。

推薦:《PHP教學

附註:此方法適用於php5.1.X、php5.2.X系列,php.4X未經測試。

以上是php無法載入動態函式庫怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn