Apache HTTP Server 版本2.2
经常问到的问题
这个FAQ的最新版本总是可以从Apache主站点得到,位于<http://httpd.apache.org/docs/2.2/faq/>
如果你的问题在这里没有找到答案,你也可以看看Apache 1.3 FAQ ,看你的问题是否在那里有了答案。
背景
什么是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
来加速响应的发送。不幸的是,在某些系统上,Apache会在编译时检测sendfile
的存在,即使它不能正常工作。这经常发生在使用网络或其他非标准文件系统时。
这个问题的表现症状包括上述信息出现在错误日志里及对于非零长度文件请求发送零长度的响应。一般这个问题只发生在静态文件上,因为动态文件通常用不到sendfile
。
要修正这个问题,可用EnableSendfile
指令关闭服务器所有部分对sendfile
的使用即可。同时参看EnableMMAP
指令,对相似的问题有帮助。
AcceptEx Failed
如果你在win32系统上得到一个与AcceptEx
系统调用相关的错误信息,参见Win32DisableAcceptEx
指令。
Premature end of script headers
大多数导致这个错误的CGI脚本问题将会向浏览器发送一个"Internal Server Error
"错误信息。要解决这种问题参见:CGI指南。
Permission denied
error_log
中的"Permission denied
"错误伴随一个发送到客户端的"Forbidden
"信息通常表明违反了文件系统的权限,而不是Apache HTTP的配置文件出了错误。检查并确认用于运行子进程的User
和Group
有访问导致问题的文件的足够权限。同时检查一下导致问题的文件所在的目录及其所有父目录是否具有执行(搜索)权限(也就是 chmod +x
)。
最近发行的 Fedora Core 和其它Linux发行版使用了SELinux进行额外的访问控制,违反这些限制也会导致"Permission denied
"消息。参见Fedora SELinux FAQ和Apache SELinux Policy Document以获得更多信息。