西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)php教程 → 解決PHP無法裝載動(dòng)態(tài)鏈接庫的問題

解決PHP無法裝載動(dòng)態(tài)鏈接庫的問題

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:夜皇朝時(shí)間:2010/11/18 17:16:12字體大。A-A+

作者:佚名點(diǎn)擊:145次評(píng)論:0次標(biāo)簽: PHP

  • 類型:服務(wù)器區(qū)大小:21M語言:中文 評(píng)分:7.5
  • 標(biāo)簽:
立即下載

首先,從PHP的官方網(wǎng)站下載了PHP 5.2.14 For Windows的壓縮包,解壓至D盤的PHP目錄;隨后下載了Apache HTTP Server的最新版本——2.2.17,是MSI格式的,安裝也非常簡(jiǎn)單。接著就是將PHP與HTTP Server關(guān)聯(lián)起來——讓HTTP Server能夠處理php請(qǐng)求,其實(shí)也就是修改httpd.conf文件了。有關(guān)這一點(diǎn),網(wǎng)上的資料已經(jīng)非常詳細(xì),官方的介紹在這里。環(huán)境搭建好了之后,為了讓PHP能夠更強(qiáng)大,接下來就是通過修改PHP.ini文件來裝載所需的PHP Extention(PHP擴(kuò)展)了,而這些擴(kuò)展在Windows平臺(tái)下就是一個(gè)個(gè)動(dòng)態(tài)鏈接庫(DLL文件)。這下老大難的問題來了——無法裝載某些動(dòng)態(tài)鏈接庫(PHP startup: Unable to load dynamic library)。對(duì)于這個(gè)問題,我們通過Google能夠找到如下的解決方案:

切記修改Windows的環(huán)境變量,在PATH環(huán)境變量當(dāng)中增加PHP所在的路徑以及PHP擴(kuò)展所在的路徑;
如果第一點(diǎn)做了之后,仍然無法解決,就要留意被加載的動(dòng)態(tài)鏈接庫所依賴的DLL文件是否缺失。PHP官方提供了一個(gè)在Windows下安裝PHP擴(kuò)展的指南,里面指出了依賴關(guān)系。
通常上述兩個(gè)方案就能解決無法裝載動(dòng)態(tài)鏈接庫的問題了,但是也會(huì)有例外的。上個(gè)星期我在搭建PHP開發(fā)環(huán)境的時(shí)候,就遇到了無法裝載php_curl.dll動(dòng)態(tài)鏈接庫的問題。不管是環(huán)境變量還是依賴的DLL文件(官方文檔指出:php_curl.dll所依賴的文件是libeay32.dll, ssleay32.dll)都是齊備的,這讓我百思不得其解。我把網(wǎng)上能夠找到的辦法都試了個(gè)遍,甚至還把相關(guān)的dll文件全部復(fù)制到了Windows的system32目錄當(dāng)中(其實(shí)這樣做是毫無意義的)。這個(gè)小問題讓我整個(gè)周末如鯁在喉,甚是不爽。經(jīng)過一番思考,我還是把問題定位到了動(dòng)態(tài)鏈接庫所依賴的DLL文件缺失上。
盡管官方文檔告訴我php_curl只依賴上述兩個(gè)DLL文件,但這是真的么?于是,我在下載了查看DLL依賴關(guān)系的軟件——Dependency Walker。用這個(gè)軟件一看,果然不出我所料:php_curl.dll所依賴的zlib.dll不存在!找到問題根源,接下來的事情都好辦了,通過Google找到zlib的老巢,下載最新的zlib.dll,然后將該文件放到PHP的安裝目錄下即可(這里仍然需要注意兩點(diǎn),一是對(duì)于下載的DLL文件,如果文件名不是zlib.dll,需要改為zlib.dll;二是PHP安裝的目錄必須加入到PATH環(huán)境變量中)。至此,問題解決!

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)