思路:
首先安裝 Apache ,並確保 Apache 能正常運作。安裝具體步驟方法可參考我的另一篇文章:《Windows下安裝Apache2.2.x》(http://indian.blog.163.com/blog/static/1088158200755105546704)。
其次就是安裝 PHP ,並配置 Apache 支援 PHP 。
有兩種方法在 Windows 下讓 Apache 支援 PHP :使用Windows的環境變數或者 Apache 自身的支援。
安裝前需要從 http://www.php.net/downloads.php 下載
PHP 的 ZIP 二進位發布包。雖然目前有很多多合一的安裝包,而且也發布了一個 Microsoft Windows 的 PHP
安裝程式,但是仍然建議使用者花些時間自己手動安裝PHP。因為這樣才可以更加瞭解這套系統,並能夠在需要的時候更方便的安裝 PHP 擴充。
方法一:使用Windows 環境變數
1、第一步,要確保Apache能正確找到PHP和相關的DLL擴充。
PHP 5.0版以前官方建議將 php.ini 和多個 DLL
檔案移動到系統檔案夾(例如 C:\WINDOWS)。這一步驟雖然簡化了安裝過程,卻導致升級上的困難。建議在使用新版本的 PHP
前刪除所有這些檔案(比如從 Windows 系統檔案夾刪除 php.ini 和 PHP 相關的 DLL
檔案)。務必在刪除前備份這些檔案,因為這一操作可能破壞整個系統。原有的 php.ini 在安裝新版本的 PHP
時也可用來參考。不久使用者便會明白,安裝 PHP 最好的方式便是將所有 PHP 有關的檔案都放入同一目錄,並在系統的 PATH
環境變數中設定此目錄。
將下載下來的 PHP 5.2.x 的ZIP壓縮包解壓到目的目錄,比如 C:\php
,我是解壓到了 E:\usr\php 。可以選擇其它的路徑但最好不要用中間有空格的路徑(例如:C:\Program Files\PHP
就不太好),如果這樣做有些 網頁伺服器會崩潰。
PHP在Apache下的安裝可以以伺服器模組方式或 CGI 可執行程式方式安裝,還有個 CLI 版本是為使用 PHP 命令列指令碼而設計的。伺服器模組比 CGI 可執行程式提供了更好的效能和更多的功能。所以我主要介紹伺服器模組安裝方式。
CGI 和 CLI 可執行檔以及 網頁伺服器模組都需要 php5ts.dll(php4ts.dll,php4中使用),必須確認該檔案可以在 PHP 安裝路徑中找到。對該 DLL 的搜尋順序為:
- 調用 php.exe 時所在的目錄,或者若使用 SAPI 模組時,網頁伺服器的目錄(例如 C:\Program Files\Apache Group\Apache2\bin)。
- 任何在 Windows 的 PATH 環境變數中指定的目錄。
要讓 php4ts.dll / php5ts.dll
能正確被搜尋到,有下面三個選擇:複製該檔案到 Windows 系統目錄;複製該檔案到 網頁伺服器的目錄;或者把 PHP 目錄(例如
C:\php)添加到 PATH 環境變數中。為了將來更好的維護,建議使用最後一個選擇,將 PHP 目錄添加到 PATH
環境變數中,因為這樣更便於將來升級 PHP。
①將 PHP 目錄加入到 Windows 路徑 PATH 中去
在 Windows NT,2000,XP 和 2003 下:
- 進入控制台並開啟“系統”表徵圖(開始 -> 設定 -> 控制台 -> 系統,Windows XP/2003 中是:開始 -> 控制台 -> l系統)
- 選擇“進階”標籤頁
- 點擊“環境變數”按鈕
- 在“系統變數”欄中
- 找到 Path 這一項(可能需要向下滾動才能找到)
- 滑鼠雙擊 Path 這一項
- 在最後加入你的 PHP 目錄,包括前面的英文分號“;”(例如:;C:\php ,我的路徑是 ;E:\usr\php )
- 點擊“確定”並重新啟動電腦
②使 php.ini 檔案在 Windows 下被 PHP 所用
(這一步很重要,我實驗了的,如果沒有這一步,PHP 將搜尋不到 php.ini )
在 Windows NT,2000,XP 和 2003 種:
- 進入控制台並開啟“系統”表徵圖(開始 -> 設定 -> 控制台 -> 系統,Windows XP/2003 中是:開始 -> 控制台 -> l系統)
- 選擇“進階”標籤頁
- 點擊“環境變數”按鈕
- 在“系統變數”欄中
- 點擊“建立”按鈕並在“變數名”中輸入“PHPRC”,在“變數值”中輸入 php.ini 檔案所在的目錄(例如:C:\php)
- 點擊“確定”並重新啟動電腦
2、下一步是為 PHP 設定一個有效設定檔,php.ini 。
在 ZIP 包中有兩個 ini 檔案,php.ini-dist 和
php.ini-recommended。官方手冊中建議使用
php.ini-recommended,因為在該檔案中最佳化了效能和安全。請仔細閱讀該檔案中的注釋,因為它從 php.ini-dist
修改而來,會對設定產生較大的影響。例如將 display_errors 設定為 off,將 magic_quotes_gpc 設定為
off。除了閱讀這些部分,還可以學習一下 ini 設定,並手動設定每一個設定項目。如果想要最安全的設定,這是最好的方法,雖然 PHP
在預設配置下也是很安全的。對於PHP的初學者來說,我建議用php.ini-dist,因為在該檔案中將 display_errors 設定為
on,這樣你在調試PHP代碼時,會有錯誤提示,方便調試PHP代碼調試。複製所選擇的 ini 檔案到 PHP 能找到的目錄中,並將其重新命名為
php.ini。比如我把將 php.ini-dist 複製到E:\usr\php,並命名為php.ini 。
3、確保在 php.ini 中正確設定了 extension_dir 和 doc_root 指令的值。
這些指令依賴於 PHP 被安裝的系統。開啟php.ini
檔案,搜尋“extension_dir”,在 PHP 4 中,extension_dir 是 extensions 而在 PHP 5 中是
ext 。因此在 PHP 5 中 extensions_dir 的一個取值例子是
“c:\php\ext”。比如我的php目錄是E:\usr\php,所以我將這裡的 extensions_dir 的值設定成
E:/usr/php/ext 。即:extensions_dir = E:/usr/php/ext 。
注意,php.ini 中的路徑可以寫成“E:/usr/php/ext
“,也可以寫成“E:\usr\php\ext ”,就是斜線(/)與反斜線(/)的區別。php.ini
中用斜線(/)或反斜線(/)都可以。Windows中是用斜線(\)表示路徑分隔字元,Unix和Linux中用反斜線(/)表示路徑分隔字元。所以從相容
性出發,推薦用反斜線(/)。如果路徑中有空格,就要用英文引號(")括起來,但Unix和Linux中路徑是不允許包含空格的,所以Windows下的
路徑最好也不要有空格。下面的同理。
然後在php.ini中搜尋“doc_root”,這個是你的WEB根目錄。IIS 的
doc_root 的取值例子是 “c:\Inetpub\wwwroot”;Apache的 doc_root 預設是安裝目錄的 htdocs
檔案夾,比如我的是 E:\usr\Apache2.2\htdocs(我把Apache安裝在 usr
目錄下了)。所以我寫的例子是:doc_root = E:/usr/Apache2.2/htdocs
4、配置 Apache ,讓其支援PHP。
將以下兩行加入到 Apache 的 httpd.conf 設定檔中以設定 Apache 2.0 的 PHP 模組:
# 對 PHP 4 用這兩行:
LoadModule php4_module "c:/php/php4apache2.dll"
# 別忘了從 sapi 目錄中把 php4apache2.dll 拷貝出來!
AddType application/x-httpd-php .php
# 對 PHP 5 用這兩行:
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
注意:記得用自己 PHP 實際所在的路徑替換掉上例中的 c:/php/。要留意在 LoadModule 指令中用的是 php4apache2.dll 或 php5apache2.dll,而不是 php4apache.dll 或 php5apache.dll,後者是設計用於 Apache 1.3.x 的。特別要注意的是,Apache2.2版本要用 php5apache2_2.dll 。Apache 設定檔中的路徑分隔字元一律用反斜線(/)表示。
======================================================================================
方法二:Apache 自身的支援
Apache自身就整合了對 PHP 的支援,只需簡單配置下即可協同工作了。
將下載下來的 PHP 壓縮包解壓後, 按照前面的方法為 PHP 設定一個有效設定檔 php.ini ,並且在 php.ini 中正確設定了 extension_dir 和 doc_root 指令的值。
將以下三行加入到 Apache 的 httpd.conf 設定檔中以設定 Apache 2.x 的 PHP 模組:
# 對 PHP 5 用這兩行:
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
# 配置 php.ini 的路徑
PHPIniDir "C:/php"
注意,PHP 路徑換成你自己的路徑。特別要注意的是,Apache2.2版本要用 php5apache2_2.dll 。Apache 設定檔中的路徑分隔字元一律用反斜線(/)表示。
可以看到,僅僅多了個配置 php.ini 的指令。該指令只在 Apache 2 中有效。
至此,整個Apache下配置PHP完成,你可以建一個包含phpinfo()函數的php檔案,測試PHP在 Apache 下是否配置成功。測試檔案內容如下:
<?php
echo phpinfo();
?>
注意查看其中的“Configuration File (php.ini)
Path”項或者“Loaded Configuration File ”項是否指向你的 php 目錄。查看 PHP Core
部分的“extension_dir”項是否指向你的 php 擴充目錄。
將index.php設定為預設首頁
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
將伺服器網站啟動目錄設定到d:\php
首先修改
DocumentRoot 的值為 d:/php
DocumentRoot "d:/php"
然後修改節點塑像為<Directory "d:/php">