• Publicidad

Cómo ejecutar aplicaciones .pl

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Cómo ejecutar aplicaciones .pl

Notapor _nemo_ » 2011-02-17 10:40 @486

Hola a todos y disculpen la simpleza de esta pregunta, el royo es que estoy empezando en el mundo del Perl, pues tengo una aplicación desarrollada en Perl que necesito montar, pero cuando intento acceder a ella desde la web al link http://my-server/passwd/ donde en la directorio passwd tengo los script .pl, el navegador me devuelve el siguiente error

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Previendo de que fuese un error en los códigos .pl en dicho directorio cree un simplísimo archivo prueba.pl que lo que contiene dentro es simplemente
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. print "Hola mundo";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


y nuevamente el navegador me devuelve el mismo mensaje de error.

Ahora mi pregunta especifica es la siguiente: ¿cómo puedo habilitar en el Apache para que me reconozca los .pl y pueda ver el famoso HOla mundo.

Gracias a todos y nuevamente disculpa por la simpleza de la pregunta.
_nemo_
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2011-02-17 10:27 @477

Publicidad

Re: Cómo ejecutar aplicaciones .pl

Notapor explorer » 2011-02-17 11:37 @525

Bienvenido a los foros de Perl en Español, _nemo_.

Tú, lo que quieres hacer, se llama crear un CGI.

Si tienes un Apache moderno, es muy posible que el soporte de CGI ya esté instalado.

De todas maneras, mira los ficheros de configuración del servidor Apache, y busca por la palabra cgi.

Por ejemplo, en la mayor porte de las distribuciones Linux, se define el directorio /usr/lib/cgi-bin como uno en el que los programas residentes allí serán ejecutados con el protocolo CGI.

También es posible que las extensiones de los ficheros definan ese comportamiento. Muy posiblemente las extensiones .pl y .cgi estén definidas así en esos ficheros.

Después de repasar la configuración del Apache, hay que colocar el programa así:

* en un directorio en que el servidor web lo pueda encontrar, leer y ejecutar. Para ello, hay que repasar los directorios vistos en el paso anterior.

* el programa va a ser ejecutado por el usuario que ejecuta el propio servidor web, que normalmente será www-data o httpd. Como nuestro programa está puesto a nuestro nombre, haremos una de estas dos cosas: o le damos permiso de ejecución para todo el mundo (y eso incluirá el usuario www-data), o bien cambiamos el propietario del programa, de nosotros a www-data. Lo más sencillo es usar la primera opción, con el comando chmod 755 programa.pl o desde el FTP

Ahora ya podemos intentar invocarlo desde el navegador web.

Si no funciona, lo primero que hay que hacer es mirar los ficheros de log del propio servidor web (error.log, por ejemplo).

Te recomiendo que mires la sección de Tutoriales sobre CGI de este mismo web. El llamado "Primeros pasos" muestra un cgi que tiene lo mínimo para funcionar. Si te fijas, te falta sacar un "Content-type".

También puedes copiar y probar mi CGI mínimo donde verás que se puede crear un CGI de forma rápida, con la ayuda del comando CGI. Y con la ayuda de CGI::Carp, los mensajes de error salen en la pantalla (no solo en el error.log).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cómo ejecutar aplicaciones .pl

Notapor _nemo_ » 2011-02-17 12:16 @552

explorer, gracias por tu respuesta. Mira, especifico un poco más para ser más explicito.

En mi server en la conf del Apache tengo lo siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Alias /squish "/etc/squid/squish"
<Directory "/etc/squid/squish/">
        Options +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex squish.cgi
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


y tecleando en mi navegador http://mysite/squish, veo mi aplicación .cgi. Es decir, en mi Apache las aplicaciones cgi están corriendo bien. Ahora, eso mismo lo hago con mi aplicación .pl y me da el error que antes expuse.

Saludos
_nemo_
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2011-02-17 10:27 @477

Re: Cómo ejecutar aplicaciones .pl

Notapor _nemo_ » 2011-02-17 12:29 @562

Ya logré arreglar el problema y poder correr el script. Solamente comenté la línea del script.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. use Expect;  


dejándola así

Sintáxis: [ Descargar ] [ Ocultar ]
  1. #use Expect; 


Espero que eso no me traiga problemas en lo adelante

Gracias
_nemo_
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2011-02-17 10:27 @477

Re: Cómo ejecutar aplicaciones .pl

Notapor explorer » 2011-02-17 12:33 @564

Apuesto a que el error era que no tienes instalado el módulo Expect.

Y apuesto a que tu programa seguirá dando errores, esta vez avisando de que hay líneas que necesitan de ese módulo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados