Configurar Apache para utilizar scripts CGI

Para poder invocar scripts CGI desde el navegador, es necesario configurar Apache de manera que lo permita. Para ello debemos seguir este sencillo instructivo:

Agregar Handler de CGI

Abrir en un editor de textos el archivo de configuración conf\httpd.conf ubicado dentro del directorio de instalación de Apache

Quitar el comentario de la línea (sólo borrando el # inicial) y guardar

#AddHandler cgi-script .cgi

Indicar la ejecución de CGIs en un VirtualHost

A partir de un VirtualHost que hayamos definido, según la versión de Apache:

  • Versión 2.0.x: En el mismo archivo de configuración (httpd.conf)
  • Versión 2.2.x: En el mismo archivo de configuración conf\extra\httpd-vhosts.conf

Agregar «+ExecCGI» a la cláusula Options dentro de Directory, manteniendo las preexistentes:

<VirtualHost *:80>
    ...
DocumentRoot SITE_PATH

    <Directory SITE_PATH>
        Options +ExecCGI +Indexes
    ...
    </Directory>
ServerName DOMINIO_LOCAL

    ...
</VirtualHost>

Adicionalmente sería conveniente agregar «index.cgi» a la cláusula DirectoryIndex del VirtualHost.

Reiniciar Apache

Procedemos a reiniciar el servicio de Apache para que tome la nueva configuración.

Probar el funcionamiento de CGI

Vamos a hacer la prueba ejecutando scripts CGI con Perl, por lo que requerimos que se encuentre instalado en el sistema. Tal vez tengamos que hacer unos ajustes adicionales para poder ejecutar scripts CGI con código Perl desde Apache en Windows.

En el directorio SITE_PATH correspondiente al VirtualHost, creamos un archivo llamado index.cgi con el siguiente contenido:

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print "<h2>Configuraste correctamente apache para ejecutar scripts CGI con Perl</h2>";

Finalmente, abrimos un navegador y accedemos a la url DOMINIO_LOCAL del VirtualHost. Deberíamos ver el texto «Configuraste correctamente Apache para ejecutar scripts CGI con Perl«.