Installation mod_fastcgi Apache
coolblue
- cgi
Hallo, ich habe ein riesen Problem und hoffe mir kann jemand helfen.
Ich möchte mod_fastcgi installieren und weiß nicht was ich machen soll.
In der Installationsbeschreibung steht, dass ich mod_fastcgi entweder mit
apxs -o mod_fastcgi.so -c *.c
oder
<apache_dir>$ ./configure --activate-module=src/modules/fastcgi/libfastcgi.a
installieren soll. Das dumme ist nur, das ich Apache direkt bei der Grundinstallation (Suse 9.1) installiert habe und weder die Sourcen noch apxs auf meinem System liegen. Wie muss ich nun vorgehen? Hat jemand Erfahrung damit?
mod_fastcgi liegt zwar ebenfalls auf der CD, doch ich wollte unbedingt eine akutellere Version.
Gruß
coolblue
use Mosche;
Das dumme ist nur, das ich Apache direkt bei der Grundinstallation (Suse 9.1) installiert habe und weder die Sourcen noch apxs auf meinem System liegen. Wie muss ich nun vorgehen? Hat jemand Erfahrung damit?
Bei früheren SuSE-Versionen war apxs im Paket apache-devel. Installier dieses mal.
use Tschoe qw(Matti);
Bei früheren SuSE-Versionen war apxs im Paket apache-devel. Installier dieses mal.
apache-devel hört sich gut an! thanks!
hi,
Das dumme ist nur, das ich Apache direkt bei der Grundinstallation (Suse 9.1) installiert habe und weder die Sourcen noch apxs auf meinem System liegen.
mod_fastcgi liegt zwar ebenfalls auf der CD, doch ich wollte unbedingt eine akutellere Version.
Eine aktuellere Version, bereits fertig auf die SuSE zugeschnitten, findest du unter ftp://ftp.suse.com/pub/projects/apache/apache2-mod_fastcgi/9.1-i386, vielleicht reicht dir das schon. Das ist ein fertiges RPM, du brauchst nichts selber kompilieren.
Grüße aus Berlin
Christoph S.
hallo christoph!
eine frage habe ich noch:
ich möchte für jedes meiner fcgi-sripte (perl) einen oder mehrere eigene prozesse starten. weißt du wie der eintrag dafür in der httpd.conf aussehen muss? die doku von fastcgi ist ziemlich verwirrend...
gruß
coolblue
hallo,
ich möchte für jedes meiner fcgi-sripte (perl) einen oder mehrere eigene prozesse starten. weißt du wie der eintrag dafür in der httpd.conf aussehen muss?
Zumindest meine ich zu wissen, daß die httpd.conf dafür nicht zuständig ist. Du willst ja keine Serverprozesse starten, sondern deine Scripts sollen Prozesse starten - und das tun sie meines Wissens von ganz alleine.
Grüße aus Berlin
Christoph S.
Zumindest meine ich zu wissen, daß die httpd.conf dafür nicht zuständig ist. Du willst ja keine Serverprozesse starten
doch genau das möchte ich! genau wegen dieser funktion werde ich fastcgi einsetzen. pro seitenaufruf werden ca. 4-12 cgi programme gestartet (jedoch nur von maximal 4 personen), deshalb ist es notwendig, dass die cgi programme einen eigenen prozess haben, der ihre requests bearbeitet. in dem buch "Prommieren mit CGI" ist diese funktion mit etlichen vorteilen und erheblich leistungsverbesserung beschrieben! ich weiß was ich tu :-)
kennst du den aufruf? wäre super!
gruß
coolblue
moin.
eine kleine Ergänzung siehe untenstehend.
Gruss, Rol
=cut
Q: Wie geht FastCGI?
A:
#!/usr/bin/perl
#--BEGIN FCGI--
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--
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.