2015-01-13 37 views
2

我試圖讓我的CGI腳本在我的虛擬主機上運行(它運行在FreeBSD上)。爲了調試爲什麼我不斷收到可怕的「腳本頭文件過早結束」錯誤,他們的支持建議我將所有輸出重定向到stderr,而不是它的輸入。看看如何做到這一點,我遇到了一個非常古老的RAMBO ticket,但它看起來從未實現過。輸出到REBOL2中的stderr?

根據this question的一些答案,似乎我應該可以做一個call {echo Hello, world >&2}來實現這一目標,但它不起作用。

如何在REBOL2中寫入stderr?

+0

另一個場地進行調試CGI問題的方法是添加一個'首席[「內容類型:text/plain的」 CRLF CRLF]'權的第一個'REBOL [']'標題之後的東西。 – earl

+0

不幸的是,即使只是一個帶有shebang行,REBOL頭的腳本,仍然會給我帶來錯誤。 –

+0

您可以顯示該最小CGI腳本的來源嗎? – DocKimbel

回答

0

對於我的CGI特定場景,我有一個非常糟糕的解決方法。由於在Perl(與我完全不熟悉)編寫到stderr是一個班輪,我正在打電話從Perl中REBOL腳本並打印輸出從有到標準錯誤:

#!/usr/bin/perl 

use strict; 
use warnings; 
use CGI; 

# Note the backticks 
my $the_string = `/home/public/rebol -csw test-reb.cgi`; 

print STDERR $the_string; 
0

這個網頁有一定的建議http://www.liquidweb.com/kb/apache-error-premature-end-of-script-headers/ 解決您的真正問題。也許你沒有在腳本中打印頭文件,這必須是第一件事。也許權限是不夠的,或者.r文件類型沒有被正確地添加到你的.htaccess文件中。您的(正確!)rebol核心exe文件沒有正確的權限。或者你的腳本以無限循環結束?