moin.
eine kleine Ergänzung siehe untenstehend.
Gruss, Rol
=cut
Q: Wie geht FastCGI?
A:
#!/usr/bin/perl
Grundaufbau eines FastCGI - Scripts
#--BEGIN FCGI--
For FastCGI, uncomment this and comment out the above:
use FCGI;
my $i = 0;
my $req = FCGI::Request();
while ($req->Accept >= 0) {
print "Content-type: text/plain\n\n";
print $ENV{'REMOTE_ADDR'};
$i++;
print "\n $i";
}
#--END FCGI--
Erläuterungen
Ein FastCGI - Script wird bei jedem Aufruf nicht neu gestartet, es läuft praktisch
bereits im Hintergrund als Prozess auf dem Server, sofern es einmal gestartet wurde.
Der Vorteil von FastCGI besteht darin, dass der OverHead, welcher beim Starten eines CGI - Scripts
entsteht, wegfällt, besser gesagt nur beim Starten einer Instanz des FastCGI - Scripts auftritt.
Der Aufruf des obenstehenden Scripts gibt einmal die REMOTE_ADDR und die Anzahl der Aufrufe des
Scripts im Browser aus. Bei diesem CGI kannst du die Reload - Taste gedrückt halten und zuschauen
wie der Zähler hochrennt!
Ein Blick in die Prozess - Liste mit ps -ef zeigt dass beispielsweise test.fcgi läuft, und
die ProzessID (PID) ist beispielsweise 20194.
Wenn Änderungen am Script wirksam werden sollen muss an diesen Prozess ein kill - Signal gesendet
werden: kill 20194
Dann zeigt ein erneuter Blick in die Prozess - Liste eine andere PID die zugewiesen wurde und
ein erneuter Aufruf des Scripts im Browser zeigt den Zähler wieder als 1.
Systemvoraussetzungen für FastCGI:
Im Apache - Webserver muss das Modul geladen sein,
LoadModule fastcgi_module /usr/lib/apache/1.3/mod_fastcgi.so
und es muss im VirtualHost einen Handler für FastCGI geben:
AddHandler fastcgi-script .fcg .fcgi .fpl
Weiterhin braucht es das PERL - Modul FCGI.