Preguntas Frecuentes - FAQ

¿Qué es cgi-bin?

  • cgi-bin, Common Gateway Interface
  • 52

 

CGI y cgi-bin

¿Qué es CGI?

CGI (Common Gateway Interface) es una tecnología que permite que un servidor web ejecute determinados programas o scripts y utilice su resultado para responder a una solicitud del navegador.

Los scripts CGI pueden estar escritos en diferentes lenguajes, como Perl, Python, C u otros lenguajes compatibles con el servidor.

En los servidores Linux con cPanel, Apache puede gestionar scripts CGI mediante el controlador cgi-script. cPanel incluye soporte para CGI a través de Apache y EasyApache 4.

Importante: CGI no debe confundirse con Computer-Generated Imagery, que hace referencia a imágenes generadas por computadora. En este contexto, CGI significa Common Gateway Interface.

cgi-bin


¿Qué es la carpeta cgi-bin?

cgi-bin es un directorio utilizado tradicionalmente para almacenar scripts que deben ejecutarse como programas CGI.

En una cuenta de cPanel, puede encontrarse normalmente dentro del directorio principal del sitio, por ejemplo:

/home/username/public_html/cgi-bin/

Dependiendo de la configuración del servidor y del dominio, la ubicación y el comportamiento de esta carpeta pueden variar.

Los scripts CGI pueden utilizar extensiones como:

.cgi
.pl
.plx
.ppl
.perl

Apache permite asociar determinadas extensiones con el controlador cgi-script.


¿Para qué se utiliza CGI?

CGI permite ejecutar código en el servidor para generar una respuesta dinámica.

Por ejemplo, un script CGI podría:

  • Procesar información enviada mediante un formulario.

  • Generar contenido dinámico.

  • Procesar determinadas solicitudes del sitio.

  • Ejecutar aplicaciones o herramientas desarrolladas en Perl u otros lenguajes compatibles.

Actualmente, muchas aplicaciones web modernas utilizan tecnologías diferentes de CGI, como PHP-FPM, Node.js, Python mediante Passenger u otras arquitecturas, por lo que no todos los sitios necesitan utilizar cgi-bin.


¿Cómo se ejecuta un script CGI?

Un script CGI debe estar correctamente configurado y tener permisos de ejecución.

Por ejemplo, un script Perl podría encontrarse en:

/home/username/public_html/cgi-bin/ejemplo.pl

Y ser accesible mediante una URL similar a:

https://www.example.com/cgi-bin/ejemplo.pl

La URL exacta dependerá de la configuración del dominio y del servidor.

Permisos del script

En determinadas configuraciones de cPanel/Apache, un script CGI puede necesitar permisos de ejecución.

Por ejemplo:

chmod 755 ejemplo.cgi

cPanel utiliza mecanismos como suEXEC para controlar la ejecución de scripts CGI y verificar sus permisos y propietario.

Importante: No es recomendable modificar los permisos de toda la cuenta indiscriminadamente. Los permisos necesarios pueden depender de la configuración del servidor y del controlador utilizado.


¿Dónde se encuentra cgi-bin?

En una instalación habitual de cPanel, puede encontrarse dentro de:

public_html/cgi-bin/

Por ejemplo:

/home/username/public_html/cgi-bin/

Sin embargo, no todos los sitios necesitan utilizar esta carpeta.


¿Se puede eliminar la carpeta cgi-bin?

Sí, si está vacía y su sitio no utiliza scripts CGI.

Antes de eliminarla, compruebe que no existan aplicaciones o scripts que dependan de ella.

Si elimina accidentalmente la carpeta y posteriormente necesita utilizar CGI, puede volver a crearla y configurar nuevamente los scripts necesarios.

Recomendación: Si no está seguro de si algún archivo es utilizado por su sitio, no lo elimine. Puede consultar primero con el soporte técnico.


¿Cuál es la diferencia entre CGI y Perl?

CGI y Perl no son lo mismo.

CGI es una interfaz o método de comunicación entre el servidor web y un programa, mientras que Perl es un lenguaje de programación.

Por ejemplo, un script CGI puede estar escrito en Perl:

#!/usr/bin/perl

Perl es uno de los lenguajes que pueden utilizarse para crear scripts CGI, pero CGI no está limitado a Perl.

cPanel también proporciona entornos Perl y herramientas para administrar módulos Perl.


¿Es necesario habilitar CGI?

En servidores cPanel, el soporte CGI depende de la configuración del servidor.

EasyApache 4 incluye mod_cgi en su perfil predeterminado, aunque las características disponibles para cada cuenta pueden depender de la configuración realizada por el proveedor de hosting.

Si un script CGI no funciona, no significa necesariamente que deba modificar el archivo .htaccess.

Primero compruebe:

  1. Que el script sea compatible con el servidor.

  2. Que tenga los permisos adecuados.

  3. Que el propietario del archivo sea correcto.

  4. Que el intérprete utilizado por el script esté disponible.

  5. Que la extensión del archivo esté asociada correctamente con CGI.

  6. Que no exista un error en el código del script.

cPanel recomienda revisar los permisos y el código del script cuando se presentan errores al ejecutar aplicaciones CGI o Perl.


Configuración mediante .htaccess

En determinadas configuraciones de Apache, puede utilizarse un archivo .htaccess para indicar que determinadas extensiones deben tratarse como scripts CGI:

AddHandler cgi-script .cgi .pl
Options +ExecCGI

Sin embargo, no recomendamos añadir estas directivas de forma predeterminada.

El funcionamiento depende de la configuración de Apache y de las directivas permitidas para la cuenta. Además, cPanel permite administrar los Apache Handlers desde cPanel cuando esta función está habilitada por el proveedor.

Si su script CGI no funciona, póngase en contacto con soporte antes de modificar .htaccess.


Seguridad

Los scripts CGI se ejecutan en el servidor y, por lo tanto, deben proceder de fuentes confiables y mantenerse actualizados.

No utilice scripts CGI de origen desconocido ni otorgue permisos de escritura innecesarios.

cPanel recomienda que el código se ejecute con el usuario propietario correspondiente y que los permisos sean tan restrictivos como sea posible.

Hosting SSD Perú.


¿Fue útil la respuesta?