複製鏈接
請複製以下鏈接發送給好友

Apache HTTP Server

鎖定
Apache HTTP Server(簡稱Apache),是Apache軟件基金會的一個開放源代碼的網頁服務器,可以在大多數電腦操作系統中運行,由於其具有的跨平台性和安全性,被廣泛使用,是最流行的Web服務器端軟件之一。
它快速、可靠並且可通過簡單的API擴展,Perl/Python解釋器可被編譯到服務器中,可以創建一個每天有數百萬人訪問的Web服務器。
中文名
Apache HTTP Server
中文名
阿帕奇
操作系統
 跨平台
許可協議
 Apache許可證 2.0

Apache HTTP Server簡介

Apache HTTP Server(簡稱Apache),中文名:阿帕奇,是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平台和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
Apache HTTP Server Apache HTTP Server
開發者 Apache軟件基金會
最新版本: 2.4.9(2014-03-17)
類型: 網頁服務器

Apache HTTP Server命名

作者宣稱因為Apache這個名字好記,所以才在最初選擇它,但是流傳最廣的解釋是(也是最顯而易見的):這個名字來自於一個事實:當Apache在1995年初開發的時候,它是由當時最流行的HTTP服務器NCSA HTTP1.3的代碼修改而成的,因此是“一個修補的(a patchy)”服務器。然而,在Apache服務器官方網站的FAQ中是這麼解釋的:“Apache這個名字是為了紀念名為Apache的美洲原住民印第安人的一支,眾所周知他們擁有高超的作戰策略和無窮的耐性。”貝倫多夫説:“我選擇阿帕奇這個名字是取其積極含義。阿帕奇族是最後一個屈服於美國政府的民族。當時我們擔心大公司遲早會參與競爭並‘教化’這塊最早的網絡之地,所以在我看來,阿帕奇是個很好的名稱,也有人説這個詞一語雙關-因為正如APAtCHy的名字所表明的那樣,他們確實是在給服務器打補丁。”無論如何,Apache 2.x分支不包含任何NCSA的程序代碼。

Apache HTTP Server歷史

Apache 起初由伊利諾伊大學香檳分校的國家超級電腦應用中心(NCSA)開發。此後,Apache 被開放源代碼團體的成員不斷的發展和加強。Apache 服務器擁有牢靠可信的美譽,已用在超過半數的因特網站中-特別是幾乎所有最熱門和訪問量最大的網站。
Apache只是Netscape網頁服務器(現在是Sun ONE)之外的開放源代碼選擇,它在功能和速度超越其他的基於Unix的HTTP服務器。1996年4月以來,Apache一直是Internet上最流行的HTTP服務器: 1999年5月它在 57% 的網頁服務器上運行;到了2005年7月這個比例上升到了69%。在2005年11月的時候達到接近70%的市佔率,不過隨着擁有大量域名數量的主機域名商轉換為微軟IIS平台,Apache市佔率近年來呈現些微下滑。而Google自己的網頁服務器平台GWS推出後,加上Lighttpd這個輕量化網頁服務器軟件使用的網站慢慢增加,反應在整體網頁服務器市佔率上,根據netcraft在2007年7月的最新統計數據,
Apache的市佔率已經降為52.65%,8月時又滑落到50.92%。儘管如此,它仍舊是現階段因特網市場上,市佔率最高的網頁服務器軟件。
作者宣稱因為這個名字好記才在最初選擇它,但是流傳最廣的解釋是(也是最顯而易見的):這個名字來自這麼一個事實:當Apache在1995年初開發的時候,它是由當時最流行的HTTP服務器NCSA HTTPd 1.3 的代碼修改而成的,因此是“一個修補的(a patchy)”服務器。然而在服務器官方網站的FAQ中是這麼解釋的:“‘Apache’這個名字是為了紀念名為Apache(印地語)的美洲印第安人土著的一支,眾所周知他們擁有高超的作戰策略和無窮的耐性”。無論如何,Apache 2.x 分支不包含任何 NCSA 的代碼。

Apache HTTP Server特性

