• Publicidad

Ejecutar .cgi desde el navegador

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Ejecutar .cgi desde el navegador

Notapor juan722 » 2010-11-29 05:22 @265

¡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.
juan722
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2010-11-29 05:15 @261

Publicidad

Re: Ejecutar .cgi desde el navegador

Notapor explorer » 2010-11-29 08:58 @415

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í:

Sintáxis: [ Descargar ] [ Ocultar ]
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>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ejecutar .cgi desde el navegador

Notapor juan722 » 2010-11-30 04:24 @225

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:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
alias.url=("/cgi-bin/"=>"/usr/lib/cgi-bin/")
$HTTP["url"]= ~ "/cgi-bin/"{
cgi.assign=(""=>"")
}
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Muchas gracias.
juan722
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2010-11-29 05:15 @261

Re: Ejecutar .cgi desde el navegador

Notapor explorer » 2010-11-30 19:01 @834

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
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
# mkdir -p /home/lighttpd/theos.in/cgi-bin
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


2.- Cargar el módulo mod_cgi. Editar el fichero /etc/lighttpd/ligttpd.conf y añadir o modificar la siguiente línea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
server.modules += ( "mod_cgi" )
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Añadir la siguiente línea en la configuración del servidor virtual:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$HTTP["url"] =~ "/cgi-bin/" {
      cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


La configuración completa (para el autor del artículo) es:
Sintáxis: [ Descargar ] [ Ocultar ]
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" )
  }
}
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


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

Para sacar el carácter '~', puedes leer este mensaje anterior.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ejecutar .cgi desde el navegador

Notapor juan722 » 2010-12-01 04:17 @220

Muchas gracias por todo. Lo solucioné añadiendo un módulo que le faltaba (mod_cgi).

Muchas gracias por la ayuda.
juan722
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2010-11-29 05:15 @261

Re: Ejecutar .cgi desde el navegador

Notapor acidb1 » 2013-08-24 17:40 @778

juan722, si lo solucionaste indica detalladamente cómo lo hiciste.

Por cierto, veo que estás familiarizado con el concepto de leecher.
Saludos

juan722 escribiste:Muchas gracias por todo. Lo solucioné añadiendo un módulo que le faltaba (mod_cgi).
acidb1
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2013-08-24 17:28 @769


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado