Hallo,
ich habe ein eigenartiges Problem: manchmal werden Perl-Sripte auf meinem Root-Server ausgeführt (und korrekter HTML-Code zurückgeliefert), manchmal bietet der Browser (egal welcher) den Download an und per Shell wird IMMER der korrekte Code zurückgeliefert....
error.log bringt nichts und access.log meldet "200" für erfolgreiche Vermittlung...
mod_perl ist natürlich im Plask für diese Domain eingeschaltet.
Ich habe mehere 1&1 Rooties. Dieser hat nun Plesk 7.5.4 und Apache2. Damit kenne ich mich noch nicht besonders aus.
Hat jemand eine Idee? Es eilt leider ein wenig...
Danke für Euren Hirnschmalz!
Stefan
Manchmal wird Perl ausgeführt - manchmal nicht ?!?
Re: Manchmal wird Perl ausgeführt - manchmal nicht ?!?
handelt es sich denn dabei um dasselbe Skript, welches mal ausgeführt wird und mal nicht? Oder ist es immer dasselbe Skript, welches geht und ein anderes wiederum nicht?
btw wäre dieser Artikel sicherlich im Apache-Forum besser aufgehoben gewesen!?¿
btw wäre dieser Artikel sicherlich im Apache-Forum besser aufgehoben gewesen!?¿
Re: Manchmal wird Perl ausgeführt - manchmal nicht ?!?
Ja, der Server reagiert einmal so, dann wieder anders - bei ein und dem selben Script! Erst wird es ausgeführt, beim Reload wiederum wird nur der Download angeboten und ein anderes Mal wird es teilweise ausgeführt. An Perl selbst liegt es nicht, dann in der Shell funktioniert es tadellos mit allen Scripten und immer.BlackEye wrote:handelt es sich denn dabei um dasselbe Skript, welches mal ausgeführt wird und mal nicht? Oder ist es immer dasselbe Skript, welches geht und ein anderes wiederum nicht?
Mag sein, da es jedoch um die Ausführung von Skripten geht, hab ich es hier versucht ;-)BlackEye wrote:btw wäre dieser Artikel sicherlich im Apache-Forum besser aufgehoben gewesen!?¿
In der Zwischenzeit habe ich den Server neu aufsetzen lassen und lediglich ein Update von Plesk 7.5.3 auf 7.5.4 gemacht.
Immer noch / wieder das gleiche Ergebnis.
Danke für Eure/Deine Mühe!
Re: Manchmal wird Perl ausgeführt - manchmal nicht ?!?
Hmm... sowas liebe ich persönlich ja.stlas wrote:Erst wird es ausgeführt, beim Reload wiederum wird nur der Download angeboten und ein anderes Mal wird es teilweise ausgeführt
Ich hab keine Idee passend in meiner nicht vorhandenen Schublade. Ich könnte Dir nur sagen, wie ich jetzt einfach mal weiter vorgehen würde, in der Hoffnung, etwas verdächtiges zu finden um den Fehler einzugrenzen (brute-force).
- Löschen der access.log und der error.log (der Ã?bersicht wegen)
- erhöhen der Debung infos (ob es so einen Schalter im apache gibt? Sicherlich, oder? Ich gehe zumindest mal davon aus
- auf der Client-Seite ein telnet öffnen und damit die GET-Anforderung mehrfach an den Server schicken. Vorzugsweise ein simples Perl-Skript. Sowas wie nen HelloWorld. Damit Du nicht unnötig zugemüllt wirst mit Output vom Server.
- nach dem ersten Auftreten des Fehlers (das Skript sendet also kein 'Hello World' mehr sondern irgendwas anderes), die Rückgabe im Telnet studieren und die error.log und access.log genauestens nach Fehlern und merkwürdigen Passagen durchsuchen
Ich bin dem Adel noch nicht beigetreten ;) Aber danke für die Blumen *g*Danke für Eure/Deine Mühe!
Grüsse
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Manchmal wird Perl ausgeführt - manchmal nicht ?!?
Von der Fehlerbeschreibung hört sich das Ganze wie der gleiche Fehler an, der auch mit mod_php und Apache 2 (mpm-prefork) auftritt. Die Einstellungen eines VirtualHosts, bei dem mod_perl deaktiviert ist, scheinen in andere Prozesse zu "leaken", weshalb die Perlskripte dann nicht geparsed werden.
Probier mal ein anderes MPM aus oder versuche mod_perl mal explizit in den gewünschten VHosts zu aktivieren.
Als CGI würde wahrscheinlich alles funktionieren.
Probier mal ein anderes MPM aus oder versuche mod_perl mal explizit in den gewünschten VHosts zu aktivieren.
Als CGI würde wahrscheinlich alles funktionieren.
Re: Manchmal wird Perl ausgeführt - manchmal nicht ?!?
Hmmmm. Ich versuchs mal zu verstehen.... Was heißt "forken" nochmal?Roger Wilco wrote:Von der Fehlerbeschreibung hört sich das Ganze wie der gleiche Fehler an, der auch mit mod_php und Apache 2 (mpm-prefork) auftritt.
Parsen und VirtualHosts verstehe ich noch, bei "leaken" endet es dann wieder. Sorry!Roger Wilco wrote:Die Einstellungen eines VirtualHosts, bei dem mod_perl deaktiviert ist, scheinen in andere Prozesse zu "leaken", weshalb die Perlskripte dann nicht geparsed werden.
Was ist ein MPM? Ich weiß, ich bin (noch) doof....Roger Wilco wrote:Probier mal ein anderes MPM aus oder versuche mod_perl mal explizit in den gewünschten VHosts zu aktivieren.
Als CGI würde wahrscheinlich alles funktionieren.
Plesk verbietet eigentlich das Hantieren in der "httpd.include" für die Domains.
Thema CGI - In der 1&1 Installation (vielleicht liegt es ja am Plesk) werden ".cgi" Files überhaupt nicht als Perl-Skripte erkannt. - Das haber nur als Hinweis....
Also, kannst Du das ein bisssschen genauer beschreiben, was ich probieren sollte???? Bitte! DANKE! ;-)
Noch ein interessantes Detail
Hier gibt es weitere Eigentümlichkeiten.
Was für mich auch nicht nachvollziehbar ist: Skripte, die auf andere Skripte verzweigen benötigen absolute Pfadangaben! Also von test1.pl aus test2.pl kann nur per absolutem Pfad eingebunden werden:
Alles andere liefert etwa folgende Fehlermeldung im error.log:
Es ist, als wenn das Skript nicht wissen würde, von wo aus es läuft.
Ach ja, noch etwas: Kurze (einfache) Testskripte funktionieren auch über die CGI-Schnittstelle fehlerlos. Ich habe noch nicht herausfinden können warum welche Skripte nicht mehr korrekt gehen. Aber bereits bei simplen Guestbook-Skripten funktioniert es nicht mehr.
Und zur Erinnerung: In der Shell funktioniert alles.
????????
Gruß Stefan
Was für mich auch nicht nachvollziehbar ist: Skripte, die auf andere Skripte verzweigen benötigen absolute Pfadangaben! Also von test1.pl aus test2.pl kann nur per absolutem Pfad eingebunden werden:
Code: Select all
require '/hier/und/da/test2.pl';Code: Select all
ModPerl::Registry: Can't locate test2.pl in @INC (@INC contains: /srv/www/perl-lib /usr/local/psa/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/5.8.3/i586-linux-thread-multi ...Ach ja, noch etwas: Kurze (einfache) Testskripte funktionieren auch über die CGI-Schnittstelle fehlerlos. Ich habe noch nicht herausfinden können warum welche Skripte nicht mehr korrekt gehen. Aber bereits bei simplen Guestbook-Skripten funktioniert es nicht mehr.
Und zur Erinnerung: In der Shell funktioniert alles.
????????
Gruß Stefan
Re: Manchmal wird Perl ausgeführt - manchmal nicht ?!?
Du musst die Scripte entweder mit absoluten Pfaden includieren, oder die (zu includierenden) Scripte unterhalb von /srv/www/perl-lib ablegen. Sollte aber auch in der Doku zu mod_perl stehen...
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
