LINUX.ORG.RU

Apache + mod_perl на gentoo


0

0

Вообщем поставил на gentoo apache, mod_perl. Создал папку /var/www/localhost/perl, в него положил index.pl

#!/usr/bin/perl

echo "\n\n";

Сделал ему +х. Добавил в /etc/conf.d/apache2 модуль -D PERL.

После чего запустил апач. Но зайдя на 127.0.0.1/perl/index.pl браузер мне предложил скачать файл index.pl. При этом в логах нет никаких ошибок. Конфиг модуля перла по дефолту (тот который в /etc/apache2/modules.d/75_mod_perl.conf). Пхп при этом прикрутилось без проблем.

Что не так, что я забыл добавить?!

★★★★★

вот тут включил PerlTrace и увидел в ошибках среди прочей отладочной инфы вот это

modperl_callback_run_handlers: no PerlChildInitHandler handlers configured ()

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

# emerge -pv apache mod_perl

These are the packages that would be merged, in order:

Calculating dependencies ... done! [ebuild R ] net-www/apache-2.0.59-r2 USE="apache2 mpm-prefork ssl threads -debug -doc -ldap -mpm-itk -mpm-leader -mpm-peruser -mpm-threadpool -mpm-worker (-selinux) -static-modules" 0 kB [ebuild R ] www-apache/mod_perl-2.0.2 0 kB

cyclon ★★★★★
() автор топика
Ответ на: комментарий от anonymous

    PerlModule ModPerl::PerlRun

    <Location  "^/perl/*.pl>
        SetHandler /var/www/localhost/perl/index.pl
        PerlResponseHandler ModPerl::Registry
        Options -Indexes ExecCGI
        PerlSendHeader On
    </Location>

    #set Apache::PerlRun Mode for /cgi-perl Alias
    <Location /cgi-perl/*.pl>
        SetHandler /var/www/localhost/perl/index.pl
        PerlResponseHandler ModPerl::PerlRun
        Options -Indexes ExecCGI
        PerlSendHeader On
    </Location>

Сделал так, но он всёравно не пашет...

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

теперь при обращении на http://127.0.0.1/cgi-perl/index.pl:

modperl_callback_run_handlers: no PerlHeaderParserHandler handlers configured (/cgi-perl/index.pl)

modperl_callback_run_handlers: no PerlAccessHandler handlers configured (/cgi-perl/index.pl)

modperl_callback_run_handlers: no PerlTypeHandler handlers configured (/cgi-perl/index.pl)

modperl_callback_run_handlers: no PerlFixupHandler handlers configured (/cgi-perl/index.pl)

modperl_filter_add_request: no OutputFilter handlers configured (/cgi-perl/index.pl)

modperl_filter_add_request: no InputFilter handlers configured (/cgi-perl/index.pl)

modperl_callback_run_handlers: no PerlLogHandler handlers configured (/cgi-perl/index.pl)

modperl_config_req_new: 0x8339610

modperl_perl_ids_get: pid=16521, uid=81, euid=81, gid=81, egid=81

modperl_callback_run_handlers: no PerlChildInitHandler handlers configured ()

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Хм, вот тут нашёл такой скриптец:

#!/usr/bin/perl -w
use strict;
use CGI;
my $q;
my $s;
$q=CGI->new();
print $q->header(-expires=>'+30s'),
        $q->start_html(-title=>"Detects everything"),
        $q->h1("Here's info from %ENV hash"),
        $q->h4("First - key, second - value");
foreach (keys %ENV) {
        $s .= "<BR>$_ has value of '$ENV{$_}'";
}
print $q->p($s),
        $q->end_html();

Так вот он работает. Но стоет убрать из первого print'а $q->header(-expires=>'+30s'), т.е. привести к виду:

print $q->start_html(-title=>"Detects everything"),
        $q->h1("Here's info from %ENV hash"),
        $q->h4("First - key, second - value");

То всё сразу перестаёт работать и браузер опять пытается выкачать перл скрипт.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Нее этот скрипт отработался с помощью CGI а CGI-Perl

GATEWAY_INTERFACE has value of 'CGI/1.1'

так что ничего не работает :(

cyclon ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Вообщем врубив PerlTrace я обнаружил одну интересную строчку в которой было:

[Wed Nov 15 13:45:30 2006] [error] [client 127.0.0.1] malformed header from script. Bad header=QQQP/1.0 200 OK: index.pl
[Wed Nov 15 13:45:30 2006] [warn] /cgi-perl/index.pl did not send an HTTP header

Вот сам скрипт:

perl # cat index.pl
#!/usr/bin/perl

print "QQQ";

Погуглив немного я обнаружил как должен выглядеть этот самы хидер:

print "Content-Type: text/html\n\n";

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.