Windows中安裝Apache2和PHP4權(quán)威指南
更新時間:2006年11月18日 00:00:00 作者:
Apache 2和PHP是創(chuàng)建交互式網(wǎng)站的流行方案,而且成本很低。在Windows中安裝Apache 2是一件輕而易舉的事情,但要使PHP 4與Apache 2配合無間地運(yùn)行,就需要一定的技巧。
在PHP 4.3手冊的Windows安裝小節(jié),沒有解釋如何讓PHP與Apache 2配合使用,而有關(guān)Apache 2安裝的小節(jié)缺失了你需要的大量信息。在網(wǎng)上公布的其他安裝指南中,也包含了不少錯誤,使一些安裝人員只好不斷試驗和犯錯。例如,有些人甚至將PHP的DLL替換成其他PHP版本的DLL。OK,為了節(jié)省你的寶貴時間,我們準(zhǔn)備了這篇最權(quán)威的指南文章,幫你掃除一切煩惱。
使用正確版本的Windows
首先要說一說兼容性:Apache 2不能在Windows 95上運(yùn)行;在Windows 98上勉強(qiáng)能夠運(yùn)行,但不能作為服務(wù)使用。從4.3版本開始,PHP也不再支持Windows 95。所以,你的Windows操作系統(tǒng)必須是Windows NT、2000或者XP。
Apache 2:源碼還是二進(jìn)制?
如果你有Visual C++ 5.0或更高的版本,或者安裝了Microsoft Visual Studio,那么雖然可以根據(jù)源碼來生成Apache,但請絕對不要這樣做。在Visual Studio IDE中,Windows下的生成過程非常復(fù)雜。即使從命令行編譯,也絕對不是一件易事。所以,除非你喜歡創(chuàng)建makefile,否則最好獲得一份Windows Installer二進(jìn)制發(fā)行包,也就是一個.msi文件。等你對Apache有了足夠多的認(rèn)識,知道自己要進(jìn)行哪些定制操作時,才可考慮親手生成(編譯)Apache。
如果已經(jīng)安裝好并正在運(yùn)行老版本的Apache,首先要停止它,卸載它,然后才能開始安裝新服務(wù)器。多個版本的Apache 2不能共存。
雙擊Apache 2 .msi文件。同意許可協(xié)議后,正確設(shè)置Network Domain和Server Name(如果不打算將Apache安裝到遠(yuǎn)程計算機(jī),那么設(shè)置localhost就可以了),在Administrator's Email Address區(qū)域輸入你的電子郵件地址,保持端口80/服務(wù)選項單選鈕的選中狀態(tài)。在下一個對話框中如果選擇Typical安裝,可以快速地獲得一個能實際工作的服務(wù)器環(huán)境。
安裝提示
建議將默認(rèn)安裝目錄從C:\Program Files\Apache Group變成C:\Apache或者符合8.3文件名格式的其他名稱。這樣一來,以后每次輸入Apache安裝路徑時,都不必為其添加引號。
稍候片刻,安裝向?qū)嬖V你Apache 2安裝成功。接下來惟一要做的事情就是進(jìn)行測試,請打開瀏覽器并訪問localhost,這樣應(yīng)該看到默認(rèn)的Apache 2主頁。
然后可以刪除主Web服務(wù)器目錄中的所有示例文件,它們默認(rèn)位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一個現(xiàn)成的主頁Index.html,請把它拷貝到這里;另外,也可以馬上創(chuàng)建一個空白主頁。對于未初始化的HTML,以下代碼就可以了:
<html>
<head>title=default server page</head>
<body>Default server page</body>
</html>
讓Apache 2為PHP做好準(zhǔn)備
從現(xiàn)在開始,你需要較多地以人工方式進(jìn)行安裝,不能簡單地點(diǎn)擊和選擇幾個選項了事。盡快習(xí)慣它吧,這才是Apache的方式。你需要編輯文件來設(shè)置不同的配置選項;如果操作不當(dāng),你所做的修改就會妨礙Apache的正確加載。如果設(shè)置引發(fā)錯誤,那么錯誤可能被記錄到Apache 2錯誤日志中(默認(rèn)為C:\InstallDir\Apache2\Logs\Error.log)。但能夠像這樣進(jìn)行記錄的畢竟是少數(shù),大多數(shù)錯誤只會記錄到Windows事件日志中(開始| 設(shè)置| 控制面板| 管理工具| 事件查看器)。
令人遺憾的是,在你對安裝設(shè)置進(jìn)行調(diào)試時,Windows事件日志并不是一個方便的工具。更好的做法是在命令行窗口中測試Apache服務(wù)器的加載,這樣能立即看到錯誤報告。所以,在完成了我即將討論的配置修改后,請打開一個命令行窗口,切換到Apache的binary目錄(C:\InstallDir\Apache2\bin),在那里啟動Apache。
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本編輯器來編輯。查找DirectoryIndex,定位到下面這一行:
DirectoryIndex index.html index.html.var # index.php
為了允許Apache處理PHP頁,要刪除注釋字符(#),變成:
DirectoryIndex index.html index.html.var index.php
還要允許在任何目錄中使用.htaccess文件,所以請在配置文件中查找AllowOverride,把這個設(shè)置從None改成All。保存了所做的改動后,可繼續(xù)在文本編輯器中打開該文件,因為等會兒安裝PHP時,要再次編輯這個文件。
安裝PHP
雖然可以下載PHP的源碼,但和Apache 2一樣,最好直接使用二進(jìn)制發(fā)行包。Apache 2可采取2種方式來運(yùn)行PHP程序:通過一個CGI接口來運(yùn)行(外部調(diào)用Php.exe),或者使用PHP的DLL文件在Apache的內(nèi)部運(yùn)行。后一種方式的速度較快。所以,針對每個版本的PHP,都會提供2個Windows二進(jìn)制發(fā)行包。較小的是.msi包,它會安裝CGI可執(zhí)行程序Php.exe,但其中拿掉了通過Apache DLL來運(yùn)行PHP腳本所需的模塊。較大的.zip包則包含了所有這些東西,你可以從snaps.php.net網(wǎng)站的Win32區(qū)域下載它們。文件下載完畢后,把它解壓到C:\Php(保留文件夾名稱)。除非你有絕對的把握,請同時下載PHP手冊,它有多種語言的版本可供選擇。
配置Apache 2來運(yùn)行PHP4
現(xiàn)在來到了最有趣的部分:將Apache和PHP完美地配合起來。首先,請將C:\Php\Dlls目錄中的所有DLL文件拷貝到Windows的System目錄(%windir%\System)。接著,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那個小節(jié),自己添加下面這一行:
AddType application/x-httpd-php .php
將C:\Php\Php.ini-recommended拷貝到Windows目錄(%windir%),把它重命名為Php.ini,并用文本編輯器打開它。編輯其中對doc_root、extension_dir和session.save_path進(jìn)行設(shè)置的3行,使其和下面展示的一致,注意要把InstallDir替換成你的Apache 2的安裝目錄的名稱。
doc_root = c:\apache\apache2\htdocs
extension_dir = c:\php\extensions
session.save_path = c:/temp
在session.save_path中使用正斜杠和反斜杠都是允許的。PHP手冊聲稱這些路徑參數(shù)需要在最后添加一個反斜杠,但這個說法是不正確的。在PHP 4.3中不需要這樣做。另外,如果C:\Temp不存在,請自己創(chuàng)建它。
下一步是允許Apache將PHP程序作為模塊來運(yùn)行,這要求你采取2個步驟。首先,將C:\Php\Php4ts.dll拷貝到Windows的系統(tǒng)文件夾(%windir%\System)。在Httpd.conf中找到LoadModule小節(jié),自己添加下面這一行:
LoadModule php4_module “c:/php/php4apache2.dll”
如果你出于某種原因而需要在CGI模式中運(yùn)行PHP程序(使用Php.exe),請將上面這一行變成注釋,并在Httpd.conf中添加下面這些行:
ScriptAlias /php/ "c:/php/"
Action application/x-httpd-php "/php/php.exe"
一切都搞定了嗎?
保存所做的更改后,你需要親自去證明兩點(diǎn),才能確保Apache 2/PHP 4成為一對完美的搭檔:Apache能正常加載嗎,它能正確處理PHP頁嗎?
要知道Apache是否能夠正常加載,在你已經(jīng)打開的命令行窗口中輸入以下命令:
apache –k start
另外,如果Apache正在運(yùn)行,可用以下命令重新啟動它:
apache –k restart
從命令行啟動Apache的好處在于,如果出現(xiàn)一個錯誤,Apache會立即報告它。你可能遇到的最常見的問題在于,Apache可能由于某種原因而無法加載Php4apache2.dll。如果Apache報告了這個錯誤,請按前面所述的步驟重新操作一遍,確保一切都沒有錯誤。
要知道Apache是否能正確地處理PHP頁,請用你的文本編輯器創(chuàng)建一個簡單的PHP頁,命名為Phptest.php,其中只包含下面這一行:
<? phpinfo(); ?>
將文件保存到主Web服務(wù)器目錄(C:\InstallDirectory\Apache\Apache2\Htdocs),用瀏覽器訪問http://localhost/phptest.php。如果一切正常,應(yīng)該看到一個含有PHP徽標(biāo)的網(wǎng)頁,其中包含大量設(shè)置和其他信息。要知道PHP當(dāng)前是通過CGI來運(yùn)行,還是在Apache內(nèi)部運(yùn)行,可以檢查一下環(huán)境變量orig_script_name。如果PHP通過CGI來運(yùn)行,這個變量的值就是/Php/Php.exe。如果Apache將PHP腳本作為模塊來運(yùn)行,該變量的值應(yīng)該是/Phptest.php。
雖然在Windows上安裝Apache 2和PHP并不是一件容易的事情,但也完全沒必要采取摸著石頭過河的做法。通過本文的說明,你應(yīng)該可以快速搭建起這個史上最好的、成本最低的Web開發(fā)環(huán)境。
在PHP 4.3手冊的Windows安裝小節(jié),沒有解釋如何讓PHP與Apache 2配合使用,而有關(guān)Apache 2安裝的小節(jié)缺失了你需要的大量信息。在網(wǎng)上公布的其他安裝指南中,也包含了不少錯誤,使一些安裝人員只好不斷試驗和犯錯。例如,有些人甚至將PHP的DLL替換成其他PHP版本的DLL。OK,為了節(jié)省你的寶貴時間,我們準(zhǔn)備了這篇最權(quán)威的指南文章,幫你掃除一切煩惱。
使用正確版本的Windows
首先要說一說兼容性:Apache 2不能在Windows 95上運(yùn)行;在Windows 98上勉強(qiáng)能夠運(yùn)行,但不能作為服務(wù)使用。從4.3版本開始,PHP也不再支持Windows 95。所以,你的Windows操作系統(tǒng)必須是Windows NT、2000或者XP。
Apache 2:源碼還是二進(jìn)制?
如果你有Visual C++ 5.0或更高的版本,或者安裝了Microsoft Visual Studio,那么雖然可以根據(jù)源碼來生成Apache,但請絕對不要這樣做。在Visual Studio IDE中,Windows下的生成過程非常復(fù)雜。即使從命令行編譯,也絕對不是一件易事。所以,除非你喜歡創(chuàng)建makefile,否則最好獲得一份Windows Installer二進(jìn)制發(fā)行包,也就是一個.msi文件。等你對Apache有了足夠多的認(rèn)識,知道自己要進(jìn)行哪些定制操作時,才可考慮親手生成(編譯)Apache。
如果已經(jīng)安裝好并正在運(yùn)行老版本的Apache,首先要停止它,卸載它,然后才能開始安裝新服務(wù)器。多個版本的Apache 2不能共存。
雙擊Apache 2 .msi文件。同意許可協(xié)議后,正確設(shè)置Network Domain和Server Name(如果不打算將Apache安裝到遠(yuǎn)程計算機(jī),那么設(shè)置localhost就可以了),在Administrator's Email Address區(qū)域輸入你的電子郵件地址,保持端口80/服務(wù)選項單選鈕的選中狀態(tài)。在下一個對話框中如果選擇Typical安裝,可以快速地獲得一個能實際工作的服務(wù)器環(huán)境。
安裝提示
建議將默認(rèn)安裝目錄從C:\Program Files\Apache Group變成C:\Apache或者符合8.3文件名格式的其他名稱。這樣一來,以后每次輸入Apache安裝路徑時,都不必為其添加引號。
稍候片刻,安裝向?qū)嬖V你Apache 2安裝成功。接下來惟一要做的事情就是進(jìn)行測試,請打開瀏覽器并訪問localhost,這樣應(yīng)該看到默認(rèn)的Apache 2主頁。
然后可以刪除主Web服務(wù)器目錄中的所有示例文件,它們默認(rèn)位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一個現(xiàn)成的主頁Index.html,請把它拷貝到這里;另外,也可以馬上創(chuàng)建一個空白主頁。對于未初始化的HTML,以下代碼就可以了:
<html>
<head>title=default server page</head>
<body>Default server page</body>
</html>
讓Apache 2為PHP做好準(zhǔn)備
從現(xiàn)在開始,你需要較多地以人工方式進(jìn)行安裝,不能簡單地點(diǎn)擊和選擇幾個選項了事。盡快習(xí)慣它吧,這才是Apache的方式。你需要編輯文件來設(shè)置不同的配置選項;如果操作不當(dāng),你所做的修改就會妨礙Apache的正確加載。如果設(shè)置引發(fā)錯誤,那么錯誤可能被記錄到Apache 2錯誤日志中(默認(rèn)為C:\InstallDir\Apache2\Logs\Error.log)。但能夠像這樣進(jìn)行記錄的畢竟是少數(shù),大多數(shù)錯誤只會記錄到Windows事件日志中(開始| 設(shè)置| 控制面板| 管理工具| 事件查看器)。
令人遺憾的是,在你對安裝設(shè)置進(jìn)行調(diào)試時,Windows事件日志并不是一個方便的工具。更好的做法是在命令行窗口中測試Apache服務(wù)器的加載,這樣能立即看到錯誤報告。所以,在完成了我即將討論的配置修改后,請打開一個命令行窗口,切換到Apache的binary目錄(C:\InstallDir\Apache2\bin),在那里啟動Apache。
Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本編輯器來編輯。查找DirectoryIndex,定位到下面這一行:
DirectoryIndex index.html index.html.var # index.php
為了允許Apache處理PHP頁,要刪除注釋字符(#),變成:
DirectoryIndex index.html index.html.var index.php
還要允許在任何目錄中使用.htaccess文件,所以請在配置文件中查找AllowOverride,把這個設(shè)置從None改成All。保存了所做的改動后,可繼續(xù)在文本編輯器中打開該文件,因為等會兒安裝PHP時,要再次編輯這個文件。
安裝PHP
雖然可以下載PHP的源碼,但和Apache 2一樣,最好直接使用二進(jìn)制發(fā)行包。Apache 2可采取2種方式來運(yùn)行PHP程序:通過一個CGI接口來運(yùn)行(外部調(diào)用Php.exe),或者使用PHP的DLL文件在Apache的內(nèi)部運(yùn)行。后一種方式的速度較快。所以,針對每個版本的PHP,都會提供2個Windows二進(jìn)制發(fā)行包。較小的是.msi包,它會安裝CGI可執(zhí)行程序Php.exe,但其中拿掉了通過Apache DLL來運(yùn)行PHP腳本所需的模塊。較大的.zip包則包含了所有這些東西,你可以從snaps.php.net網(wǎng)站的Win32區(qū)域下載它們。文件下載完畢后,把它解壓到C:\Php(保留文件夾名稱)。除非你有絕對的把握,請同時下載PHP手冊,它有多種語言的版本可供選擇。
配置Apache 2來運(yùn)行PHP4
現(xiàn)在來到了最有趣的部分:將Apache和PHP完美地配合起來。首先,請將C:\Php\Dlls目錄中的所有DLL文件拷貝到Windows的System目錄(%windir%\System)。接著,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那個小節(jié),自己添加下面這一行:
AddType application/x-httpd-php .php
將C:\Php\Php.ini-recommended拷貝到Windows目錄(%windir%),把它重命名為Php.ini,并用文本編輯器打開它。編輯其中對doc_root、extension_dir和session.save_path進(jìn)行設(shè)置的3行,使其和下面展示的一致,注意要把InstallDir替換成你的Apache 2的安裝目錄的名稱。
doc_root = c:\apache\apache2\htdocs
extension_dir = c:\php\extensions
session.save_path = c:/temp
在session.save_path中使用正斜杠和反斜杠都是允許的。PHP手冊聲稱這些路徑參數(shù)需要在最后添加一個反斜杠,但這個說法是不正確的。在PHP 4.3中不需要這樣做。另外,如果C:\Temp不存在,請自己創(chuàng)建它。
下一步是允許Apache將PHP程序作為模塊來運(yùn)行,這要求你采取2個步驟。首先,將C:\Php\Php4ts.dll拷貝到Windows的系統(tǒng)文件夾(%windir%\System)。在Httpd.conf中找到LoadModule小節(jié),自己添加下面這一行:
LoadModule php4_module “c:/php/php4apache2.dll”
如果你出于某種原因而需要在CGI模式中運(yùn)行PHP程序(使用Php.exe),請將上面這一行變成注釋,并在Httpd.conf中添加下面這些行:
ScriptAlias /php/ "c:/php/"
Action application/x-httpd-php "/php/php.exe"
一切都搞定了嗎?
保存所做的更改后,你需要親自去證明兩點(diǎn),才能確保Apache 2/PHP 4成為一對完美的搭檔:Apache能正常加載嗎,它能正確處理PHP頁嗎?
要知道Apache是否能夠正常加載,在你已經(jīng)打開的命令行窗口中輸入以下命令:
apache –k start
另外,如果Apache正在運(yùn)行,可用以下命令重新啟動它:
apache –k restart
從命令行啟動Apache的好處在于,如果出現(xiàn)一個錯誤,Apache會立即報告它。你可能遇到的最常見的問題在于,Apache可能由于某種原因而無法加載Php4apache2.dll。如果Apache報告了這個錯誤,請按前面所述的步驟重新操作一遍,確保一切都沒有錯誤。
要知道Apache是否能正確地處理PHP頁,請用你的文本編輯器創(chuàng)建一個簡單的PHP頁,命名為Phptest.php,其中只包含下面這一行:
<? phpinfo(); ?>
將文件保存到主Web服務(wù)器目錄(C:\InstallDirectory\Apache\Apache2\Htdocs),用瀏覽器訪問http://localhost/phptest.php。如果一切正常,應(yīng)該看到一個含有PHP徽標(biāo)的網(wǎng)頁,其中包含大量設(shè)置和其他信息。要知道PHP當(dāng)前是通過CGI來運(yùn)行,還是在Apache內(nèi)部運(yùn)行,可以檢查一下環(huán)境變量orig_script_name。如果PHP通過CGI來運(yùn)行,這個變量的值就是/Php/Php.exe。如果Apache將PHP腳本作為模塊來運(yùn)行,該變量的值應(yīng)該是/Phptest.php。
雖然在Windows上安裝Apache 2和PHP并不是一件容易的事情,但也完全沒必要采取摸著石頭過河的做法。通過本文的說明,你應(yīng)該可以快速搭建起這個史上最好的、成本最低的Web開發(fā)環(huán)境。
相關(guān)文章
- 現(xiàn)在很多網(wǎng)站都存在跨站腳本攻擊漏洞,讓黑客有機(jī)可乘.跨站攻擊很容易就可以構(gòu)造,而且非常隱蔽,不易被查覺(通常盜取信息后馬上跳轉(zhuǎn)回原頁面)。如何攻擊,在此不作介紹,主要談?wù)勅绾畏婪丁?/div> 2015-09-09
PHP實現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實例詳解
這篇文章主要介紹了PHP實現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次),結(jié)合實例形式詳細(xì)分析了php針對二叉樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-04-04通用PHP動態(tài)生成靜態(tài)HTML網(wǎng)頁的代碼
最近研究PHP的一些開發(fā)技術(shù),發(fā)現(xiàn)PHP有很多ASP所沒有的優(yōu)秀功能,可以完成一些以前無法完成的功能,例如動態(tài)生成HTML靜態(tài)頁面,以減少服務(wù)器CPU的負(fù)載,提高用戶訪問的速度。2010-03-03redis查看連接數(shù)及php模擬并發(fā)創(chuàng)建redis連接的方法
下面小編就為大家?guī)硪黄猺edis查看連接數(shù)及php模擬并發(fā)創(chuàng)建redis連接的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12關(guān)于mysql字符集設(shè)置了character_set_client=binary 在gbk情況下會出現(xiàn)表描述是亂碼的情況
今天在處理bug的時候,又發(fā)現(xiàn)一個奇怪的問題,在設(shè)置mysql的編碼為gbk的情況下,發(fā)現(xiàn)建立出來的表,凡是表結(jié)構(gòu)無論是字段還是表結(jié)構(gòu)描述是中文的時候,建立出來的表結(jié)構(gòu)描述是亂碼,經(jīng)過排查原來是character_set_client=binary惹的禍2013-01-01最新評論