• Publicidad

Problema añadiendo path en @INC en Apache2

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

Problema añadiendo path en @INC en Apache2

Notapor miguialberto » 2008-10-09 03:54 @204

Hola,

A ver si me podéis ayudar con un problema que no tengo manera de resolver: Acabo de instalar RedHat Linux 5 en un servidor Dell. Ahora me tocaba configurar Apache2 para visualizar una serie de páginas que acceden a una base de datos local. El caso es que la página de inicio tiene que ejecutar un script Perl el cual es de elaboración propia y se encuentra en un determinado path: "/var/www/cgi-bin".

El caso es que cuando intento cargar la página, me sale el siguiente error en el log de Apache:

Código: Seleccionar todo
Cant't locate xxx.pm in @INC(....).


Dentro del paréntesis de @INC aparece una lista con todos los paths que contiene.

Para solucionar esto, en el código del script que usa mi módulo, he agregado el path donde se encuentra dicho módulo y le he dado todos los permisos necesarios. El código que he puesto al principio del script es:

Código: Seleccionar todo
BEGIN{ push(@INC,'/var/www/cgi-bin');};


El path donde están el script y el módulo es el mismo.

El caso es que me sigue dando el mismo error a pesar de que en el log de Apache, al sacar la lista de @INC con todas las rutas que mira para buscar el módulo, APARECE la que le he puesto, pero es como sino la leyera.

Es como si Apache no "refrescara" la @INC y solo leyera los datos que se cargan por defecto.

¿Alguna ayuda?

¡Gracias!
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301

Publicidad

Notapor explorer » 2008-10-09 08:20 @389

Perl también tiene en el @INC el propio directorio (.), así que es muy raro que no lo encuentre, salvo que sea un fallo de permisos del fichero, que no permita leer al usuario que ejecuta el servidor web.

Dale permisos 644 al módulo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor miguialberto » 2008-10-09 09:22 @432

Eso fue lo primero que hice:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
chmod 777 *
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Leí que el problema más común era ese, pero nada, sigue sin funcionar.

He leído más cosas sobre modificar @INC, pero todas usando perl_mod, y en mi caso estoy intentando ejecutar en cgi... lo único que se me ocurre es que sea por motivos de seguridad o algo, pero no sé...
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301

Notapor explorer » 2008-10-09 12:40 @569

Te aconsejo que pongas el módulo CGI::Carp al principio del programa, para ver si el servidor web da más información.

Mira mi CGI mínimo para ver cómo usarlo.

La forma básica de modificar @INC es como lo has hecho antes, o usar el pragma lib.

¿No estará influyendo otras líneas del programa?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor miguialberto » 2008-10-19 12:13 @551

Bueno, ¡puedo al final contestar con buenas noticias! Cuento cómo se solucionó el problema.

Todos estos problemas aparecían en un servidor Apache que se encontraba en un RedHat 5 recién instalado. El problema de modificar @INC era solo uno de ellos: tampoco se podían ejecutar cgi o cambiar el nombre de la página index.html. Después de trastear durante varias horas por el archivo de configuración de Apache y de pensar que los problemas no estaban entre ellos todos relacionados, resultó ser una tontería, aunque como todas las tonterías, si no las conoces, te fastidian.

EL caso es que RedHat 5 viene por defecto con un sistema de seguridad activado. Este sistema se llama SELinux, y tiene una serie de reglas muy restrictivas. Mirando más tarde en la Wikipedia resulta que estas restricciones son usadas hasta por el departamento de seguridad de los EEUU. Así que para solucionar los problemas solo basta con desactivar esta opción, que se encuentra en la misma ventana que el cortafuegos.

En fin, ¡espero que si le pasa a otra persona, pueda leer esto!

Saludos.
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301


Volver a Web

¿Quién está conectado?

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