Преждевременный конец заголовков сценария - Что, я понятия не имею! - PullRequest
2 голосов
/ 14 сентября 2010

Я пытаюсь выполнить простой Perl-скрипт на моем сервере, и я получаю внутренний сервер 500, и когда я проверяю журналы ошибок, он показывает:

Premature end of script headers: test.pl

Вот Perlscript:

#!/usr/bin/perl -w
print "Content-type: text/plain\n\n";
print "testing...\n";

Моя папка cgi-bin имеет разрешения 0755. Сам сценарий также является 0755. Сценарий принадлежит apache и входит в группу apache.Скрипт работает нормально через командную строку.

В чем проблема и как я могу это исправить?!

Спасибо всем за любую помощь!

Обновление

Интересная находка в suExec:

2010-09-14 17:38:28]: uid: (10001/som) gid: (2522/2522) cmd: test.pl
[2010-09-14 17:38:28]: target uid/gid (10001/2522 or 2521) mismatch with directory (48/0) or program (48/0)

Но моя cgi-папка такая же, как сценарий test.pl - ссылается ли она на другой каталог?

Ответы [ 3 ]

8 голосов
/ 14 сентября 2010

Множество полезных советов: Как я могу устранить неполадки моего CGI-скрипта Perl .

Обновление, увидев ваше сообщение об ошибке suexec: похоже, вашему серверу нужна программа CGI, которая принадлежиттот же пользователь, что и каталог.Попробуйте изменить владельца файла.

3 голосов
/ 14 сентября 2010

Существует множество хороших советов по устранению неполадок для сценариев Perl, которые выдают это сообщение об ошибке на PerlMonks: начинать здесь . Я не вижу особых ошибок в вашем скрипте, и похоже, что вы рассмотрели права доступа к файлу, поэтому я бы начал с предложений по настройке Apache.

0 голосов
/ 14 сентября 2010

Использовать модуль CGI, например

use CGI qw/:standard/;
$q = CGI->new;
print $q->header('text/html');
print "testing...\n";     
...