Apache HTTP服務器 2.0版本在Microsoft Windows中的使用

此文檔解釋瞭如何在Microsoft Windows平臺上安裝、配置和運行Apache 2.0。 若是你發現了bug,或者但願以其餘方式做出貢獻, 請使用咱們的 bug報告頁面
本文檔的大多數內容假定你是從一個二進制發佈版安裝Apache到Windows上。 若是你想本身編譯Apache(可能有助於開發和跟蹤bugs),參看 編譯Windows下的Apache
如今,對Windows 9x的支持是不完善的。 當前Apache 2.0並不指望在Windows 9x平臺上運行。 若是你有興趣在那方面給於幫助,請看開發者站點上的 如何加入主題的信息。 未來可能會由於某些緣由提供這方面的支持, 咱們歡迎提供使Apache可以運行在Windows 9x上的補丁。
本文檔使用到的縮寫及其意義解釋包括:
  • Windows NT: 指全部版本的基於NT核心的Microsoft Windows操做系統, 包括Windows NT, Windows 2000, Windows XP and Windows.NET Server 2003及後續版本。
  • Windows 9x: 指全部版本的定位於家庭使用的Microsoft Windows操做系統, 包括Windows 95, Windows 98 and Windows ME。
 

對操做系統的要求

Apache 2.0被設計爲在Windows NT 4.0和Windows 2000上運行。 它的二進制安裝程序只能在x86族的處理器上運行,好比Intel芯片。 Apache可能也可以運行在Windows 9x上,可是並無通過測試, 也不建議在實際工做的系統上這樣使用。 任何狀況下都必須確保TCP/IP網絡協議已經安裝。
若是在Windows 95上運行,必須安裝"Winsock2"升級補丁。 "Winsock2" for Windows 95能夠在 這裏下載。
若是在NT 4.0上運行,建議安裝Service Pack 6, 由於Service Pack 4有衆所周知的TCP/IP和Winsock完整性的問題, 在之後的Service Pack中解決了這些問題。
 

下載 Apache for Windows

關於Apache最新版本的有關信息能夠在位於 [url]http://httpd.apache.org/[/url] 的Apache web服務器上找到。那裏會列出當前發行版本、 全部最近的alpha和beta測試發行版本以及鏡像web站點和匿名ftp服務器的信息。
你應該下載帶有 .msi擴展名的Apache for Windows版本。 這是一個單一的Microsoft Installer文件,包含了Apache,能夠當即安裝並運行。 還有一個單獨的 .zip文件 打包了源碼, 能夠用Microsoft Visual C++ (Visual Studio)工具來編譯。
 

安裝 Apache for Windows

Apache的安裝須要有Microsoft Installer 1.2或更高版本。 在Windows 9x中,你能夠從 這裏 升級Microsoft Installer到2.0,在Windows NT 4.0和2000中,2.0的升級版在 這裏. Windows XP不須要這個升級。
注意,使用這個安裝包不能在同一個機器上安裝兩套Apache 2.0。 可是,在同一個機器上,安裝一個1.3系列 一個2.0系列的Apache則沒有問題。 若是你須要在同一個機器上安裝兩套不一樣的2.0版本, 則必須 用代碼編譯和安裝Apache.
運行已下載的上述Apache .msi文件。安裝程序會要求提供下列信息:
  • 安裝Apache的文件夾(缺省是 \Program Files\Apache Group\Apache, 雖然你能夠把它指定爲任何其餘文件夾)
  • 開始菜單上的名稱(缺省是"Apache Web Server")
  • 安裝類型。選擇]"Typical"選項會安裝除源碼之外的全部內容。 選擇"Minimum"選項不安裝說明手冊和源碼。若是但願安裝源碼請選擇"Custom"安裝方式。
