Perl & eRuby Konfigurationsprobleme mit fcgid/suexec auf Debian-System

kartoffelheinz

New Member
Hallo,

ich habe folgende Serverinstallation hier:

Debian mit Apache2 / fcgid & suexec, vhost-Verwaltung durch SysCP.
Perl & eRuby bzw. Ruby ist installiert.

PHP funktioniert ohne Probleme mit eigene php.ini pro User etc. - da mod_perl genauso wie mod_eruby leider alle Sicherheitsoptionen von fcgid/suexec umgeht, möchte ich diese auch als fcgi bzw. cgi laufen lassen.

Ganz wichig dabei ist, dass alles über die Dateiendung zugewiesen wird - also egal wo ein User ein .pl oder .rhtml Skript in seinem Web liegen hat, soll das richtig mit entsprechend Perl bzw. eRuby ausgeführt werden.

Perl habe ich soweit auch hinbekommen mit folgender Apache-Config
Code:
<Files *.pl>
 AddHandler fcgid-script .pl
 </Files>

Wenn die Rechte richtig sind, kommt weder in der Suexec.log noch in der apache2-error.log ein Fehler - allerdings kommt auch keine Ausgabe an den Browser, stattdessen wird die Ausgabe des Scripts (Simples Perl-Testsscript) in die apache2-error.log geschrieben - was mich sehr verwundert. Auch wird das ganze etwa 6-7 mal wiederholt, sprich nach einem Aufruf im Browser läd dieser ca. 30sek und bekommt am Ende nur einen 503, während die Ausgabe, die eigentlich im Browser kommen sollte, dann in der apache2-error.log steht. Hat jemand von euch eine Ahnung, wie ich das Problem lösen kann? Bin gerne bereit, mehr Informationen zu liefern, wenn ich weiß, welche :)

Eine Idee hatte ich noch, und zwar, das ganze über einen Wrapper laufen zu lassen - nur da weiß ich nicht, wie dieser aussehen muss.

Code:
FCGIWrapper /var/kunden/startscripts/testuser/perl .pl
Sowas in die Richtung dachte ich mir... nur wie gesagt, ich wüsste nicht, was ich in die Datei perl dann reinschreiben sollte.

eRuby habe ich bisher gar nicht ans laufen bekommen, da weiß bringt sowas wie oben zumind. nicht das gewünschte Ergebniss (ich würde auch gerne verhindern, dass user bei .rhtml-Files immer oben ne shebang reinschreiben müssen - bei Perl ist das ja normal). Jemand hier eine Lösungsmöglichkeit? Vorraussetzung ist immer, .rhtml-Dateien müssen aus jedem Web-Verzeichnis einfach aufrufbar sein.

Ich bin dankbar für jede Hilfe :)
 
Unterstützt dein Skript überhaupt FastCGI (z. B. mit FCGI aus CPAN)? FastCGI Skripte unterscheiden sich von normalen CGI-Skripten. Bei PHP ist es ein Sonderfall, da der Interpreter FastCGI direkt unterstützt.
 
Gute Frage - ich muss gestehen: Keine Ahnung. Da das script aber geparsed wird und nur die Ausgabe in die error.log "umgeleitet" wird, denke ich schon, dass zumind. Perl das unterstützt.

Woran kann ich erkennen, ob bzw. inwieweit da ein Problem liegt?
 
So, installiert hab ich das Modul - und nun? Die Ausgabe wird leider immer noch in die error.log umgeleitet.

Notiz: Wenn ich statt fcgid-script nur cgi-script mache, funktioniert perl einwandfrei - ich würde es aber gerne mit fcgid laufen lassen :)
 
Mein Script unterstützt es - aber trotzdem geht die Ausgabe immer noch in die error.log....

Hier mal mein Script zum besseren Verständnis:
Code:
#!/usr/bin/perl

use FCGI;

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>Test-Ausgabe</title></head><body>\n";
print "<h1>Hurra, es klappt!</h1>\n";
print "</body></html>\n";

Oder wie genau müsste so ein Testscript aussehen?

Das andere Problem ist ja noch eRuby / Ruby - wie komme ich hier weiter? Zu not würde ich auch eine Lösung mit shebang akzeptieren - hauptsache es funktioniert.
 
Mein Script unterstützt es
Nein. Ich sehe da keinen Event- bzw. Accept-Loop für FastCGI...
Lies die Doku!

Oder wie genau müsste so ein Testscript aussehen?
http://search.cpan.org/~skimo/FCGI-0.67/FCGI.PL

Das andere Problem ist ja noch eRuby / Ruby - wie komme ich hier weiter? Zu not würde ich auch eine Lösung mit shebang akzeptieren - hauptsache es funktioniert.
Gleiches "Problem" wie bei Perl: Das Skript muss FastCGI unterstützen, z. B. durch http://rubyforge.org/projects/fcgi/
 
Back
Top