Tecnología

Inicio

No se puede ejecutar CGI script, Permiso denegado

No se puede ejecutar CGI script, Permiso denegado


A veces su guión CGI o Common Gateway Interface no funciona según lo previsto y produce el mensaje de error desconcertante y enigmático: "Permiso denegado". Hay muchas razones por las que un servidor Web se negará a ejecutar un script CGI. Como frustrante como estos errores puede ser, a veces son bastante fáciles de solucionar o prevenir.

Permisos de secuencia de comandos de lectura y escritura

Todos los archivos y directorios de Windows, Unix y servidores web Linux tienen permiso conjunto de atributos que determinan quién puede acceder a los archivos y lo que pueden hacer con ellos. Si un script CGI o el directorio del script se encuentra en el usuario no tiene permiso de lectura, el servidor Web no se ejecutará la secuencia de comandos y puede mostrar una advertencia como "Desconocido: no pudo abrir la secuencia: Permiso denegado". Esto se puede solucionar mediante la concesión de permiso de lectura del archivo para todos los usuarios. Puede cambiar el estado de lectura-escritura de la secuencia de comandos mediante su aplicación de Protocolo de transferencia de archivos, el comando chmod en plataformas Unix y Linux o comando attrib de ventana.

CGI script no ejecutable

Un script CGI puede tener el permiso de acceso de usuario correcto, pero aún no se ejecutará si el guión no tiene permiso de ejecución. Usted puede hacer su script ejecutable mediante el uso de su aplicación FTP. Los usuarios de Linux y Unix pueden utilizar el comando chmod para establecer el bit de ejecución. los servidores de Windows requiere que las carpetas que contienen las secuencias de comandos ejecutar o tienen permiso de escritura. Además, debe utilizar las extensiones de archivo adecuados para que el servidor sabe que tiene que llamar a un intérprete que llamar para ejecutar el script.

Configuración del servidor Web

Si el servidor Web no tiene instrucciones sobre cómo manejar una Python, Ruby o Perl script CGI cuando se encuentra con ellas, es posible obtener un "permiso denegado" error. Con el fin de ejecutar el script, el servidor Web tiene que saber qué idioma el guión está escrito en donde el intérprete se encuentra en el servidor y la forma de llamarlo. Por ejemplo, el servidor Web Apache tiene que tener la "ExecCGI" conjunto de opciones y la mímica "cgi application / x-httpd-cgi" incluida en el archivo de configuración "httpd.conf" o en un archivo ".htaccess". Si su lenguaje de script CGI no es parte de Windows de Internet Information Server mapeo CGI por defecto, puede añadirlo mediante la herramienta administrativa Administrador de IIS.

Prevención

Puede asegurarse de que la secuencia de comandos CGI funciona como debería para ello, en un sistema local antes de subirlo a su servidor Web de producción. Si desarrolla utilizando el mismo sistema operativo que el servidor Web, los permisos de archivo en ambos sistemas serán idénticos. Si tiene instalado el intérprete adecuado, puede probar la secuencia de comandos en el símbolo del sistema operativo. Si su CGI funciona en su sistema de prueba, que debería funcionar en su sistema de producción también.