安裝期間,Apache將會配置你所選擇安裝目錄下的 conf文件夾中的文件。 可是若是那個目錄下已有同名文件存在,原有文件將不會被覆蓋, 而新的相應的文件將會被加上 .default擴展名。 因此,舉例來講,若是 conf\httpd.conf已經存在,那麼不會對它作任何改變, 而新版本http.conf的內容將會被寫入文件 conf\httpd.conf.default。 安裝完成之後你應該檢查 .default文件中的內容看看有沒有不一樣, 若是必要,更新你原有的配置文件。
並且,若是你已經有一個名爲 htdocs\index.html的文件,它也不會被覆蓋掉 (也不會安裝 index.html.default文件)。 這意味着你在一箇舊版本Apache上安裝新版本是安全的 (可是你必須在安裝以前首先停掉原有服務器而後在安裝完成後再啓動服務器)。
安裝Apache之後,要求你應該編輯 conf目錄下的配置文件。這些 文件已在安裝期間被配置以便Apache可以從安裝目錄運行,文檔目錄被配置爲安裝 目錄下的子目錄 htdocs。在你開始真正使用以前還有不少選項須要設 置。可是爲了儘快開始,可使用安裝時自動配置的配置文件。
 

配置 Apache for Windows

Apache使用 conf目錄下的文件進行配置,與Unix系統下的版本同樣, 可是Windows版本有幾個不一樣的指令,可閱讀 Apache 文檔察看所有可用指令。
Apache for Windows主要的不一樣點是:
  • 由於Apache for Windows是多線程的,它並不像Unix版本那樣爲每一個請求使用一個單獨的進程。 而是一般運行兩個Apache進程:一個父進程,和一個處理請求的子進程。 在子進程內部由單獨的線程來處理每一個請求。
    所以"process"-管理指令族是不一樣的:
    MaxRequestsPerChild - 就像在Unix版本中的相同指令,這條指令控制一個進程退出前將爲多少個請求提供服務。 然而,與Unix不一樣的是,一個進程將即時爲全部請求而不是隻爲一個請求服務, 所以若是設置這條指令,建議將它設爲一個很大的值。 缺省的設置, MaxRequestsPerChild 0,不會引發進程老是退出。
    警告: 啓動新的子進程時將會從新讀入服務器配置文件。若是你修改了httpd.conf, 新的子進程將有可能不能啓動或者可能獲得預期以外的結果。
    ThreadsPerChild - 這是一條新的指令,用來告訴服務器應該使用多少個線程。 指明瞭服務器能夠馬上處理的鏈接的最大數量; 若是你的站點有大量的點擊,確認併爲你的站點設置這條足夠大的值。 缺省值是 ThreadsPerChild 50
  • 接收文件名做爲參數的指令必須使用Windows文件名取代Unix文件名。 可是,由於Apache內部使用Unix風格的名字,你必須使用正斜槓而不是反斜槓。 可使用盤符;若是省略,將假定使用Apache執行文件所在盤符。
  • Apache for Windows具備運行時裝入模塊的能力,不須要從新編譯。 若是Apach是e在正常狀況下編譯,它會在 \Apache\modules目錄下安裝許多可選模塊。 要激活它們或者其餘模塊,必須使用新的 LoadModule指令。 舉例來講,要激活狀態模塊,使用下列指令(除了 access.conf中的狀態激活指令之外):
    LoadModule status_module modules/mod_status.so
    也可以使用 建立可裝載模塊中的信息。
  • Apache也能夠裝載ISAPI擴展( i.e., Internet Server Applications),例如Microsoft IIS服務器和其餘一些Windows服務器所使用的。 這裏有更多相關信息。注意Apache 不能裝載ISAPI 過濾器。
  • 當運行CGI腳本時,Apache查找腳本解釋器使用的方法是由 ScriptInterpreterSource 指令配置的。
  • 因爲在Windows下管理具備像 .htaccess這樣名字的文件常常是很困難的, 你會發如今配置文件中使用 AccessFilename 指令改變使用的配置文件的名字是頗有用。
 

