El módulo mod_cgi
en Apache permite la ejecución de scripts CGI (Common Gateway Interface) en el servidor web, facilitando la generación de contenido dinámico y la interacción con aplicaciones web. Este módulo es ideal para ejecutar scripts en lenguajes como Perl, Python o Bash, y es común en configuraciones de servidores web que requieren respuestas dinámicas generadas en tiempo real.
mod_cgi
es un módulo que Apache usa para procesar scripts CGI. Estos scripts permiten generar respuestas dinámicas y son utilizados por muchos sistemas de aplicaciones web para manejar solicitudes específicas, como formularios o peticiones de datos. Apache envía los datos de las solicitudes al script y recibe una respuesta generada para el cliente.
En muchas distribuciones de Apache, mod_cgi
ya está instalado de manera predeterminada, pero puede ser necesario activarlo. Los siguientes pasos guían la activación de mod_cgi
en una configuración de Apache en sistemas basados en Linux.
1. Verificar que mod_cgi está instalado:
apachectl -M | grep cgi
Si el módulo no aparece en la lista, revisa la instalación y disponibilidad del paquete de Apache.
2. Activar mod_cgi:
sudo a2enmod cgi
3. Reiniciar Apache para aplicar los cambios:
sudo systemctl restart apache2
Para ejecutar scripts CGI en un directorio específico (como /cgi-bin
), debes habilitar dicho directorio en la configuración de Apache. Esto generalmente se encuentra en el archivo de configuración del sitio, como /etc/apache2/sites-available/000-default.conf
.
Agrega o verifica la siguiente configuración para habilitar el directorio /cgi-bin
:
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py
Require all granted
</Directory>
En este ejemplo:
Options +ExecCGI
permite la ejecución de scripts CGI.
AddHandler cgi-script .cgi .pl .py
especifica las extensiones que serán tratadas como scripts CGI (en este caso, .cgi
, .pl
, y .py
).
Para ejecutar scripts CGI en otros directorios fuera de /cgi-bin
, agrega Options +ExecCGI
en la configuración del directorio deseado. Por ejemplo:
<Directory "/var/www/html/scripts">
AllowOverride None
Options +ExecCGI
AddHandler cgi-script .cgi
Require all granted
</Directory>
Un ejemplo de un script CGI en Perl:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><body><h1>Hola desde CGI!</h1></body></html>";
1. Guarda este archivo como hola.cgi
en el directorio configurado (por ejemplo, /usr/lib/cgi-bin
).
2. Asegúrate de que el script tenga permisos de ejecución:
chmod +x /usr/lib/cgi-bin/hola.cgi
Al acceder a http://tuservidor/cgi-bin/hola.cgi
, el navegador debería mostrar el mensaje "Hola desde CGI!".
Para más detalles, consulta la documentación oficial de Apache sobre mod_cgi.
Jorge García
Fullstack developer