Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
a_faq:cgi [2014-06-13 12:37] 127.0.0.1 Externe Bearbeitung |
a_faq:cgi [2018-12-17 15:12] (aktuell) mga |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Darf ich CGI-Scripte ausführen? ====== | ====== Darf ich CGI-Scripte ausführen? ====== | ||
- | Klar, wir sind ja nicht die RBG ;-) Dabei ist folgendes zu beachten: | + | Klar! 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 dürfen 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 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 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 | + | * 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 gehoert, in dessen Homeverzeichnis es liegt, und Rechte 500 hat, sollte es keine Probleme geben. | + | 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, muessen Dateien auch nur fuer diesen User schreibbar sein. Die beliebte counter.txt muss also nur Rechte 600 und nicht wie frueher 666 haben. | + | * 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.:) | * Server-Side-Includes (d.h. Ausfuehren eines CGI-Scriptes innerhalb einer Webseite durch z.B.:) | ||
Zeile 14: | Zeile 14: | ||
... | ... | ||
- | 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. | + | 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, | * Das CGI-Script muss als erste Zeile, die auf stdout geschrieben wird, | ||
Content-type: text/html | Content-type: text/html | ||
- | gefolgt von *zwei* Leerzeilen ausgeben. Optional noch mit einem charset. Fuer Perl-Scripte beispielsweise durch: | + | gefolgt von *zwei* Leerzeilen ausgeben. Optional noch mit einem Charset. Für Perl-Scripte beispielsweise durch: |
- | print ("Content-type: text/html;charset=ISO-8859-1\n\n"); | + | print ("Content-type: text/html;charset=UTF-8\n\n"); |
oder fuer bash-Scripte mit: | oder fuer bash-Scripte mit: | ||
- | echo -e "Content-type: text/html;charset=ISO-8859-1\n" | + | 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 ueber | + | * 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 | http://www-ps.informatik.uni-kiel.de/~username/bla.cgi | ||
Zeile 33: | Zeile 33: | ||
referenziert werden. | referenziert werden. | ||
- | {{tag>oldfaq}} | + | {{tag>faq}} |