Meine Perl Scripte laufen nicht

Dieses Thema im Forum "Hardware" wurde erstellt von akigolf, 5. März 2002.

  1. akigolf

    akigolf New Member

    Hallo

    Leider bekomme ich meine Perlscripte auf dem Apache nicht zum Laufen.
    Alle Zugriffsrechte auf chmod 777, Mac OS X 10.1. Mein Beispielscript "hello.pl" unten im Threat. Es funktioniert nicht mit .pl und auch nicht mit .cgi.
    Die Apple-Beispielscripts "tes.cgi und printvers" laufen einwandfrei.
    Bei meinen und hakru´s Test Scripts erscheind immer die 500ter Fehlermeldung.


    Hier ist erstmal die Log-datei nachdem ich das Test Script von hakru aufgerufen habe:

    """""""""""

    [Tue Mar 5 08:13:51 2002] [error] (2)No such file or directory: exec of /Library/WebServer/CGI-Executables/hakrutest.pl failed
    [Tue Mar 5 08:13:51 2002] [error] [client 127.0.0.1] Premature end of script headers: /Library/WebServer/CGI-Executables/hakrutest.pl
    [Tue Mar 5 08:13:54 2002] [error] (2)No such file or directory: exec of /Library/WebServer/CGI-Executables/hakrutest.pl failed
    [Tue Mar 5 08:13:54 2002] [error] [client 127.0.0.1] Premature end of script headers: /Library/WebServer/CGI-Executables/hakrutest.pl
    [Tue Mar 5 08:13:57 2002] [error] (2)No such file or directory: exec of /Library/WebServer/CGI-Executables/hakrutest.pl failed
    [Tue Mar 5 08:13:57 2002] [error] [client 127.0.0.1] Premature end of script headers: /Library/WebServer/CGI-Executables/hakrutest.pl

    """""""""""

    Sagt mir irgendwie nicht so richtig viel?!?!?! ;o))))

    Mein "hello-script":

    """""""""""

    #!/usr/bin/perl

    print "Content-type: text/html

    ";

    print "Hello world.
    ";

    """"""""""""

    So nun mal viel Spaß damit....
    Ich stehe mal wieder vor einem Rätzel.

    Liebe Grüße

    aki
     
  2. hakru

    hakru New Member

    Hallo akigolf,

    dein "hello.pl" script funktioniert bei mir einwandfrei - auch als "hello.cgi". Muss also irgendwie an deiner Konfiguration liegen??

    Aus deinen Postings sehe ich, Du hast Apache version 1.3.20 - die aktuelle Version in OSX10.1.3 ist aber 1.3.22. Würde daher einen Update auf 10.1.3 vorschlagen, dann nochmal testen ...

    hakru
     
  3. hakru

    hakru New Member

    Zu deiner Fehlermeldung:

    ... No such file or directory: exec of /Library/WebServer/CGI-Executables/hakrutest.pl failed

    Könnte ein Pfad-Fehler für die perl binary sein ...
    check das mal im Terminal mit:

    which perl

    gibt Dir das auch tatsächlich:

    usr/bin/perl

    Falls da unter OSX10.1 ein anderer Pfad stehen sollte, wäre der in "hello.pl" natürlich anzugeben ...

    hakru
     
  4. akigolf

    akigolf New Member

    Hi hakru

    Nein ein Update auf eine höhere Apache Version ist momentan nicht drin. Viel zu gefährlich...meine MySql und PHP laufen wunderbar und ich befürchte daß der ganze Krampf mit dem "Zumlaufenbringen" dieser Funktionen dann wieder anfängt. Das wäre extrem unproduktiv und würde zeitlich nicht passen.

    Also muß ich versuchen Perl so zum laufen zu bringen.

    Hier die Ausgabe des Terminals

    """"""""""""""
    Welcome to Darwin!
    You have mail.
    [localhost:~] akigolf% which perl
    /usr/bin/perl
    [localhost:~] akigolf%
    """"""""""""""""

    Also der Pfad stimmt, ich habe trotzdem die anderen aus den "laufenden" Apple-Scripts probiert...funktioniert natürlich trotzdem nicht.

    Ich habe momentan keine Ahnung was ich noch machen soll, denn durch die Konfiguration des Perl-Modules steige ich überhaupt nicht durch...ich weiß nichtmal wo ich da anfangen soll.

    Übrigens mit dem IE 5.1 bekomme ich keinen Zugriff auf meinen lokalen Webserver...aber ich glaube das hatten wir schon, oder?

    Auf den Punkt gebracht ist die Frage: warum funktionieren die Apple-Scripts und warum funktionieren die anderen nicht?????
    Wenn keines funktionieren würde dann wäre ich schlauer, aber so....?

    aki
     
  5. hakru

    hakru New Member

    deine Vorsicht "a bissle".

    Kann Dir aber ansonsten nicht mehr helfen. Dein Skript stimmt, läuft bei mir, was ist also faul?? Null Ahnung - um in den Innereien von Perl zu wühlen weiss ich zu wenig, und wenn's eh ein Update gibt, sollte das m.E. drauf. Vorher Backup des data-Ordners der mysql-Installation etc. und dann "durch".
    Aber:
    "My lawyers make me say this ;-)" - du machst das natürlich auf eigene Verantwortung. Ja, ich weiss, "life is brutal".

    Überdenke halt alles nochmal

    hakru
     
  6. hakru

    hakru New Member

    Fällt mir gerade noch ein: Hast du mal versucht, das "hello.pl" ohne den Apache, also von der Comand Line im Terminal zu starten.

    cd /Library/WebServer/CGI-Executables
    -> falls hello.pl da liegt, dann:
    ./hello.pl

    Was passiert?

    hakru
     
  7. akigolf

    akigolf New Member

    Habe gerade deinen Ratschlag befolgt, hier das Ergebnis:
    """""""""""""""""""""""""""""""""""
    [localhost:~] akigolf% cd/Library/WebServer/CGI-Executables/perldiver.pl
    cd/Library/WebServer/CGI-Executables/perldiver.pl: Command not found.
    [localhost:~] akigolf% cd /Library/WebServer/CGI-Executables/perldiver.pl
    /Library/WebServer/CGI-Executables/perldiver.pl: Not a directory.
    [localhost:~] akigolf% cd /Library/WebServer/CGI-Executables/printenv
    /Library/WebServer/CGI-Executables/printenv: Not a directory.
    [localhost:~] akigolf% cd /Library/WebServer/CGI-Executables/hello.pl
    /Library/WebServer/CGI-Executables/hello.pl: Not a directory.
    [localhost:~] akigolf%
    """"""""""""""""""""""""""""""""""""

    Auch nicht so toll nee.

    aki
     
  8. hakru

    hakru New Member

    Ja, ja, der Hund liegt im Detail ... Du musst das Script auch mit "./hello.pl" aufrufen, NICHT bloß mit "hello.pl"! Der Vorsatz "./" ist wichtig. Und natürlich vorher mit "cd /Library/Web... etc" in die Directory wechseln, in der das Script liegt. Hast Du ja bislang auch richtig gemacht ...

    Einfach nochmal versuchen, dann müsste klar werden, ob's an perl oder am apache liegt ...

    hakru
     
  9. hakru

    hakru New Member

    Da hab' ich ja wohl zu schlampig hingeschaut:
    Sehe gerade, daß Du da mit dem cd-Befehl doch Schwierigkeiten hast.

    cd /Library/WebServer/CGI-Executables/hello.pl
    -> muss ja Ärger geben, "hello.pl" ist ja keine Directory, in die man mit cd wechseln könnte.
    Also, ERST mit "cd /Library/WebServer/CGI-Executables" in die cgi-bin wechseln und DANN in einem 2. Befehl mit "./hello.pl" das Skript aufrufen

    Oder: du sparst Dir den cd-Befehl und rufst das Script mit vollem Pfad auf:

    "/Library/WebServer/CGI-Executables/hello.pl"

    hakru
     
  10. akigolf

    akigolf New Member

    Hallo hakru

    Das Ganze wird jetzt "superkompliziert" irgendwo ist da total der Wurm drin.

    Normalerweise benutze ich BBedit zum Scripte schreiben, nur Testhalber habe ich nun mal Textedit genommen und das hello-Script als "nurText" gespeichert.
    Die Datei heißt Test.txt (das txt wurde von Text edit angehängt. In I cab wird die Datei nicht gefunden!!!!!! Omni-Web findet sie und führt sie aus "hello World"!?!?!?!?!?!?!?!?!?!?!?!?!?!?
    Natürlich habe ich versucht dein Script auch mit Textedit zu speichern...funktioniert nicht...kein anderes Script funktioniert. Nur die Apple Testscripte laufen auf beiden Browsern, tja und das "Textedit hello world halt auf Omniweb.
    Also ich bin echt platt. Das Ganze wird noch getopt durch folgenden Link
    http://www.macintouch.com/mosxreaderreports84.html
    , so ganz verstehe ich es nicht aber irgendwie scheint in meiner X Version (10.1) ein Fehler im Perl-Modul zu sein, oder bezieht sich das Ganze auf etwas anderes?

    Falls ich jetzt doch Updaten möchte welche Ordner muß ich kopieren um ein Backup meiner Server Preferencen zu haben, die ich dann später nur draufkopieren muß

    Liebe Grüße
    aki

    PS: Meintest Du das einzugeben??

    [localhost:~] akigolf% cd /Library/WebServer/CGI-Executables
    [localhost:/Library/WebServer/CGI-Executables] akigolf% ./hello.pl
    ./hello.pl: Command not found.
    [localhost:/Library/WebServer/CGI-Executables] akigolf%
     
  11. hakru

    hakru New Member

    Das mit dem Tk/perl link sollte dich m.E. nicht betreffen ...

    Wenn du deine Scripts schreibst, gibt's neben Syntax-Fehlern 2 Fallen:

    1. die Zeilenumbrüche, aber wenn du in TextEdit als reinen Text speicherst, sollte das OK sein

    2. Endungen der Filenamen ("suffixe"). Wenn man da nich aufpasst, wird beim Save schnell mal unbemerkt eine Endung .txt oder angehängt, die man aber im Finder nicht sieht, wenn die Option "suffix ausblenden" beim Speichern aktiv war.

    Das Terminal belügt dich nicht. Also geh mal mit "cd /Library/WebServer/CGI-Executables" in die cgi-bin und schau mit "ls -l" mal an, was sich da mittlerweile so rumtreibt.

    Ein mit "ls -l" sichtbares Script dann mit "./scriptname" aufrufen. Wenn du ein nichtexistierendes Fantasy-Script aufrufst, z.b. "./fantasy.pl" kommt die Meldung "Command not found" ...

    Warte mal noch mit Installieren, vielleicht haben wir damit (FileName/-Endungen) den Fehler gefunden.

    hakru
     
  12. akigolf

    akigolf New Member

    Hallo hakru

    Ein Wunder ist geschehen...und es war wie ich befürchtete "GANZ EINFACH"....(wenn man´s weiß ;o))))

    Also das Problem ist die Speicherung des Dokumentes, ich arbeite mit BBedit und dort habe ich die Möglichkeit die Zeilenumbrüche auf Macintosh, auf DOS und auf UNIX zu setzen. Rate mal welche ich benutzt habe (Default ist Macintosh) ...garnicht drüber nachgedacht habe ich... da ich bis jetzt noch nie Probleme damit hatte.
    Jemand auf dem MacFixit Forum hat mich drauf gebracht, er meinte das dies der allerhäufigste Fehler beim Umgang mit CGI´s auf dem Mac ist.
    Also man muß, damit die Scripte laufen, mit UNIX Zeilenumbrüchen speichern, sonst gibts halt nur Fehlermeldungen.

    Vielen Dank dir nochmal hakru, ich habe mal wieder echt viel gelernt!!!! (Mein persönliches Mac OSX Lexikon wird immer dicker :eek:)))))))

    Liebe Grüße

    aki

    PS:
    Hier nochmal der Link zu dem Threat im anderen Forum:

    http://www.macfixitforums.com/php/showthreaded.php?Cat=&Board=Forum35&Number=345802
     
  13. hakru

    hakru New Member

    Na, ist doch super! Und da sag' noch einer computing sei nicht pädagogisch wertvoll: doch eine der 2 Fallen - war ja einfach ;-)))

    Gaudeamus!

    hakru
     

Diese Seite empfehlen