Почему моя программа Perl CGI завершается с ошибкой «Software error: ...»? - PullRequest
1 голос
/ 16 марта 2010

Когда я пытаюсь запустить мою программу 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)

Ответы [ 3 ]

6 голосов
/ 17 марта 2010

Сообщение «Пожалуйста, отправьте письмо веб-мастеру», которое вы видите, является общим сообщением, которое веб-сервер сообщает вам, когда что-то идет не так и ничего не обрабатывает. Это совсем не интересно с точки зрения решения актуальной проблемы. Проверьте журнал ошибок, чтобы найти возможные соответствующие сообщения об ошибках из вашей программы.

И, пройдите мой Как мне устранить неполадки моего скрипта Perl CGI? Советы по поиску проблемы.

Я предполагаю, что у вас есть синтаксическая ошибка с этим висящим if(). То, что вы опубликовали, не является действительной программой Perl.

Удачи,

0 голосов
/ 13 июля 2018

Со страницы StackOverflow: Как перехватить сбой программы с помощью HTTP-кода ошибки 500

Я вижу, что вы включаете: используйте CGI :: Carp (fatalsToBrowser);
... душит ошибку HTTP 500.Простое удаление этого позволит программам аварийно завершить работу "правильно".

0 голосов
/ 05 февраля 2014

означает, что что-то связано с модулем suexec

Неправильная настройка suExec может вызвать ошибки прав доступа

Функция suEXEC предоставляет пользователям Apache возможность запускать программы CGI и SSI под идентификаторами пользователей, отличными от идентификаторов пользователей.идентификатор пользователя вызывающего веб-сервера.Обычно, когда выполняется программа CGI или SSI, она запускается от имени того же пользователя, который запускает веб-сервер.

apache рекомендует не использовать suEXEC.http://httpd.apache.org/docs/2.2/suexec.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...