Apache支持許多特性,大部分通過編譯的模塊實現。這些特性從服務器端的編程語言支持到身份認證方案。一些通用的語言接口支持Perl,Python, Tcl, 和 PHP。流行的認證模塊包括 mod_access, mod_auth 和 mod_digest。其他的例子有 SSL 和 TLS 支持 (mod_ssl), 代理服務器 (proxy) 模塊,很有用的URL重寫(由 mod_rewrite 實現),定製日誌文件 (mod_log_config),以及過濾支持(mod_include 和 mod_ext_filter)。Apache日誌可以通過網頁瀏覽器使用免費的腳本AWStats或Visitors來進行分析。

Apache HTTP Server版本

Apache 的2.x版本核心在Apache 1.x版本之上作出了重要的加強。這包括:線程,更好的支持非UNIX平台(例如Windows),新的 Apache API,以及IPv6支持。

Apache HTTP Server評價

· 《PC Magazine》2004年8月評出了近30年以來的10款最佳軟件產品。他們其中或者是有過最輝煌的歷史,或者是最具創意。其對Apache的評價是:第三名:Apache(阿帕奇,1995年推出)Apache目前已經演變成了“LAMP”,即Linux、Apache、MySQL和PHP的聯合體。這是一個開放源代碼軟件項目,已經對微軟的“.NET”戰略構成嚴重威脅。尤其是Apache網絡服務器,讓用户充分體驗到開放源碼軟件的穩定性、可靠性和可定製性。
·Apple網站評價Apache時説:Apache是服務器軟件始終不斷進化的大塊部件,它免費但又是無價之寶。Apache是在資源開放運動中出現的絕對珍品,因為不屬於個人專利而是對公共免費。一旦擁有這些源碼,程序員能夠自由完成所想——能在其它程序員接替工作時被賦予同樣的權限來改變 和修改自己的源代碼。

Apache HTTP Server信息

軟件名稱:Apache HTTP Server 2.2.8 for Windows
軟件大小:4920KB
軟件類別:國外軟件/服務器類
運行環境:Win9x/Me/NT/2000/XP/2003
開發者 Apache軟件基金
最新版 2.2.8/2.0.63/1.3.41 / 2008年1月19日
操作系統 跨平台
類型 網頁服務器

Apache HTTP Server配置

配置源代碼樹
這一步是根據你的特定平台和個人需求配置源代碼樹。位於發行源代碼根目錄的configure腳本會完成這個步驟(對下載Apache CVS版源代碼的開發者,需要裝有autoconf和libtool ,並需要執行buildconf ,對於官方的發行版則沒這個必要)。
要想用所有的默認值配置源代碼樹只要簡單的執行 ./configure 命令就可以了,同時configure還可以接受命令行參數以改變默認值。
最重要的選項是Apache安裝目錄的前綴:--prefix ,因為Apache需要知道這個目錄才能正常運作。更多的微調選項請參考配置選項詳解。
這樣,你就可以通過在配置選項中指定要啓用或禁用哪些模塊來定製Apache的特性。Base組的模塊默認包含在Apache中。其他組的模塊可以通過 --enable-module 指令啓用。其中module是模塊名去掉"mod_"並將下劃線轉換成連字符後的字符串。你也可以使用 --enable-module=shared 指令將模塊編譯為可在運行時加載和卸載的動態共享對象(DSO)。同樣的,你也可以使用 --disable-module 指令禁用Base組的模塊。注意,使用這些指令的時候configure不會對你拼寫錯誤的模塊發出警告説找不到某某模塊,而只是簡單的忽略這個選項。
另外,有時候還必須提供給configure腳本關於編譯器、庫、頭文件位置的更多信息。這些可以通過環境變量或者命令行選項傳遞給configure腳本。要了解更多信息,請參考配置源代碼樹。
為了讓你對能指定什麼有一個簡單的印象,此例演示編譯Apache ,並將其安裝在/sw/pkg/apache目錄,指定了一個特定的編譯器以及編譯參數,而且允許今後將兩個附加的模塊mod_rewrite和mod_speling通過DSO機制在運行時動態加載:
$ CC=‘pgcc’ CFLAGS=‘-O2’ \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared
configure需要運行幾分鐘,以測試指定的功能在你的系統中是否有效,並建立稍後編譯時所需的許多Makefile文件。

Apache HTTP Server使用要求

