Dies ist eine alte Version des Dokuments!


Darf ich CGI-Scripte ausführen?

Klar, wir sind ja nicht die RBG ;-) Dabei ist folgendes zu beachten:

  • CGI-Scripte duerfen nur im Home-Verzeichnis, also unter $HOME/public_html/ liegen (bzw. in weiteren Unterverzeichnissen unter diesem Pfad).
  • CGI-Scripte muessen mit .cgi enden und mindestens Rechte 500 haben, d.h. fuer den Besitzer lesbar und ausfuehrbar sein.
  • CGI-Scripte laufen unter der Kennung des users, dem sie gehoeren. Um dies zu ermoeglichen, muessen verschiedene Regeln beachtet werden. Z.B. darf das Script kein suid oder guid-bit haben, es darf nur dem User gehoeren, in dessen Homeverzeichnis es liegt usw. Die genauen Einschraenkungen kann man hier nachlesen: http://httpd.apache.org/docs/suexec.html

Wenn das Script dem User gehoert, in dessen Homeverzeichnis es liegt, und Rechte 500 hat, sollte es keine Probleme geben.

  • Da die CGI-Scripte unter User-Rechten laufen, muessen Dateien auch nur fuer diesen User schreibbar sein. Die beliebte counter.txt muss also nur Rechte 600 und nicht wie frueher 666 haben.
  • Server-Side-Includes (d.h. Ausfuehren eines CGI-Scriptes innerhalb einer Webseite durch z.B.:)
     ...
     Es waren <!--#exec cgi="count.cgi" --> Besucher auf dieser Seite!
     ...

sind nur moeglich, 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. Fuer Perl-Scripte beispielsweise durch:

print ("Content-type: text/html;charset=ISO-8859-1\n\n");

oder fuer bash-Scripte mit:

echo -e "Content-type: text/html;charset=ISO-8859-1\n"
  • Unser Web-Server ist www-ps.informatik.uni-kiel.de. CGI-Scripte müssen dann also ueber
http://www-ps.informatik.uni-kiel.de/~username/bla.cgi

referenziert werden.

/srv/dokuwiki/adminwiki/data/attic/a_faq/cgi.1402655821.txt.gz · Zuletzt geändert: 2014-06-13 12:37 von 127.0.0.1
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0