Sigo con problemas con mi CGI

Forums: 

En primer lugar gracias a los que me contestaron, quiero decirles que segui las sugerencias de uds. asi:

1- Verifique que estuviera activo el servicio apache
2- Fui a ver el httpd.conf y efectivamente no tenia activados los parametros para manejar cgi, es decir, desmarque el addhandler cgi-script y reinicie el servicio
3- le di derechos de ejecucion a otros asi: #chmod 755 first.cgi
4- Corregi mi html y me quedo de la siguiente manera:

<html>
<head>
<title>Mi primer forma HTML con CGI</title>
</head>
<body>
<rh noshade>
<h1>Un simple boton submit</h1>
<FORM Method="GET" Action="/var/www/cgi-bin/first.cgi">
<input type="submit">
</FORM>
<hr noshade>
</body>
</html>

Trate de poner solo: cgi-bin/first.cgi como uno de uds. me dijo pero no me funcionaba, asi que puse la ruta completa.

5- Revise mi cgi y me quedo asi:

#! /usr/bin/perl
print "Content-type: text/html\n\n";
print <<"ending print tag";
<html>
<head>
<title>Mi primer CGI on the fly</title>
<background="#000000" text="#FF0000" >
</head>
<body>
<h1>Mi primer CGI otran vex</h1>
<em>HOLA INTERNET</em>
<hr noshade>
Echando un vistazo en el ciber espacio!!
</body>
</html>
ending_print_tag

6- Al probarlo directamente asi: #perl first.cgi me da el error siguiente:

can't find string terminator "ending print tag" anywhere before EOF at first.cgi line 3

y segun entiendo si esta el string.

Bueno, lo probe ejecutando el html con el mozilla y al hacer clic en el boton submit me carga siempre el codigo del cgi en una nueva ventana, estoy aprendiendo esto y ya me estoy desepcionando porque no le hallo, les agradezco si me echan una mano porque ya no se que hacer.
:cry:

David

Imagen de elhumano

Creo que debes poner atencion a gente que intenta ayudarte!

Lee bien ... Y MUY BIEN el codigo que RazaMetal te envio en tu post anterior

Este es el codigo correcto enviado por RazaMetal
[code:1:d7a1315c5c]
#!/usr/bin/perl
print "Content-Type: text:html\n\n";
print <<"ending_print_tag";
<html>
<head>
<title>Probando mi CGI</title>
<em>Hola Internet</em>
<hr>
</body>
</html>
ending_print_tag
[/code:1:d7a1315c5c]

y continuas cometiendo el mismo error!!!! en la linea
Numero :3
Ya? encontraste el detalle _ de lo que te estamos hablando?????

sobre tu formulario en html
[code:1:d7a1315c5c]
<FORM Method="GET" Action="/var/www/cgi-bin/first.cgi">
[/code:1:d7a1315c5c]

Si pones eso [b:d7a1315c5c]*NO*[/b:d7a1315c5c] te va a funcionar nunca en tu vida....

Si quiere llamar localmente tu cgi desde tu html usa:

[code:1:d7a1315c5c]
<FORM Method="GET" Action="http://localhost/cgi-bin/first.cgi">
o
<FORM Method="GET" Action="cgi-bin/first.cgi">
[/code:1:d7a1315c5c]

te repito
[b:d7a1315c5c]pon atencion.... pon atencion .... pon atencion....[/b:d7a1315c5c]

gracias

Ok, elhumano, tienes razon, ya vi con mas detenimieinto las ayudas que me han dado y les agradezco.

Arregle la linea 3 de mi cgi y lo corri a pie y me dio el codigo html, ok.

En el html hice el cambio, ya no me dio problemas cuando puse:

action="http;/localhost/first.cgi"

porque cuando use:

<FORM Method="GET" Action="cgi-bin/first.cgi">

me dio el siguiente error:

Unable to run the command specified
The file or directory file:/var/www/html/cgi-bin/first.cgi does not exist.

no se que estare haciendo mal, pero como ya me corrio de la otra forma, ahora me da un error de forbidden en vez de correr el cgi y ya vi que tiene privilegios de ejecucion.

Favor un poco de paciencia, estoy aprendiendo, aunque me voy a fijar mas

:)

David

Imagen de elhumano

Hola David
Insisto en que pongas atencion...

has puesto
[code:1:44129ecd32]
action="http;/localhost/first.cgi"
[/code:1:44129ecd32]
cuando lo correcto es:
[code:1:44129ecd32]
<FORM Method="GET" Action="http://localhost/cgi-bin/first.cgi">
[/code:1:44129ecd32]

