我找不到从cgi脚本显示“找不到文件”的日志文件。在GNU/Linux上显示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
我找不到从cgi脚本显示“找不到文件”的日志文件。在GNU/Linux上显示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
日志文件取决于您的配置。例如,使用Apache 2.4的Debian 8.0下,你可以有:
$ ls -l /var/log/apache2/error*
-rw-r----- 1 root adm 212 mai 7 19:20 error.log
...
必须是超级用户或组为ADM读取文件 /var/log/apache2/access.log。
如果你在寻找“字符串找到”文件“/var/log/apache2/error.log”, 你可以做一些这样的:
$ sudo grep "string to find" /var/log/apache2/error.log
'access.log'不会显示**错误**现在可以吗?是不是有'apache'的另一个单独的日志? –
你应该可以看到日志从Web服务器,例如与Apache在Debian上,你应该看看/var/log/apache2/*.log
您可以使用grep递归上的/ var/root身份登录
grep "file not found" -R /var/log/*
由于消息是属特德作为对Apache网络服务器调用的结果,由CGI脚本写入stderr
(不stdout
)任何错误都将被记录在阿帕奇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
(或您的设置的正确名称)来查找条目。如果没有,您将需要sudo
或su
访问权限以root身份读取该文件,否则您需要大声抱怨系统管理员没有足够的访问权限。如果你已经尝试了上述所有内容,但仍然有困难,请留下评论,我会进一步研究。
您还可以通过mod_cgi
或同等服务来定制记录cgi错误的格式。请参阅:CGI Debugging
有很多**它取决于... **包裹在你的问题。什么会产生错误? 'apache'等等......你有什么日志工具? ('syslog-ng'或'systemd journal'),你试图找到错误的尝试是什么?它实际上是记录还是只显示在'stderr'上?如果它是'apache',它通常在'/ var/log/httpd/error.log'(或者你的发行版的等价物) –
我说cgi脚本错误 –
我知道,我可以调用一个** cgi脚本**以许多不同的方式。从C程序,从bash,从Apache等。 –