====== Darf ich CGI-Scripte ausführen? ====== Klar! Dabei ist folgendes zu beachten: * CGI-Scripte dürfen nur im Home-Verzeichnis, also unter $HOME/public_html/ liegen (bzw. in weiteren Unterverzeichnissen unter diesem Pfad). * CGI-Scripte müssen mit ''.cgi'' enden und mindestens Rechte 500 haben, d.h. für den Besitzer lesbar und ausführbar sein. * CGI-Scripte laufen unter der Kennung des Users, dem sie gehören. Um dies zu ermöglichen, müssen verschiedene Regeln beachtet werden. Z.B. darf das Skript kein suid oder guid-Bit haben, es darf nur dem User gehören, in dessen Home-Verzeichnis es liegt usw. Die genauen Einschränkungen kann man hier nachlesen: http://httpd.apache.org/docs/suexec.html Wenn das Script dem User gehört, in dessen Home-Verzeichnis es liegt, und Rechte 500 hat, sollte es keine Probleme geben. * Da die CGI-Scripte unter User-Rechten laufen, müssen Dateien auch nur für diesen User schreibbar sein. Die beliebte counter.txt muss also nur Rechte 600 und nicht wie früher 666 haben. * Server-Side-Includes (d.h. Ausfuehren eines CGI-Scriptes innerhalb einer Webseite durch z.B.:) ... Es waren Besucher auf dieser Seite! ... sind nur möglich, wenn entweder die HTML-Seite das x-Bit gesetzt hat, also Rechte 555 oder 755 hat, oder wenn sie mit .shtml statt .html endet. * Das CGI-Script muss als erste Zeile, die auf stdout geschrieben wird, Content-type: text/html gefolgt von *zwei* Leerzeilen ausgeben. Optional noch mit einem Charset. Für Perl-Scripte beispielsweise durch: print ("Content-type: text/html;charset=UTF-8\n\n"); oder fuer bash-Scripte mit: echo -e "Content-type: text/html;charset=UTF-8\n" * Unser Web-Server ist www-ps.informatik.uni-kiel.de. CGI-Scripte müssen dann also über http://www-ps.informatik.uni-kiel.de/~username/bla.cgi referenziert werden. {{tag>faq}}