selfhtml.de - Alles für den Webmaster!

 

Empfehlung:

wix.com

Kostenlose Homepage

Besuchen Sie auch:

Jobs:

FastCGI + Perl + Apache + Windows/Linux

Autor: Gewuerzgurke
Datum: 24.10.2011 17:14:05

Hallo,
mein Problem hat hauptsächlich mit Apache zu tun, deswegen hoffe ich mal, dass ihr mir hier weiter helfen könnt...

Also: Ich habe folgendes Script, basierend auf dem Standard-Beispiel:
______________________________________

#!/usr/bin/perl

use FCGI;

$cnt = 0;

while (FCGI::accept >= 0) {
print "Content-type: text/plain; charset=iso-8859-1nn";
$cnt++;
print "Aufruf $cnt";
}
______________________________________

Ich möchte das erst mal lokal zum laufen bringen. Um mir eine Antwort geben zu können, ist es übrigens nicht nötig, die folgende Erklärung meiner bisherigen Versuche komplett zu lesen. Ich wäre einfach nur froh, wenn mal jemand mit Apache-Ahnung von Null auf erklärt, wie ich das Script zum laufen bringe...

Hier meine Versuche: Habe dazu XAMPP für Windows geladen und das in den cgi-bin geschoben (Mit entsprechend veränderter Pfadangabe bei #!---). Beim Aufrufen zeigt es immer "Aufruf 1", egal, wie oft ich auf Reload klicke. Dann habe ich gelesen, dass man fcgi erst installieren muss. Das habe ich auf Windows aber überhaupt nicht geschafft.

Dann habe ich es in meinem Ubuntu in der VirtualBox versucht:
1. Apache installiert #sudo apt-get install apache2
2. mod-fastcgi installiert #sudo apt-get install libapache2-mod-fcgid & #sudo a2enmod fastcgi

3. Die Datei /etc/apache2/sites-available/default anpassen:
__________________________

[...]

ScriptAlias /cgi-bin/ /media/daten/Projekte/HTML/cgi-bin/
<Directory "/media/daten/Projekte/HTML/cgi-bin">
Options ExecCGI
AddHandler cgi-script cgi pl
#AddHandler fastcgi-script fcgi fpl cgi pl
</Directory>
__________________________

Alle normalen Perl-Scripts funktionieren; FastCGI-Scripts werden als Textdatei geöffnet. Entferne ich das # bei der hier auskommentierten Zeile, so soll dies, wenn ich das richtig verstanden habe, für alle dort aufgelisteten Dateitypen FastCGI einschalten. Aber bei mir laden alle FCGIs etwa 10 Sekunden, dann kommt Fehler 500. Im ErrorLog steht:
_____________________________

[Mon Oct 24 17:05:53 2011] [warn] module fastcgi_module is already loaded, skipping
[Mon Oct 24 17:05:53 2011] [notice] FastCGI: process manager initialized (pid 4655)
[Mon Oct 24 17:05:53 2011] [notice] Apache/2.2.17 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_fcgid/2.3.6 configured -- resuming normal operations
[Mon Oct 24 17:07:05 2011] [error] [client http://127.0.0.1] (111)Connection refused: FastCGI: failed to connect to server "/media/daten/Projekte/HTML/fcgi-bin/perl.fpl": connect() failed
[Mon Oct 24 17:07:05 2011] [error] [client http://127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "/media/daten/Projekte/HTML/fcgi-bin/perl.fpl"
_____________________________

Die ersten 3 Zeilen sind noch vom Restart von Apache. Ich habe auf der Suche nach diesen Fehlern schon etliche Tutorials im Internet gelesen, bei denen man sonst was alles ändern sollte, aber keines davon war eine Lösung und auch unterschiedliche Kombinationen aus den verschiedenen Tipps haben es nur noch schlimmer gemacht (Anfangs gab es nur die 3. Fehlermeldung beim Start von Apache)...

Also wer von euch hat Perl mit FCGI auf Apache zum laufen gebracht und kann mal eine komplette Anleitung dafür posten, damit ich nochmal von vorne anfangen kann?

Vielen Dank schonmal.



FastCGI + Perl + Apache + Windows/Linux

Autor: Gewuerzgurke
Datum: 24.10.2011 17:30:42

Oh, ich hab' eben das falsche ErrorLog gepostet. Bei der oben erläuterten Konfiguration ist der Fehler wie folgt:
________________________

[Mon Oct 24 17:23:56 2011] [warn] FastCGI: (dynamic) server "/media/daten/Projekte/HTML/cgi-bin/perl.fpl" restarted (pid 5112)
Can't locate FCGI.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /media/daten/Projekte/HTML/cgi-bin/perl.fpl line 3.
BEGIN failed--compilation aborted at /media/daten/Projekte/HTML/cgi-bin/perl.fpl line 3.
[Mon Oct 24 17:23:56 2011] [warn] FastCGI: (dynamic) server "/media/daten/Projekte/HTML/cgi-bin/perl.fpl" (pid 5112) terminated by calling exit with status '2'
[Mon Oct 24 17:23:56 2011] [warn] FastCGI: (dynamic) server "/media/daten/Projekte/HTML/cgi-bin/perl.fpl" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
_________________________

Aber wie gesagt: Am besten wäre es, wenn mal jemand kurz erklärt, wie das von Grund auf geht.
Ich installiere Apache und dann..?