• Publicidad

Apache no me ejecuta los programas Perl

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

Re: Apache no me ejecuta los programas Perl

Notapor explorer » 2011-02-21 08:25 @393

¡Ajá!

Dices que Perl está en /usr/bin/perl, pero en la cabecera del programa pones
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Por favor, comprueba que exista perl en /usr/local/bin/.

Si no está, modifica el programa a
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y pruebas.
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

Publicidad

Re: Apache no me ejecuta los programas Perl

Notapor noa86 » 2011-02-21 08:41 @403

En #!usr/local/bin/perl no está, no. En ese archivo de hola mundo se me había colado el local/, pero en los demás programas que tengo está puesto #!usr/bin/perl que es donde está, y nunca he tenido problemas. En mundo.perl lo he cambiado también y sigue tirándome el mismo error Apache.
noa86
Perlero nuevo
Perlero nuevo
 
Mensajes: 93
Registrado: 2010-11-15 14:43 @655

Re: Apache no me ejecuta los programas Perl

Notapor explorer » 2011-02-21 10:37 @484

Bueno, la siguiente acción será desactivar el módulo Suexec, del Apache.

Desde la línea de comandos, prueba a ver si puedes ejecutar a2dismod suexec. Si no funciona, prueba luego con ejecutar solo a2dismod, para ver si te saca la lista de módulos, y elegir el suexec. Y si esto no funciona, habrá que entrar en los ficheros de configuración para desactivarlo.
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: Apache no me ejecuta los programas Perl

Notapor noa86 » 2011-02-21 13:13 @592

Me dice comando no encontrado...

He instalado en otro equipo de casa Fedora 14, que es con el que estoy trabajando. He instalado Apache y tampoco me deja ejecutar http://localhost/cgi-bin/mundo.perl

¿Puede ser problema de la conexión de Internet o algo así? Es que ya no sé qué pensar. Me estoy empezando a desesperar un poco, porque tengo que realizar un proyecto muy importante, y si Apache no me funciona no puedo hacer nada...

¿Puede ser que tenga que cambiar algo de httpd.conf?

Lo que se me hace extraño es que hasta ahora no he tenido ningún problema, y de repente no funciona, ni siquiera instalando desde cero Fedora 14 e instalando:
yum install php mysql-server httpd mysql

He iniciado el httpd y mysqld y luego e instalado CPAN, y CGI:Carp, y por ejemplo al ejecutar el archivo ./prueba.perl me sale un error :

Can't locate CGI/Carp.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl .) at ./prueba.cgi line 2.
BEGIN failed--compilation aborted at ./prueba.cgi line 2.

y prueba .perl contiene:

#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
print "¡Hola mundo!\n"; # "\n" es un 'nueva línea'
# Asi de sencillo.

De verdad que no entiendo nada. Ni me funciona Apache y encima me dan errores que en la vida me han dado...
noa86
Perlero nuevo
Perlero nuevo
 
Mensajes: 93
Registrado: 2010-11-15 14:43 @655

Re: Apache no me ejecuta los programas Perl

Notapor explorer » 2011-02-21 15:19 @679

Si no se han cambiado las condiciones internas (no se han actualizado los programas ni el Apache, ni su configuración), entonces hay que pensar en las externas (no funcionan los DNS, hay un cortafuegos...)

Lo que siempre debería funcionar es instalado en la propia máquina, pues la mayoría de las distribuciones Linux trae el Apache con soporte CGI instalado.

Desde la línea de comandos, puedes intentar ejecutar el comando

wget http://localhost/cgi-bin/mundo.perl

Eso sí... yo cambiaría la extensión .perl a .cgi o .pl. El servidor web suele estar configurado para servir CGI solo si termina en esas extensiones, sobre todo si es .cgi.
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: Apache no me ejecuta los programas Perl

Notapor noa86 » 2011-02-21 15:48 @700

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
[root@localhost cgi-bin]# wget http://localhost/cgi-bin/mundo.cgi
--2011-02-21 21:55:43-- http://localhost/cgi-bin/mundo.cgi
Resolviendo localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... conectado.
Petición HTTP enviada, esperando respuesta... 500 Internal Server Error
2011-02-21 21:55:43 ERROR 500: Internal Server Error.
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


No sé si esto cambia algo el tipo de error de Apache, pero ahora al ejecutar los diferentes archivos de prueba me da distinto error en error_log:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
[Mon Feb 21 20:55:19 2011] [error] [client 127.0.0.1] Can't locate CGI/Carp.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl .) at /var/www/cgi-bin/prueba.cgi line 2.
[Mon Feb 21 20:55:19 2011] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at /var/www/cgi-bin/prueba.cgi line 2.
[Mon Feb 21 20:55:19 2011] [error] [client 127.0.0.1] Premature end of script headers: prueba.cgi
[Mon Feb 21 21:37:39 2011] [error] [client 127.0.0.1] (2)No such file or directory: exec of '/var/www/cgi-bin/mundo.cgi' failed
[Mon Feb 21 21:37:39 2011] [error] [client 127.0.0.1] Premature end of script headers: mundo.cgi
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo que me extraña es que me diga que no localiza CGI::Carp porque yo creo que sí que lo he instalado correctamente.

Pero buen, mundo.cgi (que le he cambiado perl por cgi) sigue dándome error Apache.
noa86
Perlero nuevo
Perlero nuevo
 
Mensajes: 93
Registrado: 2010-11-15 14:43 @655

Re: Apache no me ejecuta los programas Perl

Notapor explorer » 2011-02-21 16:01 @709

Bueno, ya vemos algo más conocido...

Si sale el error, es que perl no localiza el módulo.

Dices que está instalado. Bien. Ejecuta lo siguiente y te dirá dónde está, si es que Perl lo encuentra:

perl -MCGI::Carp -E 'say $INC{"CGI/Carp.pm"}'

Si te sale error, es que Perl no lo encuentra en alguno de los directorios indicados en el mensaje de error. Búscalo. Debería de estar instalado, porque creo recordar que ese módulo debe estar incluido de base en la distribución de Perl.
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: Apache no me ejecuta los programas Perl

Notapor noa86 » 2011-02-21 16:04 @711

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -MCGI::Carp -E 'say $INC{"CGI/Carp.pm"}'
  2. Can't locate CGI/Carp.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl .).
  3. BEGIN failed--compilation aborted.
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Pues no lo encuentra. Y que yo sepa lo he instalado...
noa86
Perlero nuevo
Perlero nuevo
 
Mensajes: 93
Registrado: 2010-11-15 14:43 @655

Re: Apache no me ejecuta los programas Perl

Notapor explorer » 2011-02-21 16:34 @732

Pues en algún sitio estará, pero no en esos directorios. Si tienes instaladas las find-utils, con el comando locate se puede saber dónde está el fichero Carp.pm.

Y si no... pues entra en el sistema de paquetería de Fedora, e intenta instalarlo.
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: Apache no me ejecuta los programas Perl

Notapor noa86 » 2011-02-21 16:48 @741

No me deja instalarlo porque me exige el CGI, y el CGI no me deja porque me pide el FCGI, es un no parar. Me extraña porque todo esto tendría que estar instalado...

¿Puede ser que lo de Apache todo venga el error por esto? ¿O eso es por otra cosa?

Lo que me extraña es que en los dos equipos me pase lo mismo...
noa86
Perlero nuevo
Perlero nuevo
 
Mensajes: 93
Registrado: 2010-11-15 14:43 @655

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

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