Impossibile eseguire script CGI, Autorizzazione negata

September 18

Impossibile eseguire script CGI, Autorizzazione negata


A volte il vostro CGI o uno script Common Gateway Interface non riesce a funzionare come previsto e produce il messaggio di errore sconcertante e criptico: "Autorizzazione negata". Ci sono molte ragioni per cui un server Web si rifiutano di eseguire script CGI. Per quanto frustrante come questi errori possono essere, a volte sono abbastanza facili da risolvere o prevenire.

Permessi di Scrittura lettura-scrittura

Tutti i file e le directory su Windows, Unix e Web server Linux hanno permesso attributi set che determinano chi può accedere ai file e che cosa possono fare con loro. Se uno script CGI o la directory lo script si trova a non avere utente i permessi di lettura, il server Web non verrà eseguito lo script e può visualizzare un messaggio di avviso come "Unknown: failed to open stream: Permesso negato." Questo può essere risolto con la concessione di permesso di lettura del file per tutti gli utenti. È possibile modificare lo stato di lettura-scrittura dello script utilizzando l'applicazione File Transfer Protocol, il comando chmod su un sistema Unix e Linux o comando attrib di Windows.

CGI script non eseguibile

Uno script CGI può avere l'autorizzazione di accesso utente corretto, ma ancora non eseguito se lo script non ha permesso di esecuzione. È possibile 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. server Windows richiede che le cartelle contenenti i tuoi script hanno eseguito o permesso script. Inoltre, si consiglia di utilizzare le estensioni di file corretto in modo che il server sa che ha bisogno di chiamare un interprete di chiamare per eseguire lo script.

Configurazione del server Web

Se il server Web non dispone di istruzioni su come gestire un Python, Ruby o script CGI Perl quando li incontra, è possibile ottenere un "permesso negato" errore. Al fine di eseguire lo script, il server Web deve sapere che lingua lo script è scritto in, in cui l'interprete si trova sul server e come chiamarlo. Ad esempio, il server Web Apache ha bisogno di avere il "ExecCGI" set di opzione e il mimo "application / x-httpd-cgi cgi" incluso nel "httpd.conf" file di configurazione o in un file ".htaccess". Se il linguaggio di script CGI non fa parte di Windows Internet Information Services mappatura predefinita CGI, è possibile aggiungere utilizzando lo strumento amministrativo Gestione IIS.

Prevenzione

È possibile assicurarsi che lo script CGI funziona come dovrebbe provandola su un sistema locale prima di caricarlo sul server Web di produzione. Se si sviluppa utilizzando lo stesso sistema operativo come server Web, i permessi dei file su entrambi i sistemi saranno identici. Se avete l'interprete adeguato installato, è possibile verificare lo script al prompt dei comandi del sistema operativo. Se il CGI funziona sul tuo sistema di test, dovrebbe funzionare sul vostro sistema di produzione pure.