Zakladni otazky pri reseni problemu "CGI script nefunguje"
- Kdo je vlastnikem scriptu?
Autor CGI scriptu.
- Jaka jsou pristupova prava skriptu?
Je potreba zajistit pravo spusteni, tedy napr. 755.
- Je CGI script ve spravnem adresari?
CGI script je potreba umistit do adresare vyhrazeneho pro CGI scripty, napr. /usr/www/cgi-bin.
- Je WWW server nakonfigurovan tak, aby umel spustet CGI scripty?
Server musi podporovat a mit povolenu metodu GET i POST a spousteni cgi scriptu.
- Pod kterym uid server spusti CGI script?
Pod uzivatele, pod kterym bezi www server, napr. httpd. (Nemuze tedy zapisovat do souboru a adresaru uzivatele.)
- Muze server vytvaret a zapisovat do libovolnych souboru?
Pouze do souboru, ke kterym ma pristupova prava.
- Jak je identifikovana chyba v errorlogu?
Errorlog je textovy soubor, kam server zapisuje chyby pri komunikaci s klientem. Je ulozeny obvykle v adresari logs pod domacim adresarem www serveru.
- Jaka je cesta k interpretu perlu, je uvedena na zacatku CGI scriptu?
napr. /usr/local/bin/perl
- Generuje CGI script MIME typ na zacatku odpovedi?
CGI script musi generovat hlavicku urcujici MIME typ (napr. Content-type: text/html) a pak teprve vlastni data odpovedi. V perlovem scriptu tedy nesmi na zacatku chybet radka:
print "Content-Type: text/html\n\n";
- Co se stane, kdyz kontroluji navratovy kod po kazdem volani systemu?
Je to vyhodne pouzivat napr:
open(VYST, ">jmeno_soub") || die (nelze zapsat do souboru: $!);
nebot pak v errorlogu najdete obsah promenne $! tj napr. Permission denied nebo No such
file or directory a vse je hned jasnejsi.
- Mate zajisteno na zacatku scriptu vyprazdneni vystupniho bufferu?
Aby se chybove hlasky netiskly na vystup drive nez hlavicka s MIME ja vyhodne na zacatku CGI scriptu uvest prikaz $| = 1.