PHP與IIS的結合一直是Web開發的核心技術。Apache、Nginx、Lighttpd等Web服務器都支持PHP解析。但是,IIS對于Windows平臺的開發者來說更具優勢。
無論是你作為開發者,還是Web管理員,在IIS環境中使用PHP開發都需要實現“PHP iis access ”流程,即使有一定的經驗,也可能會遇到各種問題。本文重點介紹如何在IIS環境中使PHP與IIS高效連接,解決可能遇到的問題。
首先,我們需要在IIS中安裝和啟用PHP解釋器。假如我們現在使用的是IIS 7,可以打開IIS Manager,在網站或應用程序中右鍵單擊“Handler Mappings”,之后會看到多個映射處理程序,其中就包括了 PHP iis access 相關的“PHP_via_FastCGI”和“PHP 5.x”等處理程序。如下代碼所示:
<add name="FastCgi-module" path="c:\php\php-cgi.exe" verb="*" modules="FastCgiModule" scriptProcessor="c:\php\php-cgi.exe" resourceType="Either" requireAccess="Script" /> <add name="PHP24_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="c:\php\php-cgi.exe" resourceType="Either" />這些處理程序表示當IIS接收到的請求路徑是“.php”時,就使用這些處理程序來處理請求并將結果響應給客戶端,使得在整個Web服務器環境中能夠支持PHP腳本運行和使用。 接下來,我們需要修改php.ini配置文件,以達到 許多PHP iis access 優化的效果。比如調整php的參數配置,增加php緩存、優化session等。下面是一些示例配置:
date.timezone = "Asia/Shanghai"; error_reporting=E_ALL & ~E_NOTICE & ~E_WARNING & ~ E_STRICT expose_php=Off magic_quotes_runtime = Off register_globals = Off session.save_path = c:\php\session display_errors = On max_execution_time = 1800 max_input_time = 1800 memory_limit = 128M post_max_size = 16M upload_max_filesize = 8M以“date.timezone”為例,它能夠解決向客戶端輸出中文字符時,由于時區不對而導致的時間不全的問題。此外,緩存優化可能是我們關注的另一個問題。在php.ini配置中增加“APC”、”eAccelerator”或者”Zend Cache”等緩存擴展會使得PHP的訪問速度得到提升。 最后,我們在PHP iis access 中實際使用的時候,還需要注意與環境變量有關的問題。比如,在Windows Server 2008中,它與IIS默認情況下以64位模式運行。但是,PHP解釋器卻與32位模式兼容,因此我們會遇到各種環境不兼容的問題。為此,我們需要修改應用程序池的“Advanced Settings”,將“Enabled 32-Bit Applications”中的值設為“True”即可。 總之,在使用PHP iis access 開發過程中需要注意的問題還有很多。在安裝、優化和調試過程中,我們可參考PHP手冊、IIS文件以及一些相關技術論壇,學習更多的實踐經驗。