Hallo, Stefan Eggert:
soweit alles klar. Aber warum bekomme ich vom Browser immer Acces Deny wenn ich das CGI starten will???? Habe Apache auch gesagt wo die cgi Dateien liegen müssen, aber klappen tuts trotzdem nicht.
Kontrollier folgende Logfiles: /var/log/httpd/error_log /var/log/httpd/suexec.log (oder so ähnlich) Dort sollte etwas stehen. Spontan tippe ich darauf, daß dein cgi in einem Verzeichnis liegt, welches nicht zur Ausführung von Scripten freigegeben ist. Mach mal testweise folgendes: Gib ein grep "ScriptAlias" /etc/httpd/httpd.conf Du bekommst dann eine Ausgabe der Form ScriptAlias WEBORDNER "FILEORDNER" Bei mir ist das beispielsweise ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin" Das bedeutet: wenn du http://www.meinserver.foo/cgi-bin/ eingibst, werden die Dateien unter "/usr/local/apache/cgi-bin/" an dieser Stelle "eingeblendet", obwohl in deinem htdocs-Ordner dieses Verzeichnis gar nicht vorhanden wird. Inhaltlich falsch, aber du kannst es dir so vorstellen: Das Verzeichnis "cgi-bin" wird an dieser Stelle "reingemountet". Wenn du dein cgi in diesen Ordner legst, sollte die html-Seite es mit "/cgi-bin/meinprogramm.cgi" ansprechen können. Ggf. Permissions erstmal auf 755 setzen. Ach so, und in der ersten Zeile des Scripts steht wahrscheinlich sowas wie #!/pfad/zum/ausführenden/interpreter z.B. #!/usr/bin/perl Der dort angegebene Pfad sollte identisch sein mit der Ausgabe von which perl Wobei zu beachten ist: Ein cgi muß nicht unbedingt in perl geschrieben sein. Handelt es sich um ein binary, ist die Erklärung sowieso hinfällig, und wird eine andere Scriptsprache verwand, ist der Befehl sinngemäss zu ändern. Sollte das alles nix bringen, brauchen wir mehr Infos. Wo liegt das Programm, welche Permissions hat es, welche Sprache, welche Rechte hat der Ordner, in dem es liegt, ist ExecCGI für diesen Ordner in der httpd.conf freigegeben? Sind die Zeilenumbrüche an die Plattform angepasst? Perl-cgis dürfen keine Windows-Zeilenumbrüche haben. Bis denn, Ratti