Lighttpd + FastCGI + Perl
mrjerk
- perl
0 mrjerk
Hallo zusammen,
Ich probiere gerade etwas mit FastCGI unter lighttpd herum. Aber irgendwie blicke ich nicht, wie ich nun ein Perl-Skript darüber aufrufen kann.
Also folgende Konfiguration:
Lighttpd beinhaltet folgende Konfiguration:
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( "/fastCGI" =>
((
"bin-path" => "/usr/lib/cgi-bin/cgiTest.pl",
"socket" => "/tmp/perl.socket"
))
)
Der zugehörige Dämon unter "/usr/lib/cgi-bin/cgiTest.pl" sieht so aus:
#!/usr/bin/perl -w
use strict;
use CGI::Fast;
my $COUNTER = 0;
while (my $query = CGI::Fast->new) {
print $query->header();
print $query->start_html ("Rock on");
print $query->h1("Lets go");
print $query->end_html;
}
Dies lässt sich auch auf der Kommandozeile starten.
Der lighttpd fährt auch korrekt hoch.
Aber:
Wie rufe ich denn nun dieses Skript auf?
Ich dachte mit "http://<hostname>/fastCGI" also das, was ich in der lighttpd-Konfiguration als Key angegeben habe.
Scheinbar aber doch nicht, da kommt ein 404.
Any Ideas/Tipps?
Habes es gelöst (so halb) - fürs Archiv:
fastcgi.server = ( "/fastCGI" =>
((
"bin-path" => "/usr/lib/cgi-bin/cgiTest.pl",
"socket" => "/tmp/perl.socket"))
)
Hier muss eine Dateiendung stehen, die in der lighttpd.conf als "nicht-statisch" makriert ist - z.b. Perl (pl):
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
Also:
fastcgi.server = ( ".pl" =>
((
"bin-path" => "/usr/lib/cgi-bin/cgiTest.pl",
"socket" => "/tmp/perl.socket"
))
)
Dann muss noch ins entsprechende Verzeichnis des Servers eine Dummy-Datei (z.b. /var/www/dummy.pl) gepackt werden, damit der Server nicht schon vorher mit 404 aussteigt.
Danach verweist ein
http://<hostname>/dummy.pl immer automatisch auf den entsprechenden Server-Prozess /usr/lib/cgi-bin/cgiTest.pl.