2 votos

Los scripts CGI no se ejecutarán en el sitio web.

Tengo un sitio web funcionando en el servidor web Apache, pero los scripts CGI en /Library/WebServer/CGI-Executables no se ejecutan. En su lugar, el texto del archivo se carga en el navegador.

Hice los siguientes cambios en httpd.conf:

  1. Agregué la siguiente línea al grupo LoadModules:

    LoadModule cgi_module /usr/libexec/apache2/mod_cgi.so

  2. Descomenté la siguiente línea (eliminando el #):

    AddHandler cgi_script .cgi

  3. Agregué esto al archivo del host virtual para el sitio específico:

    DocumentRoot "/Library/WebServer/Documents/"
    ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"

    AllowOverride none
    Options +ExecCGI
    AddHandler cgi-script .cgi

Puedo ejecutar los scripts de Perl desde la línea de comandos sin problemas.

Nota: esto es en High Sierra.

0 votos

Estoy votando para cerrar esta pregunta como fuera de tema porque parece estar relacionada con el desarrollo web.

2 votos

@Jaime Esta pregunta no tiene nada que ver con el desarrollo web. Se trata de cómo instalar programas de sitios web en tu Mac. Podría ser, por ejemplo, un programa de galería de imágenes, GitWeb, MovableType, u otra cosa. Esto es simplemente sobre cómo configurar el servidor web incorporado que viene con macOS.

1 votos

Gracias por la edición. Esto absolutamente es válido siempre y cuando el sistema operativo del anfitrión sea de Mac o el hardware sea de Mac o el cliente sea de Mac. También podría ser válido en otros lugares, pero no lo trasladaríamos de aquí o cerraríamos a menos que sea solicitado por el OP y sea válido en otro lugar.

3voto

Jose Chavez Puntos 645

Lo más probable es que te estés encontrando con uno de los siguientes problemas:

Nombre de manejador incorrecto: En tu pregunta, escribiste que tenías la siguiente línea:

AddHandler cgi_script .cgi

El guion bajo debe ser un guion aquí, así que cámbialo a:

AddHandler cgi-script .cgi

Extensión de archivo incorrecta: Has especificado en tu configuración que tus scripts de Perl tienen el nombre something.cgi. Algunos en realidad tienen sus archivos nombrados something.pl en su lugar. Si ese es tu caso, tendrás que extender ambas de tus líneas AddHandler a lo siguiente:

AddHandler cgi-script .cgi .pl

Permisos: Los scripts de Perl necesitan tener el bit de permiso ejecutable establecido para poder ser ejecutados como un script CGI. Esto significa que debes ejecutar un comando como este:

chmod a+x /Library/WebServer/CGI-Executables/yourscript.cgi

Tendrías que reemplazar "yourscript.cgi" con el nombre real de tu script.

Reinicio necesario: Necesitas asegurarte de que el programa servidor web Apache se recargue o reinicie realmente después de que cambies tus archivos de configuración. Haz esto ejecutando el siguiente comando:

sudo apachectl -k restart

0 votos

Gracias por esta información. Así que seguí tus instrucciones y pude designar una carpeta dentro del sitio web para la ejecución de scripts y funcionó. Sin embargo, quiero ejecutarlos desde la carpeta de CGI-Executables como se mencionó anteriormente. Habilito esto con [ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"] en los archivos vhosts pero recibo el error en el registro: [authz_core:error] [pid *] [client *] AH01630: cliente denegado por la configuración del servidor: /Library/WebServer/CGI-Executables/. Parece que ScriptAlias no está haciendo lo que se supone que debería hacer...

0 votos

¡Lo resolví! Añadí esto después del comando ScriptAlias en el archivo vhosts: AllowOverride none Options ExecCGI AddHandler cgi-script .cgi Require all granted

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X