如何在 Apache2 服务器上启用日志级别调试 [关闭]
Posted
技术标签:
【中文标题】如何在 Apache2 服务器上启用日志级别调试 [关闭]【英文标题】:How to enable loglevel debug on Apache2 server [closed] 【发布时间】:2011-08-04 05:44:20 【问题描述】:我的 error.log 包含:
由于可能的配置错误,请求超出了 10 个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。
我在 apache 配置文件上替换了 loglevel:
LogLevel debug
重新启动后,我收到相同的错误消息,但没有所谓的“回溯”。据我了解,mod_rewrite 正则表达式应该生成那 10 行重定向。
在网上搜索了很多关于 loglevel 和 mod_rewrite 的解释,但没有一个关于如何使 loglevel 调试工作的词。
有什么想法吗?
【问题讨论】:
这是一个相关问题,不应关闭。请投票重新开放。 【参考方案1】:请注意,在较新的 Apache 版本上,RewriteLog
和 RewriteLogLevel
已被删除,实际上现在在尝试启动 Apache 时会触发错误(至少在我使用 Apache 2.4.2 安装的 XAMPP 上):
AH00526:path/to/config/file.conf 的第 xx 行语法错误: 无效的命令“RewriteLog”,可能拼写错误或由未包含在服务器配置中的模块定义`
相反,您现在应该使用通用 LogLevel
指令,级别为 trace1
至 trace8
。 'debug' 没有在日志中为我显示任何重写消息。
示例:LogLevel warn rewrite:trace3
官方文档,see here。
当然这也意味着现在你的重写日志将写入通用错误日志文件中,你必须自己整理出来。
【讨论】:
对于整理终端命令grep
非常有帮助。
在 Apache 2.4 中,LogLevel 指令位于 Ubuntu 上的 /etc/apache2/apache2.conf
中。似乎很明显,但我花了一秒钟才弄清楚。【参考方案2】:
编辑:请注意,此答案已有 3 年以上的历史。对于较新版本的 apache,请参阅 sp00n 的答案。将此答案留给旧版本 apache 的用户。
对于旧版本的 apache:
对于调试 mod_rewrite 问题,您需要使用 RewriteLogLevel 和 RewriteLog:
RewriteLogLevel 3
RewriteLog "/usr/local/var/apache/logs/rewrite.log"
【讨论】:
这应该放在 .htaccess 文件中吗? @adityamenon 如果您使用的是 apache 2.3.6 或更高版本,它可以进入 .htaccess,否则必须进入 vhost 定义。【参考方案3】:您需要在较新版本中将LogLevel rewrite:trace3
用于您的httpd.conf
http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
【讨论】:
请记住阅读该页面上的警告:“对 mod_rewrite 使用高跟踪日志级别会显着降低 Apache HTTP 服务器的速度!使用高于 trace2 的日志级别仅用于调试!”跨度>以上是关于如何在 Apache2 服务器上启用日志级别调试 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章