servidor de Perl y Apache HTTP: No se puede hacer lazo MLDBM cuando el script CGI se ejecuta desde el servidor, pero está bien cuando se ejecuta desde la línea de comandos. ¿Por qué?

StackOverflow https://stackoverflow.com/questions/3060262

Pregunta

ayuda por favor! Realmente estoy volviendo loco con este problema!

Tengo un script CGI Perl y siempre falla en la línea siguiente cuando se ejecuta desde el servidor Apache HTTP:

tie %db, 'MLDBM', "$data_path/$db_name.db", O_RDONLY, 0640 or die $!

y el error se Permiso denegado:

  

Error de software:

     

Permiso denegado en / var / www / cgi-bin / pages / ricos / visualización de la línea 381.

     

Para obtener ayuda, por favor envíe un correo a webmaster (root @ localhost), dando este mensaje de error y la hora y fecha del error.

Sin embargo, cuando se ejecuta desde la línea de comandos, funciona sin ningún problema.

Me he asegurado de que los directorios y el archivo para atar tienen los permisos correctos.

¿Qué más me he perdido? ¿Qué configuraciones en httpd.conf que pudiera estar recibiendo equivocada del Apache? Es cierto, yo no tenía ninguna experiencia previa con el servidor Apache HTTP, así que esto es más o menos mi primera vez jugando un rato con él. Sin embargo, he leído los manuales más de una vez a buscar cosas que podría estar equivocado en, pero no vi nada. Pero podría estar equivocado, por supuesto.

Gracias !!

¿Fue útil?

Solución

¿Ha verificado que $data_path y $db_name contienen lo que usted piensa que lo hacen?

es $data_path una ruta absoluta, que no depende de directorio de identidad o el domicilio del usuario activo?

¿Qué muestra ls -l $data_path/$db_name.db de propiedad y los permisos del archivo?

nunca he correr a través de (o escuchado de) cualquier cosa en Apache que impida un proceso CGI de tener permiso para abrir archivos, así que altamente duda de que es un problema de configuración de Apache. Lo más probable es o buscando el archivo incorrecto o los permisos del archivo son incorrectos para el usuario que se ejecuta Apache proceso CGI como.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top