以服務方式運行Apache for Windows

用於指定服務名的-n選項只在Apache 1.3.7 及之後的版本中可用。 早期版本只支持缺省服務名"Apache"。
你能夠像下面這樣將Apache安裝爲Windows NT服務:
apache -i -n "服務名"
要安裝一個使用特定配置的服務,安裝時指定配置文件:
apache -i -n "服務名" -f "\my server\conf\my.conf"
要移除一個Apache服務,使用:
apache -u -n "服務名"
若是沒有指定服務名,缺省地,將使用"Apache"。
一旦服務被安裝,你可使用 -n選項和其餘選項一塊兒訪問該服務的配置文件。例如:
測試一個服務的配置文件:
apache -n "服務名" -t
啓動一個使用某服務配置文件的控制檯Apache:
apache -n "服務名"
 

關於服務依存關係的重要提示:

對於Apache發行版1.3.13更早的版本,成功運行已安裝服務所要求的依存關係並無配置。 安裝了一個早期版本Apache的服務之後, 你還必須作如下工做:
運行 regedt32
從菜單選擇窗口 - "HKEY_LOCAL_MACHINE on Local Machine"
雙擊打開 SYSTEM, 而後打開 the CurrentControlSet
滾動到Apache服務名並點擊
從菜單選擇 Edit - Add Value...
用下列值填充Add Value對話框
數值名稱: DependOnGroup
數據類型: REG_MULTI_SZ
點擊肯定
保留多字符串編輯器爲空並點擊肯定
Select Edit - 從菜單選擇 Edit - Add Value...
用下列值填充Add Value對話框
數值名稱: DependOnService
數據類型: REG_MULTI_SZ
點擊肯定
在多字符串編輯器中輸入下列列表(每行一條)
Tcpip
Afd
點擊肯定
若是你從第三方模塊、ISAPI或者其餘像ActiveState Perl那樣的附加腳本技術使用了COM或者DCOM,你可能還須要在DependOnService列表中加入Rpcss條目。爲了不沒必要要地暴露TCP端口135,Apache安裝時沒有建立那個條目。如上述步驟在找到或是建立數值名稱DependOnService,雙擊它並加入Rpcss條目到列表。
 

運行Apache服務的用戶賬號(NT/2000)

當Apache第一次被安裝爲服務(例如使用 -i選項),它會以用戶"System"(本地系統帳號)運行。 若是web服務器的全部資源都在本地系統上,這樣作會問題比較少,可是將會具備很大的安全權限來影響本地機器!
本地系統帳號是一個頗有特權的本地帳號,所以你不該該用它運行任何共享軟件應用程序。 可是,它沒有網絡權限,不能經過任何NT安全機制離開本地機器,包括文件系統、命名管道、DCOM或secure RPC。
永遠不要把網絡權限授予SYSTEM帳號!建立一個新的用戶賬號來代替它, 給這個用戶授予合適的權限,並使用"Log On As:"選項。選擇開始菜單 -> 設置 -> 控制面板 -> 服務 -> apache服務 ...並點擊"啓動服務"來訪問該設置
一個運行在本地系統帳號背景中的服務繼承了SCM(服務控制管理器)的安全背景,與任何已登陸帳號都沒有關聯,也沒有用於驗證的任何證書(域名、用戶名和密碼)。
SYSTEM帳號沒有網絡權限,所以對於服務一個Apache的共享安裝實例或者共享頁都是不可見的。若是你打算使用 任何網絡資源,下面的步驟應該有所幫助:
  • 在控制面板的服務對話框中選擇Apache並點擊啓動服務。
  • 證明服務的帳號是正確的。你可能但願爲Apache服務建立一個帳號。
  • 從新輸入密碼和確認密碼。
  • 轉到域的用戶管理。
  • 從標題欄菜單點擊策略,選擇用戶權限。
  • 選擇高級用戶權限選項。
  • 在下拉列表中,確認如下權限已授予選擇的帳號:
    • 做爲操做系統一部分運行
    • 備份文件和目錄
    • 做爲服務登陸
    • 還原文件和目錄
  • 確認選擇的帳號是user組的成員。
  • 確認選擇的帳號得到了訪問全部文檔腳本目錄的權力(最少須要讀取和瀏覽訪問)。
  • 確認選擇的帳號對Apache日誌目錄有讀/寫/刪除訪問權限!
