2015-05-07 34 views
1

我找不到從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 
+1

有很多**它取決於... **包裹在你的問題。什麼會產生錯誤? 'apache'等等......你有什麼日誌工具? ('syslog-ng'或'systemd journal'),你試圖找到錯誤的嘗試是什麼?它實際上是記錄還是隻顯示在'stderr'上?如果它是'apache',它通常在'/ var/log/httpd/error.log'(或者你的發行版的等價物) –

+0

我說cgi腳本錯誤 –

+0

我知道,我可以調用一個** cgi腳本**以許多不同的方式。從C程序,從bash,從Apache等。 –

回答

0

日誌文件取決於您的配置。例如,使用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 
+0

'access.log'不會顯示**錯誤**現在可以嗎?是不是有'apache'的另一個單獨的日誌? –

0

你應該可以看到日誌從Web服務器,例如與Apache在Debian上,你應該看看/var/log/apache2/*.log

您可以使用grep遞歸上的/ var/root身份登錄

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

由於消息是屬特德作爲對Apache網絡服務器調用的結果,由CGI腳本寫入stderrstdout)任何錯誤都將被記錄在阿帕奇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