[b:44129ecd32]Pero aqui el problema no es ese![/b:44129ecd32]
El problema es que no encuentra tu fichero ** first.cgi ** en la carpeta o directorio
[code:1:44129ecd32]
/var/www/html/cgi-bin/
[/code:1:44129ecd32]
tienes que copiarlo a ese lugar.. el *( first.cgi )*
recuerda hacer "chmod 755 first.cgi" estando dentro de *esa* carpeta..

Insisto una vez mas... en tu formulario html usa:
[code:1:44129ecd32]
<FORM Method="GET" Action="cgi-bin/first.cgi">
[/code:1:44129ecd32]

Otro consejo, trata de comprender los mensajes de error, por ejemplo este que te ha salido:

[code:1:44129ecd32]
Unable to run the command specified
The file or directory file:/var/www/html/cgi-bin/first.cgi does not exist.
[/code:1:44129ecd32]

La solicion a esto es la que te acabo de dar...

Suerte

Imagen de elhumano

Toda la explicacion dada lo hago asumiendo que tienes en tu httpd.conf o relacionado una directiva por defecto similar a esta
[code:1:a5b81559cd]ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/
[/code:1:a5b81559cd]

Ejecución de un CGI en Apache

Imagen de leninweblb

Ojala aun necesites la ayuda, me voy a tomar el tiempo de hacerte un manual (aprovechando que iba a estar vago la tarde jejejeje), ya que veo que estas un poco perdido (como lo estuvimos todos al inicio, pero espero que leas con atención, por que ya veo que ya van como 20 millones de hilos y no puedes arreglar tu problema aun, además te recomiendo que leas la documentación del Apache, cuando a mi se me presento esto, tuve que ver en la documentación, ahí esta todo, por eso los demás del foro no podían ayudarte mucho, ya que no tenias las bases necesarias para hacerlo, además toda la gente que te responde es gente que trabaja y no tienen mucho tiempo para poderte ayudar tan detalladamente, una parte importante para aprender Linux es leer, leer, leer y seguir leyendo, pero con esto no te estoy diciendo que no postees ni nada por el estilo, sino que antes de preguntar busques todo lo que puedas y pruebes todo lo que puedas, para que así cuando postees la solución sea rápida, ya que entenderás todo lo que te escriben), además mira yo en esto de Linux soy un newbie como vos, recién llevo 6 meses en esto, pero por ahí leyendo, buscando en el Google y molestando al uno y molestando al otro (de esto pueden dar fé Epe y RazaMetal que los he fastidiado hasta decir basta, pero que si me han sabido ayudar) he podido aprender cada día un poco, aunque me falta muuuuuuuucho aun, cada día avanzo un poquito. Espero que no interpretes mal esto, sino que solo es un aliento de apoyo para que sigas adelante y sigas usando software libre.

Bueno basta de palabrerios y comencemos:

Antes de todo crear dentro del directorio /var/www/html una carpeta que se llame ecualug (en esta carpeta vas a tener tus archivos html, ya que no es bueno trabajar en la raíz del servidor, imaginate cuando tengas que hacer un proyecto, en raíz del servidor vas a tener como mil archivos y eso es confuso), dentro de ecualug crea otra carpeta llamada cgi-bin en esta irán tus cgi’s)

1.- Editar el archivo /etc/httpd/conf/httpd.conf
Descomenta la siguiente línea y auméntale al final .pl ya que esta extensión no la tiene por defecto, sino pones el .pl al final, tendrías que crear tus cgi’s con la extensión .cgi, aunque igual los va a ejecutar como cgi’s (la extensión .pl se oye mas bacan jeje), entones la línea quedaría así:

AddHandler cgi-script .cgi .pl

(Esto sirve para decirle al servidor que los archivos con extensión .cgi y .pl los ejecute como scripts de perl, aunque se encuentren fuera del directorio que tenga Script Alias, que por defecto es /var/www/cgi-bin)

Luego en el mismo archivo de configuración busca estas líneas
<Directory “/var/www/cgi-bin

gracias

Pues gracias a Elhumano y a Leninweb por el manual, ya archive todas las ayudas en mi disco y las segui paso a paso y me funciono!!!, solo que tengo un problema :( y es que cuando hago clic en el boton submit y este llama el cgi, el browser abre el cuadro de dialogo open with y luego escojo el konkeror y lo abre bien, pero no he conseguido que lo abra directamente,

Les agradezco el tiempo que se han tomado en ayudarme, he saltado de windows a Linux y de Visual Fox a Perl, como dijo Leninweb he andado perdido, pero con este tipo de ayudas, ya no mas. Tratare de no abusar mucho.

Gracias nuevamente

David
:D