In questo capitolo elencheremo i possibili errori che possono derivare da un malfunzionamento delle nostre applicazioni CGI; di seguito proporremo un'altro elenco, relativo alle notifiche sullo stato di esecuzione degli script.
Possibili errori (e relative proposte di soluzione):
- Lo script non viene eseguito e viene invece stampato a video il codice che lo costutuisce: probabilmente lo script non è stato caricato nella directory corretta (cgi-bin), oppure l'estensione del file non è corretta (".cgi"), in questo caso il documento verrà visto come un comune file di testo.
- Il browser richiede lo scaricamento dello script: è un errore in genere prodotto da un'errata indicazione del Content-type, il browser non riconosce la pagina come visualizzabile e cerca di metterla comunque a disposizione dell'utente.
- Document contains no data: il Content-type viene riconosciuto come valido ma qualcosa impedisce la restituzione del risultato in output. Può esserci un errore sintattico nel listato oppure l'esecuzione si è protratta così a lungo da mandare il Web server in Timeout.
- 404 not found: la pagina richiesta non viene trovata qundi non può essere prodotto un output valido per la soddisfazione della richiesta. L'errore deriva generalmente dalla digitazione o dalla generazione dinamica di un'URL non corrette.
- 403 access forbidden: l'URL digitata o generata è corretta ma l'accesso alla relativa risorsa non è consentito. In pratica lo script non viene eseguito, quindi probabilmente non sono stati impostati i necessari permessi di esecuzione (execute, x) sul file che dovrebbe soddisfare la richiesta.
Se il Web server gira come nobody (indipendentemente dall'utente) sarà sufficiente un'istruzione come: "chmod +x nome_file.cgi"; se invece il Web server funziona sulla base dell'identificativo dell'utente (Uid: User IDentifier) , il comando dovrà essere: "chmod u+x nome_file.cgi".
- 500 server error: errore generico, lo script non viene eseguito e il Web server non identifica la tipologia di errore. Il Content-type indicato potrebbe non essere corretto; i permessi possono essere stati assegnati scorrettamente; una libreria necessaria potrebbe non essere stata individuata nel percorso indicato; il percorso all'eseguibile Perl potrebbe non essere quello effettivo del nostro file system; potrebbe esserci un errore nella digitazione del codice (controllare i log del sistema); l'applicazione potrebbe aver eseguito un'operazione non prevista (anche in questo caso i log possono tornare utili).
- malformed header from script: è probabile che sia stata omessa l'indicazione del corretto Content-type, quindi la chiamata HTTP retituisce degli header non validi.
Passeremo ora all'elenco dei codici di stato che più comunemente potremo incontrare nell'esecuzione delle nostre applicazioni
CGI.
Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a
Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di
Mrwebmaster.it.