Generalidades sobre CGI

Generalidades

Common Gateway Interface (CGI) es una importante tecnología World Wide Web que permite al navegador web de un cliente solicitar datos de un programa ejecutado en el servidor web. CGI especifica un estándar para pasar datos de solicitud entre un servidor web y el programa utilizado para atender esa solicitud. Los desarrolladores web a menudo prefieren los scripts CGI debido a su velocidad y sus requisitos mínimos de recursos. Los scripts CGI en DreamHost se pueden escribir en todos los lenguajes comúnmente utilizados con CGI (Perl, Python, Ruby, incluso scripts shell), y siempre que tengas un intérprete para compilar ese lenguaje.

Ejecutar un script CGI en DreamHost

Para ejecutarlo, copia el script en un directorio accesible desde la web (por ejemplo, /home/username/example.com/cgi-bin). No tienes que poner tus scripts CGI en un directorio cgi-bin, ya que los scripts CGI pueden ejecutarse desde cualquier directorio dentro de tu dominio en DreamHost. El servidor comprende varias extensiones de archivo (por ejemplo, .pl), pero si ves el código fuente de tu script en lugar del resultado de su ejecución, intenta usar la extensión genérica .cgi.

Si obtienes un "500 Internal Server Error", puede que necesites cambiar los permisos del archivo:

[server]$ chmod 755 script.cgi

Ejecutar un script CGI sin una extensión .cgi

Si deseas instalar un script CGI sin la extensión .cgi, simplemente usa una directiva <Files> en tu .htaccess. Por ejemplo, si deseas tener un directorio cgi-bin, crea un archivo llamado .htaccess dentro de él y luego inserta lo siguiente:

<Files *>
  SetHandler cgi-script
</Files>

Una vez que agregues esta directiva, todos los archivos dentro del directorio se ejecutarán como scripts CGI.

Ejemplos de scripts CGI

Perl

#!/usr/bin/perl

use strict;
use CGI;

my $q = CGI->new;
print $q->header();
print "Hello, world!";

Python

#!/usr/bin/python

print "Content-type: text/html"
print
print "Hello, world!"

Ruby

#!/usr/bin/ruby

require 'cgi'

cgi = CGI.new
cgi.out{ 'Hello, world!' }

Shell Script

#!/bin/sh

echo "Content-type: text/html"
echo
echo "Hello, world!"

suEXEC

suEXEC está habilitado para todos los usuarios de DreamHost y no se puede deshabilitar. Debido a esto, algunas características, como la directiva SetEnv en archivos .htaccess, no funcionarán como se esperaba. Consulta la página de suEXEC para obtener soluciones y más detalles.

Solucionar problemas CGI

Consulta el siguiente artículo para obtener ayuda con la solución de problemas de CGI:

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?