深入學習PHP配置
PHP經過長時間的發展,很多使用者都很瞭解PHP了,這裡我發表一下個人理解,和大家討論討論。下面我們就介紹一下PHP配置的步驟。雖然可以下載PHP 的源碼,但和Apache 2一樣,最好直接使用二進位發行包。
- 經驗總結PHP應用技巧
- 經驗之談PHP表單重複提交問題解決方案
- 深入介紹PHP日期格式閏年、星期、天
- 全新PHP Cookie設定方法揭秘
- 五分鐘完成PHP配置步驟詳細介紹
Apache 2可採取2種方式來運行PHP程式:通過一個CGI介面來運行(外部調用Php.exe),或者使用PHP的DLL檔案在Apache的內部運行。後一種方式的速度較快。所以,針對每個版本的PHP,都會提供2個Windows二進位發行包。較小的是.msi包,它會安裝CGI可執行程式Php.exe,但其中拿掉了通過Apache DLL來運行PHP指令碼所需的模組。較大的.zip包則包含了所有這些東西,你可以從snaps.php.net網站的Win32地區下載它們。檔案下載完畢後,把它解壓到C:\Php(保留檔案夾名稱)。除非你有絕對的把握,請同時下載PHP手冊,它有多種語言的版本可供選擇。
PHP配置
現在來到了最有趣的部分:將Apache和PHP完美地配合起來。首先,請將C:\Php\Dlls目錄中的所有DLL檔案拷貝到Windows的 System目錄(%windir%\System)。接著,在Apache的設定檔(Httpd.conf)中尋找包含了大量AddType命令那個小節,自己添加下面這一行:
- AddType?application/x-httpd-php?.php?
將C:\Php\Php.ini-recommended拷貝到Windows目錄(%windir%),把它重新命名為Php.ini,並用文字編輯器開啟它。編輯其中對doc_root、extension_dir和session.save_path進行設定的3行,使其和下面展示的一致,注意要把 InstallDir替換成你的Apache 2的安裝目錄的名稱。
- doc_root?=?c:\apache\apache2\htdocs ?
- extension_dir = c:\php\extensions ?
- ?
- session.save_path = c:/temp ?
?
下一步是允許Apache將PHP程式作為模組來運行,這要求你採取2個步驟。首先,將C:\Php\Php4ts.dll拷貝到Windows的系統檔案夾(%windir%\System)。在Httpd.conf中找到LoadModule小節,自己添加下面這一行:
- LoadModule?php4_module?“c:/php/php4apache2.dll”?
如果你出於某種原因而需要在CGI模式中運行PHP程式(使用Php.exe),請將上面這一行變成注釋,並在Httpd.conf中添加下面這些行:
- ScriptAlias?/php/?"c:/php/" ?
- ?
- Action?application/x-httpd-php?"/php/php.exe" ?
一切都搞定了嗎?
儲存所做的更改後,你需要親自去證明兩點,才能確保Apache 2/PHP 4成為一對完美的搭檔:Apache能正常載入嗎,它能正確處理PHP頁嗎?
要知道Apache是否能夠正常載入,在你已經開啟的命令列視窗中輸入以下命令:
- apache–k?start?
另外,如果Apache正在運行,可用以下命令重新啟動它:
- apache–k?restart?
從命令列啟動Apache的好處在於,如果出現一個錯誤,Apache會立即報告它。你可能遇到的最常見的問題在於,Apache可能由於某種原因而無法載入Php4apache2.dll。如果Apache報告了這個錯誤,請按前面所述的步驟重新操作一遍,確保一切都沒有錯誤。要知道Apache是否能正確地處理PHP頁,請用你的文字編輯器建立一個簡單的PHP頁,命名為Phptest.php,其中只包含下面這一行:
- <??phpinfo();??>?
將檔案儲存到主Web伺服器目錄(C:\InstallDirectory\Apache\Apache2\Htdocs),用瀏覽器訪問http://localhost/phptest.php。如果一切正常,應該看到一個含有PHP徽標的網頁,其中包含大量設定和其他資訊。要知道PHP當前是通過CGI來運行,還是在Apache內部運行,可以檢查一下環境變數orig_script_name。如果PHP通過CGI來運行,這個變數的值就是/Php/Php.exe。如果Apache將PHP 指令碼作為模組來運行,該變數的值應該是/Phptest.php。
雖然在Windows上安裝Apache 2和PHP並不是一件容易的事情,但也完全沒必要採取摸著石頭過河的做法。通過本文的說明,你應該可以快速搭建起這個史上最好的、成本最