1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Problem mit Apache/CGI/Perl

Dieses Thema im Forum "PHP & Co." wurde erstellt von lars610, 19.09.05.

  1. lars610

    lars610 Gast

    Hallo,

    ich habe folgendes Problem mit dem Apache unter MacOS 10.4.2 (nach Update von 10.3):

    Der Apache kann keine CGI/Perl Skripte starten. Das ganze liegt nicht an den üblichen verdächtigen Sachen, sondern scheint ein Konfigurationsproblem zu sein. Im Verzeichnis ~/Sites liegt ein ganz banales Perl Skript (test.cgi), welches eine simple HTML Seite ausgibt. Die Rechte von test.cgi sind 755, in der httpd.conf ist das ~/Sites Verzeichnis auf ExecCGI konfiguriert. Nimmt man das ExecCGI raus, wird der Quelltext des Skripts ausgegeben, es kann also gelesen werden. Setzt man aber ExecCGI und ruft das Skript im Browser auf, erhält man einen Internal Server Error (500). Die error.log teilt lediglich ein "Premature end of script headers: ~/Sites/test.cgi" mit.

    Irgendjemand eine Idee?

    Danke & Gruss,

    Lars.
     
  2. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454
    Server Error 500 kann bedeuten:
    1) dass ein Fehler im Script vorliegt.
    2) dass der Server nicht berechtigt ist das Script auszuführen (wenn ich mich recht erinnere hatte ich irgendwann mal ein ähnliches Problem).

    Lösungsvorschlag:
    1) die Rechte auf 757 ändern.
    oder/und:
    2) In der Konsole (unter Dienstprogramme) auf die Fehlermeldung(en) achten - diese dann posten.

    c7.
     
  3. lars610

    lars610 Gast

    Hi,

    sorry für die etwas grobe Beschreibung, aber ich war gestern nicht am Mac. Der Vorschlag 1 bringt leider gar nix. Und zu zweitens: die errog.log des httpd meint dazu folgendes:

    Code:
    Processing config directory: /private/etc/httpd/users/*.conf
     Processing config file: /private/etc/httpd/users/gast.conf
     Processing config file: /private/etc/httpd/users/lars.conf
     Processing config file: /private/etc/httpd/users/steffi.conf
    [Tue Sep 20 09:19:54 2005] [debug] mod_bonjour.c(1448): mod_bonjour: Module init count=2 pid=273.
    [Tue Sep 20 09:19:54 2005] [notice] Apache/1.3.33 (Darwin) mod_perl/1.29 configured -- resuming normal operations
    [Tue Sep 20 09:19:54 2005] [info] Server built: Mar 20 2005 15:08:27
    [Tue Sep 20 09:19:54 2005] [notice] Accept mutex: flock (Default: flock)
    [Tue Sep 20 09:19:55 2005] [info] mod_bonjour: Registration confirmed for name='Lars Engel', port=80.
    Can't open perl script "
    ": No such file or directory
    [Tue Sep 20 09:19:58 2005] [error] [client 10.0.0.3] Premature end of script headers: /Users/lars/Sites/test.cgi
    Die Zeile mit
    Code:
    Can't open perl script ""
    ist dabei besonders merkwürdig, als ob der Dateiname nicht weitergereicht werden würde...

    / Lars
     
  4. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454
    nach obiger Beschreibung vermute ich dennoch ein Problem mit den Rechten.
    Setzte mal die Rechte der Datei auf 777.
    Die Angabe in der httpd.conf die auf das x-ecutable Verzeichnis verweist - ist diese Angabe absolut?

    c7.
     
  5. lars610

    lars610 Gast

    Der Apache ist so konfiguriert, das aus dem entsprechenden User-Doc Verzeichnis, also ~/Sites heraus CGIs ausgefuehrt werden duerfen (ExecCGI). D.h. die Berechtigung steht in der entsprechenden /etc/httpd/users/USER.conf.

    Wenn ich zum Test ein CGI-Shell-Script in das gleiche Verzeichnis packe und es mit den gleichen Rechten ausstatte, funktioniert das. Ist das Skript dagegen ein Perl Skript, kann Perl die entsprechende Datei nicht finden. Beide Test-Skripte verursachen bei der direkten Ausfuehrung (bash bzw. perl) die gleiche Ausgabe. Im Apache dagegen wird bei der Perl Version nix produziert (siehe error.log)

    Das gleiche gilt uebrigens auch fuer ein chmod 777 test.cgi
     
  6. lars610

    lars610 Gast

    Könnte mir vielleicht mal jemand seine httpd.conf posten? Das System sollte ein MacOS 10.4.2 sein (und Perl via CGI sollte funktionieren ;) ).
     
  7. macet

    macet Gast

    Hallo Lars,

    hast du mittlerweile eine Lösung für dein Problem gefunden? Ich habe nämlich das Gleiche...

    Gruß, macet
     

Diese Seite empfehlen