日志文件,显示GNU / Linux上的CGI错误

时间:2015-05-07 18:52:01

标签: linux bash unix

我无法找到显示的日志文件,例如"找不到文件"来自cgi脚本。

我知道它可能在/ var / log下,但是全局查找没有产生任何结果,可能该文件只能被root读取?

$ uname -a
Linux boxXXX.bluehost.com 3.12.35.1418668052 #1 SMP Wed Dec 17 20:04:02 CST 2014 x86_64 x86_64 x86_64 GNU/Linux

3 个答案:

答案 0 :(得分:0)

日志文件取决于您的配置。例如,使用Debian 8.0下的Apache 2.4,您可以:

$ ls -l /var/log/apache2/error*
-rw-r----- 1 root adm  212 mai    7 19:20 error.log
...

您必须是root用户或在组adm中才能读取该文件 /var/log/apache2/access.log。

如果您正在寻找"字符串以找到"在文件" /var/log/apache2/error.log"中, 你可以这样做:

$ sudo grep "string to find" /var/log/apache2/error.log

答案 1 :(得分:0)

您应该看到来自Web服务器的日志,例如在Debian上使用Apache,您应该查看/ var / log / apache2 / * .log

您可以在/ var / log上以递归方式使用grep

grep "file not found" -R /var/log/*

答案 2 :(得分:0)

由于邮件是在调用apache webserver时生成的,因此将记录cgi脚本写入stderr stdout)的任何错误在apache Error Log中(请参阅:Error Log)要阅读/ grep /无论错误日志如何,您必须对日志目录具有足够的读取权限日志文件。

日志文件可以位于多个位置之一。 (通常在/var/log/httpd/var/log/apache,取决于发行版),通常为(Linux中的error_log或Windows / OS2中的error.log)。两者都由ErrorLog中的httpd.conf指令控制。

如果您对日志具有读取权限,则只需grep 'file not found' /var/log/httpd/error_log(或设置的正确名称)即可查找条目。如果没有,您将需要sudosu访问权限以root身份读取文件,否则您需要向系统管理员大声抱怨您没有足够的访问权限。如果你已经尝试了以上所有但仍然有困难,请留下评论,我会进一步研究它。

您还可以通过mod_cgi或等效的方式定制记录cgi错误的格式。请参阅:CGI Debugging