若是你容許使用這個賬號登陸爲一個用戶,你就能夠本身登陸上去測試執行腳本、讀取web頁的權限,還能夠用控制檯窗口啓動Apache。若是這樣工做正常,你又執行了上述的操做,那麼Apache就可以正常地做爲服務運行了。
錯誤代碼2186是一個很好的提示,說明你須要檢查"log On As"選項,由於服務器不能訪問必要的網絡資源。
 

Apache for Windows做爲服務運行的故障分析

當啓動Apache爲服務的時候你可能會遇到一個來自Windows服務管理器的錯誤信息。 例如,若是你想使用控制面板中的服務小程序啓動Apache,可能會獲得下面這條信息:
Could not start the apache service on \\COMPUTER
Error 1067; The process terminated unexpectedly.
啓動Apache時一出現問題你就會獲得這個錯誤信息。爲了弄清是什麼引發了錯誤, 你應該遵循 從命令行運行Running Apache for Windows中的建議。
還有,若是Apache做爲服務運行,Apache 1.3.13 目前在Windows NT/2000下把啓動錯誤記錄在應用程序事件日誌裏。 運行事件察看器並選擇應用程序日誌檢查相應紀錄。
即便沒有錯誤信息彈出警告你發生了錯誤,也應該用事件查看器檢查應用程序日誌以防有錯誤發生。
 

從命令行運行Apache

要了解從命令行控制Apache服務的細節,請參照 控制檯命令行部分。
 

控制服務方式的Apache

能夠以服務方式安裝並運行Apache的多個實例。像下面這樣啓動、重啓及關閉/中止Apache服務:
apache -n "服務名" -k start
apache -n "服務名" -k restart
apache -n "服務名" -k shutdown
apache -n "服務名" -k stop
對於缺省的"Apache"服務,選項 -n仍然須要,由於若是命令中使用 -k選項而沒有 -n 選項的話,命令會做用在運行於控制檯窗口的Apache上。引號只是在服務名含有空格時纔是必要的。
注意-k shutdown的別名-k stop只是到了1.3.13版本才被引入。 早期版本的Apache只認識 -k shutdown選項。先於1.3.3版本的Apache不認識 任何 -k選項!
此外,你可使用NT本機命令 NET來啓動和中止Apache服務,像這樣:
NET START "服務名"
NET STOP "服務名"
一樣,引號只是在服務名含有空格時纔是必需的。
 

高度試驗性的Windows 95/98 服務

只有Apache 1.3.13 及之後版本纔有Windows 95 and 98 下的服務選項。早期版本的Apache在Windows 95/98 下只支持控制檯窗口方式運行。
對於讓Apache在Windows 95/98 下以相似Windows NT/2000服務的方式運行有一些支持。都是 高度試驗性的, 即便可以工做,Apache軟件基金會將不會證明其可靠性和將來的支持。繼續進行你本身的冒險吧!
一旦你確認Apache在 命令行提示符下正確工做,你就能夠像在Windows NT/2000版本下那樣用一樣的命令安裝、控制和卸載Apache服務。
可是,其中有至關大的區別你須要注意:
若是你輸入下列命令,Apache會嘗試啓動,若是成功他將在後臺運行:
Apache -n "服務名" -k start
例如,經過桌面的快捷方式運行,若是服務啓動成功一個控制檯窗口會快速閃過並馬上消失。 若是啓動時Apache檢測到好比 httpd.conf文件中有不正確的設置這樣的問題,則控制檯窗口會保持可見。 這樣將顯示一個有助於追蹤錯誤緣由的錯誤信息。
Windows 95/98 不支持 NET START或者 NET STOP命令,所以你在命令中必須使用Apache的服務控制選項。 你可能但願爲每一個命令設置一個快捷方式以便你可以只須要從開始菜單或者桌面一點就能執行所需的操做。
Apache和Windows 95/98 沒有提供讓Apache服務以特定的具備網絡權限的用戶身份運行的支持。 實際上,Windows 95/98 在本地機器上根本沒有提供安全性。這就是Apache軟件基金會從不支持使用Windows 95/98 做爲公用httpd服務器的緣由。這個便利存在的惟一目的是協助用戶開發web內容和學習Apache服務器,或者也許在一個安全的、私有的網絡上充當intranet服務器。
 

