Nwlapcug.com


Non è possibile eseguire Script CGI, autorizzazione negata

Non è possibile eseguire Script CGI, autorizzazione negata


A volte il tuo script CGI o Common Gateway Interface non riesce a funzionare come previsto e produce il messaggio di errore criptico e sconcertante: "Permesso negato". Ci sono molte ragioni perché un server Web si rifiuterà di eseguire uno script CGI. Come frustrante come questi errori possono essere, a volte sono abbastanza facile da risolvere o prevenire.

Autorizzazioni di lettura e scrittura di script

Tutti i file e directory sul server Windows, Unix e Linux Web hanno set di attributi di autorizzazioni che determinano chi può accedere ai file e cosa possono fare con loro. Se non si dispone di uno script CGI o lo script si trova nella directory utente dell'autorizzazione di lettura, il server Web non verrà eseguito lo script e potrebbe essere visualizzato un messaggio di avviso come "sconosciuto: non riuscito ad aprire flusso: autorizzazione negata." Questo può essere risolto tramite la concessione di permessi di lettura del file per tutti gli utenti. È possibile modificare lo stato di lettura-scrittura di uno script utilizzando l'applicazione di File Transfer Protocol, il comando chmod su sistema Unix e Linux o comando attrib della finestra.

Script CGI non eseguibile

Uno script CGI può avere l'autorizzazione di accesso di utente corretto ma ancora non eseguito se lo script non dispone delle autorizzazioni di esecuzione. Si può rendere il vostro script eseguibile utilizzando l'applicazione FTP. Gli utenti Linux e Unix possono utilizzare il comando chmod per impostare il bit di esecuzione. Windows Server richiede che le cartelle contenenti gli script dispone di eseguirle o autorizzazioni di script. Inoltre, si dovrebbero usare le estensioni di file corretto modo il server sa che ha bisogno di chiamare un interprete da chiamare per eseguire lo script.

Configurazione del Server Web

Se il server Web non dispone di istruzioni su come gestire uno script Python, Ruby o Perl CGI quando li incontra, potrebbe essere visualizzato un errore "autorizzazione negata". Per eseguire lo script, il server Web deve sapere in quale lingua lo script è scritto in, dove l'interprete si trova sul server e come chiamarlo. Per esempio, il server Web Apache deve avere impostata l'opzione "ExecCGI" e il mime "application/x-httpd-cgi cgi" incluso nel file di configurazione "httpd" o in un file ". htaccess". Se il tuo linguaggio di script CGI non è parte del mapping di CGI predefinito Windows Internet Information Services, è possibile aggiungere utilizzando lo strumento di amministrazione di IIS Manager.

Prevenzione

È possibile garantire che il vostro script CGI funziona come dovrebbe effettuando test su un sistema locale prima di caricarlo sul server Web di produzione. Se si sviluppano utilizzando lo stesso sistema operativo come server Web, è possibile che le autorizzazioni di file su entrambi i sistemi sarà identiche. Se avete l'interprete appropriato installato, è possibile testare lo script al prompt dei comandi di sistema operativo. Se il tuo CGI funziona sul sistema di prova, dovrebbe funzionare anche sul sistema di produzione.