coolblue: Installation mod_fastcgi Apache

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

  1. 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);

    --
      Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
    1. Bei früheren SuSE-Versionen war apxs im Paket apache-devel. Installier dieses mal.

      apache-devel hört sich gut an! thanks!

  2. 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.

    1. 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

      1. 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.

        1. 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

          1. 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.