我正在尝试让我的CGI脚本在我的web主机(运行在FreeBSD上)上运行。为了调试为什么我一直收到可怕的“脚本头过早结束”错误,他们的支持建议我将所有输出重定向到stderr,而不是print它。在查找如何做到这一点时,我偶然发现了一个关于它的非常旧的RAMBO ticket,但它看起来从未实现过。
根据对this question的一些回答,似乎我应该能够做一个call {echo Hello, world >&2}来实现这一点,但它不起作用。
如何在REBOL2中写入标准错误?
发布于 2015-01-15 10:37:09
对于我的特定于CGI的场景,我有一个非常糟糕的解决方案。由于在Perl中写入stderr (我对此完全不熟悉)是一行程序,因此我目前正在从Perl调用REBOL脚本,并从那里将其输出打印到stderr:
#!/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; 发布于 2015-01-15 22:34:57
这个网页有一些建议http://www.liquidweb.com/kb/apache-error-premature-end-of-script-headers/来解决你的实际问题。也许您没有在脚本中打印标题作为第一件事,这必须是第一件事。可能权限不够,或者.r文件类型没有正确地添加到您的.htaccess中作为cgi可用文件。你的(正确!)rebol core exe没有正确的权限。或者你的脚本在一个无休止的循环中结束?
发布于 2015-01-17 18:08:04
重定向Rebol cgi脚本错误的一些提示:http://www.rebol.com/docs/core23/rebolcore-2.html#section-6.2
https://stackoverflow.com/questions/27913863
复制相似问题