Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » Ejecutar .cgi desde el navegador Responder al tema
Nuevo tema


Página 1 de 1  [ 5 mensajes ] 
 
Nota 2010-11-29 05:22 @265

Perlero Nuevo
Registrado: 2010-11-29 05:15 @261
Mensajes: 3
Ejecutar .cgi desde el navegador
¡Hola a todos! Soy nuevo en esto y estoy un poco perdido, pido disculpas de antemano. La cosa es que intento ejecutar un archivo .cgi desde cualquier navegador y me da la opción de descargarlo, pero no me lo ejecuta. El archivo .cgi está alojado en la carpeta /usr/lib/cgi-bin/ en Ubuntu y tiene todos los permisos activados. ¿Alguien podría ayudarme?

Muchas gracias y un saludo a todos.


Nota 2010-11-29 08:58 @415
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Ejecutar .cgi desde el navegador
Bienvenido a los foros de Perl en Español, juan722.

Es muy posible que en el fichero de configuración del servidor web no esté indicado que /usr/lib/cgi-bin es un directorio que contiene programas ejecutables. Debería ser algo así:

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
## CGI's
AddHandler cgi-script .cgi .sh .pl .ida
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /cgi/     /usr/lib/cgi-bin/
<Directory /usr/lib/cgi-bin/>
    AllowOverride None
    Options ExecCGI FollowSymLinks -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>


Que quiere decir:
* AddHandler: esto asocia una(s) determinada(s) extensiones de ficheros con un comportamiento. Así, cualquier fichero que acabe en .cgi será ejecutado con el controlador cgi-script. En teoría, se podría entonces colocar esos ficheros en cualquier directorio, pero hay otras reglas que lo suelen impedir

* ScriptAlias: indicamos que, cuando una petición HTTP contenga /cgi-bin/, se debe referir de forma condicional con el directorio /usr/lib/cgi-bin. Lo mismo para /cgi/

* Directory: Ahí es donde está lo que nos interesa: con Options ExecCGI indicamos que en ese directorio se debe ejecutar, en lugar de entregar al usuario.

Más información, en la página de Apache.

_________________
JF^D Perl programming


Nota 2010-11-30 04:24 @225

Perlero Nuevo
Registrado: 2010-11-29 05:15 @261
Mensajes: 3
Re: Ejecutar .cgi desde el navegador
Buenas y gracias por la respuesta. He colocado las líneas que me indicaste pero dan error al arrancar el servidor. Uso lighttpd. Hasta ahora yo añadía las siguientes líneas para cgi:

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
alias.url=("/cgi-bin/"=>"/usr/lib/cgi-bin/")
$HTTP["url"]= ~ "/cgi-bin/"{
cgi.assign=(""=>"")
}


Muchas gracias.


Nota 2010-11-30 19:01 @834
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Ejecutar .cgi desde el navegador
De lighttpd no sé nada. Pero buscando por Google me sale esta página, donde pone esta configuración:

1.- Crear el directorio cgi-bin
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
# mkdir -p /home/lighttpd/theos.in/cgi-bin


2.- Cargar el módulo mod_cgi. Editar el fichero /etc/lighttpd/ligttpd.conf y añadir o modificar la siguiente línea:
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
server.modules += ( "mod_cgi" )


Añadir la siguiente línea en la configuración del servidor virtual:
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
$HTTP["url"] =~ "/cgi-bin/" {
      cgi.assign = ( ".pl" => "/usr/bin/perl" )
}


La configuración completa (para el autor del artículo) es:
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
$HTTP["host"]  =~ "theos.in" {
  server.document-root = "/home/lighttpd/theos.in/http"
  accesslog.filename         = "/var/log/lighttpd/theos.in/access.log"
  $HTTP["url"] =~ "/cgi-bin/" {
      cgi.assign = ( ".pl" => "/usr/bin/perl" )
  }
}


3.- Reiniciar Lighttpd
4.- Comprobar
5.- Profit!

Para sacar el carácter '~', puedes leer este mensaje anterior.

_________________
JF^D Perl programming


Nota 2010-12-01 04:17 @220

Perlero Nuevo
Registrado: 2010-11-29 05:15 @261
Mensajes: 3
Re: Ejecutar .cgi desde el navegador
Muchas gracias por todo. Lo solucioné añadiendo un módulo que le faltaba (mod_cgi).

Muchas gracias por la ayuda.


Responder al tema  [ 5 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO