标题：Apache HTTP Server
简介
Apache HTTP Server（简称Apache），中文名：阿帕奇，是Apache软件基金会的一个开放源码的网页服务器，可以在大多数计算机操作系统中运行，由于其多平台和安全性被广泛使用，是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展，将Perl/Python等解释器编译到服务器中。  Apache HTTP Server开发者 Apache软件基金会
最新版本： 2.2.22 （2012.1.31）/ 2.4.2（2012.4.17）
操作系统： 跨平台
类型： 网页服务器
许可协议： Apache许可证 2.0
历史
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支持许多特性，大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证方案。一些通用的语言接口支持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来进行分析。
2.x版本
Apache 的2.x版本核心在Apache 1.x版本之上作出了重要的加强。这包括:线程，更好的支持非UNIX平台（例如Windows），新的 Apache API，以及IPv6支持。
评价
· 《PC Magazine》2004年8月评出了近30年以来的10款最佳软件产品。他们其中或者是有过最辉煌的历史，或者是最具创意。其对Apache的评价是：第三名：Apache（阿帕奇，1995年推出）Apache目前已经演变成了“LAMP”，即Linux、Apache、MySQL和PHP的联合体。这是一个开放源代码软件项目，已经对微软的“.NET”战略构成严重威胁。尤其是Apache网络服务器，让用户充分体验到开发源码软件的稳定性、可靠性和可定制性。
· Apple.com评价Apache时说：Apache是服务器软件始终不断进化的大块部件，它免费但又是无价之宝。Apache是在资源开放运动中出现的绝对珍品，因为不属于个人专利而是对公共免费。一旦拥有这些源码，程序员能够自由完成所想——能在其它程序员接替工作时被赋予同样的权限来改变 和修改自己的源代码。
信息
软件名称：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日
操作系统 跨平台
类型 网页服务器
配置
配置源代码树
这一步是根据你的特定平台和个人需求配置源代码树。位于发行源代码根目录的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的要求如下：
磁盘 空间
必须保证有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://httpd.apache.org/download.cgi及其镜像站点下载。
大多数类UNIX系统的Apache用户最好的选择是下载源代码并编译一个适合自己的版本，这个过程(下面将要讲述)是很简单的，它允许你根据自己的需求进行定制。另一方面编译好的二进制版本通常没有进行及时的更新。如果你下载的是编译好的二进制版本，请按照其中的INSTALL.bindist文件进行安装。
下载完毕后，应该对下载来的tar包作PGP签名校验，以确保其完整而且未被篡改过。
启动
在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标准发行版中的所有指令。指令的描述采用统一的格式，其中用到的缩略语在指令术语字典有详细说明。
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
升级
升级的第一步是阅读源代码目录中的发布公告(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://httpd.apache.org/
Apache软件基金会官方网站 http://www.apache.org/
常见问题
背景什么是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%的WWW服务器在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消息。