首先,從PHP的官方網(wǎng)站下載了PHP 5.2.14 For Windows的壓縮包,解壓至D盤的PHP目錄;隨后下載了Apache HTTP Server的最新版本——2.2.17,是MSI格式的,安裝也非常簡單。接著就是將PHP與HTTP Server關聯(lián)起來——讓HTTP Server能夠處理php請求,其實也就是修改httpd.conf文件了。有關這一點,網(wǎng)上的資料已經(jīng)非常詳細,官方的介紹在這里。環(huán)境搭建好了之后,為了讓PHP能夠更強大,接下來就是通過修改PHP.ini文件來裝載所需的PHP Extention(PHP擴展)了,而這些擴展在Windows平臺下就是一個個動態(tài)鏈接庫(DLL文件)。這下老大難的問題來了——無法裝載某些動態(tài)鏈接庫(PHP startup: Unable to load dynamic library)。對于這個問題,我們通過Google能夠找到如下的解決方案:
切記修改Windows的環(huán)境變量,在PATH環(huán)境變量當中增加PHP所在的路徑以及PHP擴展所在的路徑;
如果第一點做了之后,仍然無法解決,就要留意被加載的動態(tài)鏈接庫所依賴的DLL文件是否缺失。PHP官方提供了一個在Windows下安裝PHP擴展的指南,里面指出了依賴關系。
通常上述兩個方案就能解決無法裝載動態(tài)鏈接庫的問題了,但是也會有例外的。上個星期我在搭建PHP開發(fā)環(huán)境的時候,就遇到了無法裝載php_curl.dll動態(tài)鏈接庫的問題。不管是環(huán)境變量還是依賴的DLL文件(官方文檔指出:php_curl.dll所依賴的文件是libeay32.dll, ssleay32.dll)都是齊備的,這讓我百思不得其解。我把網(wǎng)上能夠找到的辦法都試了個遍,甚至還把相關的dll文件全部復制到了Windows的system32目錄當中(其實這樣做是毫無意義的)。這個小問題讓我整個周末如鯁在喉,甚是不爽。經(jīng)過一番思考,我還是把問題定位到了動態(tài)鏈接庫所依賴的DLL文件缺失上。
盡管官方文檔告訴我php_curl只依賴上述兩個DLL文件,但這是真的么?于是,我在下載了查看DLL依賴關系的軟件——Dependency Walker。用這個軟件一看,果然不出我所料:php_curl.dll所依賴的zlib.dll不存在!找到問題根源,接下來的事情都好辦了,通過Google找到zlib的老巢,下載最新的zlib.dll,然后將該文件放到PHP的安裝目錄下即可(這里仍然需要注意兩點,一是對于下載的DLL文件,如果文件名不是zlib.dll,需要改為zlib.dll;二是PHP安裝的目錄必須加入到PATH環(huán)境變量中)。至此,問題解決!