• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Problem mit Apache/CGI/Perl

  • Ersteller lars610
  • Erstellt am

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.
 

creative7even

Jerseymac
Registriert
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.
 

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
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
lars610 schrieb:
Hi,
Die Zeile mit
Code:
Can't open perl script ""
ist dabei besonders merkwürdig, als ob der Dateiname nicht weitergereicht werden würde...

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.
 

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
 

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 ;) ).
 

macet

Gast
Hallo Lars,

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

Gruß, macet