2012-08-31 67 views
0

我想一些日誌與Perl代碼添加到我的CGI腳本這樣的文件:無法寫入與Apache CGI腳本

open(LOG, ">/path/to/my.log") or die; 
print LOG "Some content...\n"; 
close(LOG); 

但是,日誌不會被寫入我的日誌文件,而腳本仍正確處理請求。

我對Apache,CGI和Perl不是很熟悉,所以大師們請大發雷霆。

回答

0

的問題已經得到解決:改變我的Perl腳本只重啓動Apache後生效。不知道爲什麼它的行爲,因爲我認爲Perl是一種解釋的語言,它可以在飛行中修改...

2

這可能是一個權限問題。腳本的跑步者(可能是用戶:apache,httpdnobody)沒有權限寫入文件。但是,可以肯定的是,您需要檢查$!包含的內容。當腳本運行時,請嘗試檢查Apache的ErrorLog文件。

我會重寫你的代碼:

use CGI::Carp qw(croak); 

open my $log, '>', '/path/to/my.log' or croak "Error opening file: $!"; 
print $log "Some content...\n"; 
close $log; 
+0

你的代碼看起來不錯,但它不工作...而且我找不到從'error_log'中取出任何有用的信息。我懷疑打開文件失敗了,但是在哪裏以及如何檢查'$!'的內容? –