編譯Apache的要求如下:
磁盤 空間
必須保證有50MB以上的自由臨時磁盤空間。Apache安裝完畢後會佔據10MB左右的空間,實際的磁盤空間需求會因編譯設置和是否安裝第三方模塊而有所不同。
ANSI-C編譯器及編譯環境
必須裝有ANSI-C編譯器,推薦使用自由軟件基金會(FSF)的GCC。如果沒有GCC,那麼要確保使用的編譯器符合ANSI標準,而且PATH中必須包含指向基本編譯工具比如make的路徑。
確保準確的時間
由於HTTP協議的元素都會用到時間,有必要了解一下你的系統所使用的時間同步機制。在基於網絡時間協議(NTP)的系統中,一般是用ntpdate或xntpd來同步時間。
Perl 5 [可選]
有些用Perl寫的支持腳本,如apxs或dbmmanage ,需要Perl5解釋器(5.003或以上的版本就足夠了)。如果系統中存在多個Perl解釋器,比如有系統提供的Perl 4,還有你自己安裝的Perl 5,推薦你使用 --with-perl 選項來確保configure腳本使用正確的版本。如果configure沒有沒找到Perl 5也沒關係,這並不影響Apache httpd的編譯和安裝,只是相關的支持腳本不能使用而已。
apr/apr-util >= 1.2
apr和apr-util包含在Apache httpd的發行源代碼中,並且在絕大多數情況下使用都不會出現問題。當然,如果apr或apr-util的1.0或1.1版本已經安裝在你的系統中了,則必須將你的apr/apr-util升級到1.2版本,或者將httpd單獨分開編譯。要使用發行源代碼中自帶的apr/apr-util源代碼進行安裝,你必須手動完成:
# 編譯和安裝 apr 1.2
cd srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install
# 編譯和安裝 apr-util 1.2
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install
# 配置 httpd
cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/

Apache HTTP Server下載

Apache可以從及其鏡像站點下載。
大多數類UNIX系統的Apache用户最好的選擇是下載源代碼並編譯一個適合自己的版本,這個過程(下面將要講述)是很簡單的,它允許你根據自己的需求進行定製。另一方面編譯好的二進制版本通常沒有進行及時的更新。如果你下載的是編譯好的二進制版本,請按照其中的INSTALL.bindist文件進行安裝。
下載完畢後,應該對下載來的tar包作PGP簽名校驗,以確保其完整而且未被篡改過。

Apache HTTP Server啓動

在Windows NT/2000/XP/2003操作系統中,Apache一般以服務方式運行,或者在Windows 95/98/ME中以控制枱程序方式運行。詳情請參見以服務方式運行Apache和以控制枱程序方式運行Apache。
在Unix操作系統中,httpd程序作為一個守護進程運行,在後台不斷處理請求。本文檔描述瞭如何調用httpd 。
Apache是怎樣啓動的
如果配置文件中Listen定義的是默認的80端口(或1024以下),那麼啓動Apache將需要root權限以將它綁定在特權端口上。一旦服務器開始啓動並完成了一些諸如打開日誌文件之類的準備操作,它將創建很多子進程來完成一些諸如偵聽和迴應客户端請求的工作。httpd主進程仍然以root用户的權限運行,而它的子進程將以一個較低權限的用户運行。這將由你選擇的多路處理模塊進行控制。
調用httpd可執行文件的推薦方法是使用apachectl控制腳本。此腳本設置了在某些操作系統中正常運行httpd所必需的環境變量,然後調用httpd二進制文件。apachectl會傳遞命令行的所有參數,因此所有用於httpd的選項多半也可以用於apachectl 。你可以直接修改apachectl腳本,改變首部的HTTPD變量使之指向httpd可執行文件的正確位置,也可以設置任意的命令行參數,使之總是有效。
httpd被調用後第一件要做的事情就是找到並讀取配置文件httpd.conf 。此文件的位置是在編譯時設定的,但也可以象下面這樣在運行時用 -f 選項來指定:
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf
如果啓動過程一切正常,服務器將與終端分離並幾乎立即出現命令行提示符。這表示服務器已經啓動並開始運行。然後你就可以用你的瀏覽器去連接你的服務器來查看DocumentRoot目錄下的測試文檔及其頁面鏈接裏的其它文檔的本地副本。
啓動時發生錯誤
如果Apache在啓動過程中發生了致命錯誤,它將在退出前把描述這個錯誤的信息顯示在終端上或者寫入到ErrorLog中。一個最常產生的錯誤信息是“Unable to bind to Port ...”,這主要由以下原因造成:
想由一個特權端口啓動服務但沒有以root用户運行
啓動服務時已經有另外的Apache實例在運行或其他的web服務器已經綁定了同樣的端口
更多問題的解決辦法,請參見常見問題。
隨系統啓動時啓動
如果你希望你的服務器在系統重啓後仍保持運行狀態,你應該把apachectl的調用加入到你的系統啓動文件中(通常為rc.local文件或rc.N目錄下的某一文件)。這將會以root權限啓動Apache。當然,在此之前,你必須保證你的服務器已經完成了安全和訪問權限的設定。
apachectl腳本被設計為可以用作SysV初始化腳本,它接受start、restart、stop參數,並把它們翻譯為httpd對應的信號,所以通常都可以將apachectl連接到適當的初始目錄,但是需要檢查你的系統對此的精確要求。
額外信息
關於httpd和apachectl以及其他相關支持程序的命令行選項的詳細信息請參見服務器和支持程序頁面。其中還包括所有的隨Apache發行包發佈的模塊和它們提供的指令的文檔。

