`
wayne173
  • 浏览: 363256 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache服务器故障排除攻略

阅读更多
随着网络技术的普及、应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一。原有的客户端/服务器模式正在逐渐被浏览器/服务器模式所取代。本文将重点Apache 服务器的故障排除的技巧。 http://www.poluoluo.com/jzxy/200809/45669.html

一、检查配置文件的错误

    Apache服务器的设置文件位于/etc/httpd/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。在新版本的Apache中,所有的设置都被放在了httpd.conf中,因此只需要调整这个文件中的设置。其中99% Apache服务器错误是配置文件有误。

1 使用apachectl configtest命令

    如果配置文件有错误,可以使用apachectl configtest命令,apachectl configtest命令可以检查出所有语法错误和逻辑错误。

实例1
下面是一个配置文件样例片断:

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.149.
</Location>
    如果黑体部分的错误写成了“<Location /server-status”少写了一个 >。 apachectl configtest命令会检查到这个问题,输出如下:
apachectl configtest
Syntax error on line 918 of /etc/httpd/conf/httpd.conf:
<Location> directive missing closing '>'
2 使用服务管理工具

     如果配置文件有错误,也可以使用GUI工具来查看。下面是实例1在GUI工具“服务配置“中的体现,如图1 。

图1 使用GUI工具检查错误
二、 学会使用错误日志

    错误日志是最重要的日志文件,其文件名和位置取决于ErrorLog指令。Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。错误日志是你的朋友。任何错误都会在错误日志中有所记载,所以你应该首先查看它。如果你的网站空间提供者不允许访问错误日志,那么你应该考虑换一个空间提供者。学会阅读错误日志,可以快速找出问题并快速解决。

1 错误日志格式

Apache 默认的错误日志配置如下:
ErrorLog logs/error_log
LogLevel warn
配置错误日志相对简单,只要说明日志文件的存放路径和日志记录等级即可。格式为:
日期和时间 错误等级 错误消息

2 日志记录等级

下面着重说说日志记录等级,包括八个级别。
1 级英文名称emerg ,出现紧急情况使得该系统不可用,如系统宕机等
2 级alert 英文名称,需要立即引起注意的情况
3 级 英文名称crit ,危险情况的警告
4级 英文名称error ,除了emerg 、alert、crit 的其他错误
5级英文名称 warn。 警告信息
6级英文名称 notice ,需要引起注意的情况,但不如error、warn 重要
7级英文名称 info ,值得报告的一般消息
8级英文名称 debug, 由运行于debug 模式的程序所产生的消息

错误日志文件举例

    错误日志的格式相对灵活,并可以附加文字描述。某些信息会出现在绝大多数记录中,一个典型的例子是:
[Wed Oct 11 14:32:52 2007] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
其中,第一项是错误发生的日期和时间;第二项是错误的严重性,LogLevel指令使只有高于指定严重性级别的错误才会被记录;第三项是导致错误的IP地址;此后是信息本身,在此例中,服务器拒绝了这个客户的访问。服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。错误日志中会包含类似上述例子的多种类型的信息。此外,CGI脚本中任何输出到stderr的信息会作为调试信息原封不动地记录到错误日志中。用户可以增加或删除错误日志的项。但是对某些特殊请求,在访问日志(access log)中也会有相应的记录,比如上述例子在访问日志中也会有相应的记录,其状态码是403,因为访问日志也可以定制,所以可以从访问日志中得到错误事件的更多信息。
4 检查Apache服务器模块问题

    如果Apache服务器可以启动,但是某些功能无法实现,比如前面介绍的Webdav 功能,通常是提供这个功能的模块没有加载,此时可以使用命令:“httpd -M”查看模块加载情况。

    它会输出一个已经启用的模块列表,包括静态编译在服务器中的模块和作为DSO动态加载的模块。也可以使用浏览器访问http://192.168.1.12/server-info/?list 获取如图2 。


图2 模块加载情况

5查看Red Hat 发布的Apache 2.x 的相关信息

执行如下的步骤可以查看Red Hat 发布的Apache 2.2.3 的一些相关信息。

(1)查看编译配置参数
使用httpd -V 命令,
httpd -V
Server version: Apache/2.2.3
Server built: Nov 29 2006 06:33:19
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
从以上的输出可以了解Apache 服务器版本和编译的参数。
(2)查看已经被编译的模块

使用httpd -l命令,
httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
    说明:被编译的模块中包含mod_so.c,表示当前的Apache 支持Dynamic Shared Objects(DSO),即用户可以在不重新编译Apache 的情况下使用APache eXtenSion(apxs)编译Apache 的第三方模块。被编译的模块中包含prefork.c 表示Red Hat 发布的Apache 是使用预派生(Profork)MPM 模式运行的。


三 解决Apache 服务器故障的步骤

1 检查错误日志!

    Apache服务器在遇到问题时会尽力做到对你有所帮助。在许多情况下,它会通过在错误日志中写入一条或多条消息来提供一些细节。有时这已经足够让你自己诊断和解决问题了(比如文件权限或类似的问题)。错误日志的默认位置在/usr/local/apache2/logs/error_log ,但是最后还是看看配置文件中的ErrorLog指令以确认错误日志在你服务器上的确切位置。

2 再一次检查语法

    Apache 配置文件是httpd.conf 长度通常在80-990行,几乎99%Apache 故障是语法错误引起的。可以手工检查/etc/httpd/conf/httpd.conf,也可以通过浏览器输入:http://192.168.1.12/server-info?config 获取当前配置文件,如图3 。

图3 当前Apache服务器配置文件
说明:此时系统会自动添加行号。

3 察看Apache的FAQ!

    最新版本的Apache常见问题列表总是可以从Apache主站点得到,http://httpd.apache.org/docs/2.2/faq/ 。

4 察看Apache bug数据库

    大多数报告给Apache项目组的问题都记录在bug数据库中。在你添加一个新bug之前,请务必检查已有的报告(打开的和关闭的)。如果你发现你的问题已经被报告了,请不要添加一个"我也是"那样的报告。如果原始报告还没有关闭,我们建议你经常周期性地来看看它。你也可以考虑与最初的提交者接触,因为有可能会在邮件交流中发现没有记录在数据库中的问题。

5 在某个用户论坛中提问

    Apache拥有一个活跃的、愿意共享知识的用户社区。参与这个社区通常是获得解答的最快最好的办法。
    Apache用户邮件列表:http://httpd.apache.org/userslist.html

6 提交问题报告到bug数据库

    如果做了以上几个合适的步骤而没有得到解答,那么请务必让httpd的开发者了解这个问题,到这里(http://httpd.apache.org/bug_report.html )提交bug报告。

7 获取商业支持

    可以从下面的网址获取商业网站服务商的技术支持:http://www.apache.org/info/support.cgi

8 了解Apache服务器的网络资源的相关文档

    Apache 服务器是使用最广泛的web服务器,它的版本很多。从以下的网络资源中可以获取大量有用的提示可以帮助您快速解决故障和建立web服务。
通用Apache文档:http://httpd.apache.org/docs-2.0
Apache FAQ:http://www.apache.org/foundation/faq.html
1.3 版本FAQ:http://httpd.apache.org/docs/misc/FAQ.html
邮件列表:http://httpd.apache.org/userslist.html
分享到:
评论

相关推荐

    服务器故障排除方法.docx

    服务器故障排除方法和备份策略 服务器作为企业的关键基础设施,承载着大量的数据、应用程序和网站等核心资源。然而,服务器也会出现各种故障,例如硬件问题、软件问题、网络问题等,这些故障可能导致服务中断和数据...

    apache故障排除

    ### Apache 故障排除:无法启动的解决方法 在IT运维和Web开发领域,Apache作为全球最广泛使用的Web服务器之一,其稳定性和可定制性深受用户喜爱。然而,在配置或运行过程中,Apache可能会遇到各种问题,其中最常见...

    计算机网络故障诊断与排除第8讲:服务器故障诊断与排除.ppt

    - **Apache服务器故障排除**:Apache是常见的Web服务器,可能会遇到目录访问权限错误和验证模式错误,需要调整配置文件或修复权限设置。 - **SAMBA排错**:SAMBA用于Windows和Linux之间的文件共享,故障可能涉及配置...

    Apache服务器配置与使用工作笔记.pdf

    8. 日志管理与故障排除 - 理解日志格式,包括访问日志和错误日志的作用和使用。 - 分析日志文件以诊断和解决常见的服务器运行问题。 9. 模块管理 - Apache的模块化架构,模块的加载和卸载方法。 - 掌握常用模块...

    linux的服务器搭建与配置

    五、Apache 服务器故障排除 在使用 Apache 服务器时,可能会遇到一些故障,以下是一些常见的故障排除方法: * 查看服务器的日志 * 使用调试工具 * 检查配置文件 * 联系专业人士 Apache 服务器是 Linux 服务器搭建...

    Apache 服务器 2.0版本中文帮助文档

    13. **故障排除和常见问题**:提供常见问题的解决方案,帮助用户快速解决遇到的问题。 这个chm文件包含了以上所有内容,对于Apache 2.0的使用者来说,是一份非常宝贵的参考资料。无论是初学者还是经验丰富的管理员...

    RedHat Linux下配置管理Apache服务器.doc

    Apache 服务器的故障排除是非常重要的,可以帮助管理员快速解决服务器的问题。常见的故障排除方法包括查看日志文件、使用调试工具等。 9. Apache 服务器的升级和备份 Apache 服务器的升级和备份是非常重要的,可以...

    APACHE COOKBOOK中文版

    8. **故障排除**:提供一系列常见问题的解决方案,帮助管理员快速诊断和解决问题。 9. **日志管理**:详细介绍如何配置和分析Apache日志,这有助于监控服务器健康状况和网站流量。 10. **平台特定的配置**:可能...

    Linux平台下搭建Apache+Tomcat服务器

    1. 服务器日志是记录服务器操作和错误信息的文件,用于服务器维护和故障排除。 2. 网站发布是将网站程序部署到服务器上,使其能够被访问和使用。 六、总结 Linux平台下搭建Apache+Tomcat服务器需要完成JDK安装、...

    apache http服务器2.0文档.rar

    而"中国IT认证实验室学习下载频道.txt"可能是提供学习资源和教程的链接或说明,帮助用户更好地理解和操作Apache服务器。 总的来说,Apache HTTP Server 2.0文档将涵盖这些特性和更多内容,包括安装指南、配置选项、...

    apache2.2开发手册

    9. **故障排除**:提供常见问题的解决方案,帮助用户快速解决遇到的问题。 10. **模块索引**:列出所有可用的Apache模块,解释它们的功能和用法。 这份手册对于初学者来说,是一份很好的入门教程,它详尽地讲解了...

    Apache HTTP Server Documentation Version 2.2.pdf

    综合来看,Apache HTTP Server 2.2文档为管理员提供了一套详尽的指南,涵盖了从基本的安装和配置到高级的性能调优和故障排除,使得用户能够充分利用Apache的全部功能。文档中的每个部分都是独立的,用户可以根据需要...

    Apache 2.2中文手册

    9. **故障排除与最佳实践**:手册通常包含丰富的故障排除指南和最佳实践建议,帮助管理员解决日常维护中的问题。 通过阅读这份Apache 2.2中文手册,无论是初学者还是经验丰富的管理员,都能从中获取到宝贵的知识,...

    浅析监视并记录Apache网站服务器的运.doc

    ### 监视并记录Apache网站服务器的运行 #### 一、引言 ...无论是日常维护还是故障排除,这些记录都将成为宝贵的资源。此外,结合第三方模块和工具,还可以进一步增强日志分析能力,提高网站的可靠性和性能。

    apache 2.2 完全手册

    总之,“Apache 2.2完全手册”会深入探讨这些主题,并提供详细的配置示例和故障排除策略,是管理和优化Apache服务器的宝贵资源。通过深入学习,你可以更好地驾驭这个强大的Web服务器,为你的网站提供高效、安全的...

    Apache2.2.21 安装包

    这个安装包包含了运行Apache服务器所需的所有组件,使得用户能够在其计算机上部署和管理自己的网站或应用程序。在本文中,我们将深入探讨Apache 2.2.21的主要特性和安装过程。 1. **Apache特性**: - **模块化设计...

    Apache权威指南(英文版)

    9. **故障排除与维护**:书中包含了丰富的故障排除技巧和日常维护策略,帮助你在遇到问题时快速找到解决方案。 10. **最新特性与更新**:虽然这是第三版,但书中通常会涵盖当时版本的主要特性,可能包括FastCGI、...

    Apache官方中文文档

    这个官方中文文档提供了全面的指导和参考资料,帮助用户理解和配置Apache服务器。文档涵盖了从基础安装到高级特性的广泛内容,适合初学者和经验丰富的管理员参考。 1. **安装与配置**: - **安装过程**:Apache的...

    Apache2.2详细操作手册

    以上只是Apache2.2操作手册中的一部分内容,完整的手册将深入讲解每个主题,包括更多高级特性、故障排除技巧以及最佳实践。对于任何希望深入了解和管理Apache服务器的人来说,这是一份不可或缺的学习资料。

    Windows+APACHE服务经常故障怎么办.docx

    ### Windows + Apache 服务频繁故障解决方案 #### 一、问题背景 在使用Windows 2021 Server作为操作系统,搭配Apache、PHP与MySQL构建Web服务器的过程中,遇到一个较为罕见且令人头疼的问题:Apache服务在运行一段...

Global site tag (gtag.js) - Google Analytics