安裝的測試

啓動Apache運行之後(無論是控制檯窗口仍是做爲服務), 它會在80端口上進行監聽(除非你改變了配置文件中的 Listen指令。 要鏈接到服務器訪問默認頁面,啓動一個瀏覽器並輸入下列URL:
[url]http://localhost/[/url]
應該出現一個歡迎頁面做爲應答,而且頁面上有到Apache用戶手冊的連接。 若是什麼都沒有發生或是獲得了一個錯誤,檢查 logs文件夾中的 error_log文件。若是你的主機沒有聯網,你也許須要輸入這樣的URL:
[url]http://127.0.0.1/[/url]
一旦你的基本配置能夠工做了,你應該編輯 conf目錄下的文件來恰當地配置Apache。 此外,若是你改變了做爲NT服務運行的Apache的配置, 你應該首先嚐試從命令行啓動來保證可以無錯地啓動Apache服務。
由於Apache 不能 與其餘TCP/IP應用程序共享同一個端口, 你可能須要先中止或者卸載某些特定的服務。這包括(但不限於) 別的web服務器和BlackIce那樣的防火牆。若是你只能在禁止其餘服務的狀況下啓動Apache, 那麼須要從新配置Apache或者其餘程序使它們不監聽同一個TCP/IP端口。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Apache是開放源代碼的Web服務器軟件,是最經常使用的Web服務器。Apache經常使用在unix系統,也有windows平臺的版本。本文以windows平臺爲例,介紹Apache的安裝和配置方法。

由於Apache對asp支持得很差,若是您的網站用到了asp,建議您使用win 2000 server + IIS。



安裝Apache



1、下載

windows平臺的Apache能夠在這個網址下載:

[url]http://nagoya.apache.org/mirror/httpd/binaries/win32/[/url]

Apache的版本目前有兩個分支:1.3.x和2.0.x。初學者用1.3.x就能夠了。本文以1.3.x爲例。

在上面的網址裏,包含了兩個分支的最新版本。請選擇後綴爲「exe」或「msi」的安裝文件下載。



2、安裝

運行下載的Apache文件,便可開始安裝。Apache的安裝過程很簡單。只須要設置下面這個窗口:



在「Network Domain」裏輸入域。若是用本站的二級域名,例如「test.dnschek.net」,請輸入「test.dnschek.net」。若是用頂級域名,請輸入「xxx.com」。

在「Server Name」裏輸入服務器名。若是用本站的二級域名,請輸入您的域名「test.dnschek.net」。若是用頂級域名,請輸入「[url]www.xxx.com[/url]」。

在「Administrator's Email Address」裏輸入網站管理員的Email地址。

除此以外,安裝過程裏全部的選項,所有用默認選項就能夠了。



3、運行

一、Win 9x:

Apache安裝後,會在「開始」->「程序」裏增長一個「Apache HTTP Server」的組。進入該組,選擇「Control Apache Server」->「Start」便可啓動Apache。

二、Win NT/2000/XP/2003

在這些系統裏,用默認選項安裝的Apache,除了在「開始」->「程序」裏增長一個「Apache HTTP Server」的組以外,還會在系統的服務裏增長一個Apache服務。該服務被設置爲系統啓動時自動運行。



配置Apache



1、配置文件

Apache是一個後臺運行的程序,沒有界面。全部的配置,都包含在配置文件裏。主配置文件是:

C:\Program Files\Apache Group\Apache\conf\httpd.conf

若是要修改Apache的配置,能夠用任何一個文本編輯工具(例如記事本)編輯這個配置文件。在配置文件裏,以「#」開頭的行是註釋行。



2、配置選項

在配置文件裏的主要選項以下:



#Listen 3000
#Listen 12.34.56.78:80

Apache的IP地址和端口。通常來講不須要設置,Apache會綁定在本機全部IP地址的80端口上。



Port 80

Apache的端口。默認值是80。



ServerName test.dnschek.net

Web服務器的名字。安裝時輸入的「Server Name」就是保存在這裏。



DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"

這是網站的根目錄。若是您想把網站文件存放在「D:\myweb」目錄下,能夠把DocumentRoot後面的目錄修改成「D:/myweb」。



Options Indexes FollowSymLinks MultiViews

爲了安全起見,請把上面的「Indexes」刪掉。不然別人能夠瀏覽到您網站裏的全部文件。



DirectoryIndex index.html

默認首頁文件名。在瀏覽器裏輸入一個地址(例如[url]http://test.dnschek.net/[/url])的時候,Apache會查找這個默認的首頁文件打開。若是要配置多個默認首頁文件名,請用空格分開。



ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"

CGI文件存放路徑。



3、高級配置


一、設置虛擬目錄

在配置文件中找下面這行:

<IfModule mod_alias.c>

在這行下面添加以下內容:

Alias /vdir/ "c:/comexe/"

<Directory "c:/comexe/">
Options MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

這樣,經過訪問 [url]http://test.dnschek.net/vdir/[/url],就能夠訪問到c:\test\目錄下的內容。

Apache默認開設了兩個虛擬目錄:「/icons/」和「/manual/」。這兩個虛擬目錄沒有用,能夠在配置文件中刪除。



二、如何解決中文網頁顯示亂碼

(1)在配置文件中找包含「AddLanguage」或「AddCharset」的行,在這些行最前面增長一行:

AddDefaultCharset GB2312

(2)養成良好的習慣,在每一個網頁的<head></head>里加入這行:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

通常的中文版網頁編輯工具(例如FrontPage、Dreamweaver等)都會自動加上這行。



三、如何解決中文文件名沒法訪問

在ie中選擇 工具 -> internet選項 -> 高級 -> 取消「老是以UTF-8發送URL」。

這個方法很麻煩,請儘可能不要使用中文的網站文件名。



請注意:

一、Apache配置過程當中最關鍵的兩點是:網站根目錄和默認首頁文件名。必需要把網站文件放在所指定的網站根目錄下,並且默認首頁文件名必需要設置正確,不然將看不到您的網頁。

二、每次配置文件更改後,要從新啓動Apache纔會生效。

———————————————————————————————— css

特別聲明:-- html

1、本文爲原創,著做權及使用權爲(做者筆名:閃電cto)本人全部。 ­ web

2、本文首發於51cto我的博客(http://xudeqiang.blog.51cto.com)。  ­ apache

3、本文只供互聯網上的讀者分享,不供共享範疇,希知。 ­ 小程序

4、未經許可嚴禁對本文做修改、節選、斷章性質的處理。 ­ windows

5、可轉載,但必須註明原文章首發的出處網址,及文章做者,嚴禁複製。 ­ api

6、如若轉摘用於雜誌網絡媒體新聞,必須通知做者獲得容許後方可,需收稿費。­ 瀏覽器

7、做者聯繫信息:QQ:306718122   郵箱levinboy@foxmail.com 安全

—————————————————————————————— 服務器

相關文章
相關標籤/搜索