Apache HTTP Server指令索引

這裏列示了Apache標準發行版中的所有指令。指令的描述採用統一的格式,其中用到的縮略語在指令術語字典有詳細説明。
AcceptFilter
AcceptMutex
AcceptPathInfo
AccessFileName
Action
AddAlt
AddAltByEncoding
AddAltByType
AddCharset
AddDefaultCharset
AddDescription
AddEncoding
AddHandler
AddIcon
AddIconByEncoding
AddIconByType
AddInputFilter
AddLanguage
AddModuleInfo
AddOutputFilter
AddOutputFilterByType
AddType
Alias
AliasMatch
Allow
AllowCONNECT
AllowEncodedSlashes
AllowOverride
Anonymous
Anonymous_LogEmail
Anonymous_MustGiveEmail
Anonymous_NoUserID
Anonymous_VerifyEmail
AuthBasicAuthoritative
AuthBasicProvider
AuthDBDUserPWQuery
AuthDBDUserRealmQuery
AuthDBMGroupFile
AuthDBMType
AuthDBMUserFile
AuthDefaultAuthoritative
AuthDigestAlgorithm
AuthDigestDomain
AuthDigestNcCheck
AuthDigestNonceFormat
AuthDigestNonceLifetime
AuthDigestProvider
AuthDigestQop
AuthDigestShmemSize
AuthGroupFile
AuthLDAPBindDN
AuthLDAPBindPassword
AuthLDAPCharsetConfig
AuthLDAPCompareDNOnServer
AuthLDAPDereferenceAliases
AuthLDAPGroupAttribute
AuthLDAPGroupAttributeIsDN
AuthLDAPRemoteUserIsDN
AuthLDAPUrl
AuthName
AuthType
AuthUserFile
AuthzDBMAuthoritative
AuthzDBMType
AuthzDefaultAuthoritative
AuthzGroupFileAuthoritative
AuthzLDAPAuthoritative
AuthzOwnerAuthoritative
AuthzUserAuthoritative
BrowserMatch
BrowserMatchNoCase
BufferedLogs
CacheDefaultExpire
CacheDirLength
CacheDirLevels
CacheDisable
CacheEnable
CacheFile
CacheIgnoreCacheControl
CacheIgnoreHeaders
CacheIgnoreNoLastMod
CacheLastModifiedFactor
CacheMaxExpire
CacheMaxFileSize
CacheMinFileSize
CacheNegotiatedDocs
CacheRoot
CacheStoreNoStore
CacheStorePrivate
CGIMapExtension
CharsetDefault
CharsetOptions
CharsetSourceEnc
CheckSpelling
ContentDigest
CookieDomain
CookieExpires
CookieLog
CookieName
CookieStyle
CookieTracking
CoreDumpDirectory
CustomLog
Dav
DavDepthInfinity
DavGenericLockDB
DavLockDB
DavMinTimeout
DBDExptime
DBDKeep
DBDMax
DBDMin
DBDParams
DBDPersist
DBDPrepareSQL
DBDriver
DefaultIcon
DefaultLanguage
DefaultType
DeflateBufferSize
DeflateCompressionLevel
DeflateFilterNote
DeflateMemLevel
DeflateWindowSize
Deny
DirectoryIndex
DirectorySlash
DocumentRoot
DumpIOInput
DumpIOOutput
EnableExceptionHook
EnableMMAP
EnableSendfile
ErrorDocument
ErrorLog
Example
ExpiresActive
ExpiresByType
ExpiresDefault
ExtendedStatus
ExtFilterDefine
ExtFilterOptions
FileETag
FilterChain
FilterDeclare
FilterProtocol
FilterProvider
FilterTrace
ForceLanguagePriority
ForceType
ForensicLog
GracefulShutdownTimeout
Group
Header
HeaderName
HostnameLookups
IdentityCheck
IdentityCheckTimeout
ImapBase
ImapDefault
ImapMenu
Include
IndexIgnore
IndexOptions
IndexOrderDefault
IndexStyleSheet
ISAPIAppendLogToErrors
ISAPIAppendLogToQuery
ISAPICacheFile
ISAPIFakeAsync
ISAPILogNotSupported
ISAPIReadAheadBuffer
KeepAlive
KeepAliveTimeout
LanguagePriority
LDAPCacheEntries
LDAPCacheTTL
LDAPConnectionTimeout
LDAPOpCacheEntries
LDAPOpCacheTTL
LDAPSharedCacheFile
LDAPSharedCacheSize
LDAPTrustedClientCert
LDAPTrustedGlobalCert
LDAPTrustedMode
LDAPVerifyServerCert
LimitInternalRecursion
LimitRequestBody
LimitRequestFields
LimitRequestFieldSize
LimitRequestLine
LimitXMLRequestBody
Listen
ListenBackLog
LoadFile
LoadModule
LockFile
LogFormat
LogLevel
MaxClients
MaxKeepAliveRequests
MaxMemFree
MaxRequestsPerChild
MaxRequestsPerThread
MaxSpareServers
MaxSpareThreads
MaxThreads
MCacheMaxObjectCount
MCacheMaxObjectSize
MCacheMaxStreamingBuffer
MCacheMinObjectSize
MCacheRemovalAlgorithm
MCacheSize
MetaDir
MetaFiles
MetaSuffix
MimeMagicFile
MinSpareServers
MinSpareThreads
MMapFile
ModMimeUsePathInfo
MultiviewsMatch
NameVirtualHost
NoProxy
NWSSLTrustedCerts
NWSSLUpgradeable
Options
Order
PassEnv
PidFile
ProtocolEcho
ProxyBadHeader
ProxyBlock
ProxyDomain
ProxyErrorOverride
ProxyIOBufferSize
ProxyMaxForwards
ProxyPass
ProxyPassReverse
ProxyPassReverseCookieDomain
ProxyPassReverseCookiePath
ProxyPreserveHost
ProxyReceiveBufferSize
ProxyRemote
ProxyRemoteMatch
ProxyRequests
ProxyTimeout
ProxyVia
ReadmeName
ReceiveBufferSize
Redirect
RedirectMatch
RedirectPermanent
RedirectTemp
RemoveCharset
RemoveEncoding
RemoveHandler
RemoveInputFilter
RemoveLanguage
RemoveOutputFilter
RemoveType
RequestHeader
Require
RewriteBase
RewriteCond
RewriteEngine
RewriteLock
RewriteLog
RewriteLogLevel
RewriteMap
RewriteOptions
RewriteRule
RLimitCPU
RLimitMEM
RLimitNPROC
Satisfy
ScoreBoardFile
Script
ScriptAlias
ScriptAliasMatch
ScriptInterpreterSource
ScriptLog
ScriptLogBuffer
ScriptLogLength
ScriptSock
SecureListen
SendBufferSize
ServerAdmin
ServerAlias
ServerLimit
ServerName
ServerPath
ServerRoot
ServerSignature
ServerTokens
SetEnv
SetEnvIf
SetEnvIfNoCase
SetHandler
SetInputFilter
SetOutputFilter
SSIEndTag
SSIErrorMsg
SSIStartTag
SSITimeFormat
SSIUndefinedEcho
SSLCACertificateFile
SSLCACertificatePath
SSLCADNRequestFile
SSLCADNRequestPath
SSLCARevocationFile
SSLCARevocationPath
SSLCertificateChainFile
SSLCertificateFile
SSLCertificateKeyFile
SSLCipherSuite
SSLCryptoDevice
SSLEngine
SSLHonorCipherOrder
SSLMutex
SSLOptions
SSLPassPhraseDialog
SSLProtocol
SSLProxyCACertificateFile
SSLProxyCACertificatePath
SSLProxyCARevocationFile
SSLProxyCARevocationPath
SSLProxyCipherSuite
SSLProxyEngine
SSLProxyMachineCertificateFile
SSLProxyMachineCertificatePath
SSLProxyProtocol
SSLProxyVerify
SSLProxyVerifyDepth
SSLRandomSeed
SSLRequire
SSLRequireSSL
SSLSessionCache
SSLSessionCacheTimeout
SSLUserName
SSLVerifyClient
SSLVerifyDepth
StartServers
StartThreads
SuexecUserGroup
ThreadLimit
ThreadsPerChild
ThreadStackSize
TimeOut
TraceEnable
TransferLog
TypesConfig
UnsetEnv
UseCanonicalName
UseCanonicalPhysicalPort
User
UserDir
VirtualDocumentRoot
VirtualDocumentRootIP
VirtualScriptAlias
VirtualScriptAliasIP
Win32DisableAcceptEx
XBitHack

