Apache 2和PHP是建立互動式網站的熱門方案,而且成本很低。在Windows中安裝Apache 2是一件輕而易舉的事情,但要讓PHP 4與Apache 2配合無間地運行,就需要一定的技巧。
在PHP 4.3手冊的Windows安裝小節,沒有解釋如何讓PHP與Apache 2搭配使用,而有關Apache 2安裝的小節就缺少了大量你所需要的資訊。在其他在網路上公佈的安裝指南中,也包含了不少錯誤,使一些安裝人員只好不斷試驗和犯錯。例如,有些人甚至將PHP的DLL替換成其他PHP版本的DLL。 OK,為了節省你的寶貴時間,我們準備了這篇最權威的指南文章,幫你掃除一切煩惱。
使用正確版本的Windows
首先要說兼容性:Apache 2不能在Windows 95上運作;在Windows 98上勉強能夠運行,但不能作為服務使用。從4.3版本開始,PHP也不再支援Windows 95。所以,你的Windows作業系統必須是Windows NT、2000或XP。
Apache 2:原始碼還是二進位?
如果你有Visual C 5.0或更高的版本,或者安裝了Microsoft Visual Studio,那麼請使用原始原始碼不要這樣做。在Visual Studio IDE中,Windows下的產生過程非常複雜。即使從命令列編譯,也絕對不是一件易事。所以,除非你喜歡創建makefile,否則最好取得一份Windows Installer二進位發行包,也就是.msi檔。等你對Apache有了足夠的認識,知道自己要進行哪些自訂操作時,才考慮親手產生(編譯)Apache。
如果已經安裝好並且正在執行舊版的Apache,首先要停止它,卸載它,然後才能開始安裝新伺服器。多個版本的Apache 2不能共存。
雙擊Apache 2 .msi檔案。同意許可協議後,正確設定Network Domain和Server Name(如果不打算將Apache安裝到遠端計算機,那麼設定localhost就可以了),在Administrator's Email Address區域輸入你的電子郵件地址,並保持連接埠80/服務選項單選鈕的選取狀態。在下一個對話方塊中如果選擇Typical安裝,可以快速地取得一個能實際運作的伺服器環境。
安裝提示
建議將預設安裝目錄從C:Program FilesApache Group變成C:Apache或其他符合8.3檔案名稱格式的名稱。這樣一來,以後每次輸入Apache安裝路徑時,都不必為其加上引號。
稍候片刻,安裝精靈會告訴你Apache 2安裝成功。接下來惟一要做的事情就是進行測試,請打開瀏覽器並訪問localhost,這樣應該會看到預設的Apache 2主頁。
然後可以刪除主Web伺服器目錄中的所有範例文件,它們預設位於C:InstallDirectoryApacheApache2htdocs中。如果有現成的首頁Index.html,請把它拷貝到這裡;另外,也可以馬上建立一個空白首頁。未初始化的HTML,以下程式碼就可以了:
<html>
<head>title=default server page</head>
<body server page</head>
讓Apache 2為PHP做好準備
從現在開始,你需要較多地以人工方式進行安裝,不能簡單地點擊選擇幾個選項了事。盡快習慣它吧,這才是Apache的方式。你需要編輯檔案來設定不同的設定選項;如果操作不當,你所做的修改就會妨礙Apache的正確載入。如果設定引發錯誤,那麼錯誤可能會被記錄到Apache 2錯誤日誌中(預設為C:InstallDirApache2LogsError.log)。但能夠像這樣進行記錄的畢竟是少數,大多數錯誤只會記錄到Windows事件日誌中(開始| 設定| 控制面板| 管理工具| 事件檢視器)。
令人遺憾的是,當你對安裝設定進行偵錯時,Windows事件日誌並不是一個方便的工具。更好的做法是在命令列視窗中測試Apache伺服器的加載,這樣能立即看到錯誤報告。所以,在完成了我即將討論的設定修改後,請打開一個命令列窗口,切換到Apache的binary目錄(C:InstallDirApache2bin),並在那裡啟動Apache。
Apache設定檔是C:ApacheApache2ConfHttpd.conf,可用任何文字編輯器來編輯。找出DirectoryIndex,定位到下面這一行:
DirectoryIndex index.html index.html.var # index.php
為了允許Apache處理PHP#成:
DirectoryIndex index.html index.html.var index.php
還要允許在任何目錄中使用.這個設定從None改成All。儲存了所做的變更後,可繼續在文字編輯器中開啟該文件,因為等會兒安裝PHP時,要再次編輯此文件。
安裝PHP
雖然可以下載PHP的原始碼,但和Apache 2一樣,最好直接使用二進位發行套件。 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手冊,它有多種語言的版本可供選擇。
設定Apache 2來運作PHP4
現在來到了最有趣的部分:將Apache和PHP完美地搭配在一起。首先,請將C:PhpDlls目錄中的所有DLL檔案拷貝到Windows的System目錄(%windir%System)。接著,在Apache的設定檔(Httpd.conf)中尋找包含了大量AddType指令那個小節,自己加入下面這一行:
AddType application/x-httpd-php .php
將C:PhpPhp.ini-recommended拷貝到Windows目錄(%windir%),把它重新命名為Php.ini,並用文字編輯器開啟它。編輯其中對doc_root、extension_dir和session.save_path進行設定的3行,使其和下面展示的一致,注意要把InstallDir替換成你的Apache 2的安裝目錄的名稱。
doc_root = c:apacheapache2htdocs
extension_dir = c:phpextensions
session.save_path = c:/temp.是允許的。 PHP手冊聲稱這些路徑參數需要在最後加上一個反斜杠,但這個說法是不正確的。在PHP 4.3中不需要這樣做。另外,如果C:Temp不存在,請自己創建它。
下一步是允許Apache將PHP程式作為模組來運行,這要求你採取2個步驟。首先,將C:PhpPhp4ts.dll拷貝到Windows的系統資料夾(%windir%System)。在Httpd.conf中找到LoadModule小節,自己添加下面這一行:
LoadModule php4_module “c:/php/php4apache2.dll”
GIC模式中執行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
另外 ache,如果Aachepache>可用以下命令重新啟動它:
apache –k restart
從命令列啟動Apache的好處在於,如果出現一個錯誤,Apache會立即報告它。你可能遇到的最常見的問題在於,Apache可能由於某種原因而無法載入Php4apache2.dll。如果Apache報告了這個錯誤,請依照前面所述的步驟重新操作一遍,確保一切都沒有錯誤。
要知道Apache是否能正確地處理PHP頁,請用你的文字編輯器建立一個簡單的PHP頁,命名為Phptest.php,其中只包含下面這一行:
<? phpinfo(); ?> 將文件保存到主Web服務器目錄(C:InstallDirectoryApacheApache2Htdocs),用瀏覽器訪問http://localhost/phptest.php。如果一切正常,應該會看到一個含有PHP徽標的網頁,其中包含大量設定和其他資訊。要知道PHP目前是透過CGI來運行,還是在Apache內部運行,可以檢查一下環境變數orig_script_name。如果PHP透過CGI來運行,這個變數的值就是/Php/Php.exe。如果Apache將PHP腳本作為模組來運行,則變數的值應該是/Phptest.php。
雖然在Windows上安裝Apache 2和PHP並不是一件容易的事情,但也完全沒必要採取摸著石頭過河的做法。透過本文的說明,你應該可以快速建構起這個史上最好的、成本最低的Web開發環境。