Ich versuche gerade vergeblich mod_perl auf einem Server mit Debian 'lenny' zum laufen zu bekommen.
Hier das Schema meines Handlers, wie er bei mir unter einem halbwegs aktuellen Gentoo problemlos läuft:
1
2
3
4
5
6
7
8
9
10
11
12
sub handler($) {
my $r = shift;
my $templ = select_template($r);
my $vars = fetch_data_for_output($r);
my $tt = Template->new(...);
$r->content_type('text/html');
$tt->process($templ,$vars,$r);
return Apache2::Const::OK;
}
Template::process() übergibt die erzeugte HTML-Seite dabei mittels
$r->print(...) an den Webserver.
Unter Debial 'lenny' bekomme ich stattdessen folgende Fehlermeldung:
output_handler() cannot determine target type (Apache2::RequestRec=SCALAR(0xa1c24e8))
Ursache: Unter Lenny liefert
$r->can('print') FALSE während es unter Gentoo
TRUE zurückgibt.
Fragen:
Liegt das an der veralteten Version von libapache2-mod-perl2 unter lenny?
Dass die noch kein
print() unterstützt?
Oder müsste
Apache2::RequestRec auch unter Lenny 'print' kennen?
Wenn es an ersterem liegt: Wie gibt man unter der alten Version im Handler das HTML an
Apache2::RequestRec (oder wen auch immer) weiter, damit es ausgeliefert wird?
Wenn auch unter Lenny
$r->print() funktionieren müsste ... irgendwelche Ideen, an welcher Configuratinseinstellung mein Problem liegen könnte?
Hier noch die Apache-Konfiguration:
Apache/2.2.9 (Debian) mod_fastcgi/2.4.6 PHP/5.2.6-1+lenny16 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0{/code]