Apache HTTP Server升級

升級的第一步是閲讀源代碼目錄中的發佈公告(release announcement)和CHANGES文件以尋找可能會對你的站點產生影響的變化。如果主板本號的變化(例如1.3→2.0或2.0→2.2)表明編譯時和運行時的配置發生了重大變化,需要手動調整,所有模塊也需要升級以兼容新版本的模塊API 。
小幅度的版本升級(例如:2.2.55→2.2.57)很容易。make install 的過程不會改寫任何已經存在的文檔、日誌、配置文件。此外,開發者也會盡量兼容上一版本的configure選項、運行時配置、模塊API 。大多數情況下,你將能夠使用與上一版本完全相同的configure命令行和運行時配置,而你原來的所有模塊也將正常工作。
如果你保存了上一次安裝後build子目錄中的config.nice文件,升級將更加平滑。這個文件精確地保存了所有對目錄樹進行配置的configure命令行。你只需要將config.nice文件複製到新的源代碼目錄樹的根文件夾並進行你希望的修改後,然後運行下面的命令即可完成升級:
$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start

Apache HTTP Server官方網站

Apache服務器官方網站
Apache軟件基金會官方網站

Apache HTTP Server常見問題

背景什麼是Apache ?
什麼是 Apache HTTP Server ?
Apache是如何進行充分測試的?
我可以在我的產品或網站中使用Apache的logo嗎?
什麼是Apache ?
Apache軟件基金會(ASF)是一個非營利性組織,它為Apache社區的開源軟件項目提供支持。欲知詳情,請查看Apache Software Foundation FAQ頁面。
Apache HTTP Server(也被稱為Apache httpd)是Apache軟件基金會的一個創建健壯的、工業級的、功能強大的、開放源代碼的HTTP(Web)服務器的項目。欲知詳情,請查看About Apache頁面。
什麼是 Apache HTTP Server ?
一個強大的、靈活的、兼容HTTP/1.1規範的web服務器
實現了最新的協議,包括HTTP/1.1(RFC2616)
具有高度的可配置性和使用第三方模塊的可擴展性
可以通過使用Apache模塊API編寫自己的模塊進行定製
在非限制性許可證下提供所有的源代碼
可以運行在 Windows 2003/XP/2000/NT/9x 、Netware 5.x 及以上版本、OS/2 、大多數Unix版本以及其它操作系統上
被非常活躍的進行開發
鼓勵用户反饋新想法、bug報告、補丁程序
Apache是如果進行充分測試的?
Apache正在數以百萬的網絡服務器上運行。它同時經過開發者和用户的充分測試。Apache HTTP Server 項目按照非常嚴格的標準發佈服務器的新版本,並且有70%的萬維服務器在24小時不間斷地運行着我們的服務器。一旦有bug被發現,我們將以最快的速度發佈補丁程序和新版本。
我可以在我的產品或網站中使用Apache的logo嗎?
不可以使用、複製、修改任何來自Apache軟件基金會的原始圖形。
你可以在一個使用Apache作為web服務器的網站上使用Powered by Apache圖標。
當且僅當這種使用可以促進Apache的推廣時,你才可以在產品描述中使用上述Powered by Apache圖標或Apache軟件基金會logo 。嚴格禁止將Apache的名稱或圖形用於產品的簽名或者服務。
支持
我為什麼不能...?為什麼...不工作?在有問題的情況下該怎麼辦?
我要找誰尋求幫助?
如果你使用Apache服務器軟件遇到了問題,採取以下幾步:
檢查錯誤日誌!
Apache服務器在遇到問題時會盡力做到對你有所幫助。在許多情況下,它會通過在錯誤日誌中寫入一條或多條消息來提供一些細節。有時這已經足夠讓你自己診斷和解決問題了(比如文件權限或類似的問題)。錯誤日誌的默認位置在/usr/local/apache2/logs/error_log ,但是最後還是看看配置文件中的ErrorLog指令以確認錯誤日誌在你服務器上的確切位置。
再一次檢查錯誤日誌!
幾乎所有問題都可以通過閲讀錯誤日誌來解決。
察看FAQ!
最新版本的Apache常見問題列表總是可以從Apache主站點得到。
察看Apache bug數據庫
大多數報告給Apache項目組的問題都記錄在bug數據庫中。在你添加一個新bug之前,請務必檢查已有的報告(打開的和關閉的)。如果你發現你的問題已經被報告了,請不要添加一個“我也是”那樣的報告。如果原始報告還沒有關閉,我們建議你經常週期性地來看看它。你也可以考慮與最初的提交者接觸,因為有可能會在郵件交流中發現沒有記錄在數據庫中的問題。
在某個用户論壇中提問
Apache擁有一個活躍的、願意共享知識的用户社區。參與這個社區通常是獲得解答的最快最好的辦法。
用户郵件列表
Freenode IRC上的#apache頻道也是關於用户支持的。
提交問題報告到bug數據庫
如果做了以上幾個合適的步驟而沒有得到解答,那麼請務必讓httpd的開發者瞭解這個問題,到這裏提交bug報告。
如果你的問題涉及到服務器崩潰併產生了內核dump,請在報告中包含一個backtrace(如果可能)。
我要找誰尋求幫助?
因為有數百萬用户和區區不到60名志願開發者,我們無法為Apache提供個體支持。對於免費的支持,我們建議用户參與一個用户論壇。
Apache的專業商業支持可以從許多公司得到。
錯誤信息
Invalid argument: core_output_filter: writing data to the network
AcceptEx failed
Premature end of script headers
Permission denied
Invalid argument: core_output_filter: writing data to the network
Apache在可能的平台上使用系統調用sendfile來加速響應的發送(譯者注:Linux2.4/2.6內核都支持)。不幸的是,在某些系統上,Apache會在編譯時檢測sendfile的存在,即使它不能正常工作。這經常發生在使用網絡或其他非標準文件系統時。
這個問題的表現症狀包括上述信息出現在錯誤日誌裏及對於非零長度文件請求發送零長度的響應。一般這個問題只發生在靜態文件上,因為動態文件通常用不到sendfile 。
要修正這個問題,可用EnableSendfile指令關閉服務器所有部分對sendfile的使用即可。同時參看EnableMMAP指令,對相似的問題有幫助。
AcceptEx Failed
如果你在win32系統上得到一個與AcceptEx系統調用相關的錯誤信息,參見Win32DisableAcceptEx指令。
Premature end of script headers
大多數導致這個錯誤的CGI腳本問題將會向瀏覽器發送一個Internal Server Error錯誤信息。
Permission denied
error_log中的Permission denied錯誤伴隨一個發送到客户端的Forbidden信息通常表明違反了文件系統的權限,而不是Apache HTTP的配置文件出了錯誤。檢查並確認用於運行子進程的User和Group有訪問導致問題的文件的足夠權限。同時檢查一下導致問題的文件所在的目錄及其所有父目錄是否具有執行(搜索)權限(也就是 chmod +x)。
Fedora Core 和其它Linux發行版使用了SELinux進行額外的訪問控制,違反這些限制也會導致Permission denied消息。