当我尝试运行我的Perl CGI程序时,返回的网页告诉我:
软件错误:如需帮助,请发送邮件给网站管理员(root @ localhost),提供此错误消息以及错误的时间和日期。
以下是我在其中一个文件中的代码:
#!/usr/bin/perl
use lib "/home/ecoopr/ecoopr.com/CPAN";
use CGI;
use CGI::FormBuilder;
use CGI::Session;
use CGI::Carp (fatalsToBrowser);
use CGI::Session;
use HTML::Template;
use MIME::Base64 ();
use strict;
require "./db_lib.pl";
require "./config.pl";
my $query = CGI->new;
my $url = $query->url();
my $hostname = $query->url(-base => 1);
my $login_url = $hostname . '/login.pl';
my $redir_url = $login_url . '?d=' . $url;
my $domain_name = get_domain_name();
my $helpful_msg = $query->param('m');
my $new_trusted_user_fname = $query->param('u');
my $action = $query->param('a');
$new_trusted_user_fname = MIME::Base64::decode($new_trusted_user_fname);
####### Colin: Added July 12, 2009 #######
my $view = $query->param('view');
my $offset = $query->param('offset');
####### Colin: Added July , 2009 #######
#print $session->header;
#print $new_trusted_user;
my $helpful_msg_txt = qq[];
my $helpful_msg_div = qq[];
if ($helpful_msg)
答案 0 :(得分:6)
“请向网站管理员发送邮件”消息,您看到的是Web服务器在出现任何问题时无法处理的一般消息。解决实际问题并不是很有意思。检查错误日志以查找程序可能出现的相关错误输出。
并且,查看我发现问题的How do I troubleshoot my Perl CGI script?建议。
我的猜测是你的悬挂if()
语法错误。您发布的内容不是有效的Perl程序。
答案 1 :(得分:0)
是与suexec模块相关的东西
suExec的不正确配置会导致权限错误
suEXEC功能使Apache用户能够在不同于调用Web服务器的用户ID的用户ID下运行CGI和SSI程序。通常,当执行CGI或SSI程序时,它将作为运行Web服务器的同一用户运行。
apache建议您不要考虑使用suEXEC。 http://httpd.apache.org/docs/2.2/suexec.html
答案 2 :(得分:0)
从StackOverflow页面:How to trap program crashes with HTTP error code 500
我看到您的包括:使用CGI :: Carp(fatalsToBrowser);
...扼杀HTTP 500错误。只需删除此选项,即可使程序“正确”崩溃。