2011-10-26 18 views
8

Uso MediaWiki pero hay un error. Lo encontré en los archivos. Hay línea con este código:realpath devuelve cadena vacía

$IP = realpath('.'); 

Pero IP $ devuelve una cadena vacía, por lo que la ruta de los archivos en el sistema no está funcionando. (por ejemplo, si $ IP sería . o E:/path_to_wwwroot funciona). ¿Cómo puedo resolver el problema? ¿Es posible que mi proveedor haya bloqueado el acceso a realpath?

Gracias!

+0

¿Te alegras con '. /'? No debería marcar la diferencia, pero podría valer la pena intentarlo ... – DaveRandom

+0

No :-($ IP todavía está vacío. Pero, por ejemplo, funciona el nombre base. Pero no lo uso, quiero saber por qué me aparece este error. Puede haber más errores con realpath :-( – Jordy

+1

y también 'realpath()' no funciona en archivos que no existen. – Thamaraiselvam

Respuesta

14

Fuente: http://php.net/manual/en/function.realpath.php

Nota: El script en ejecución debe tener permisos de ejecución en todos los directorios de la jerarquía, de lo contrario realpath() volverá FALSO.

De modo que su servidor web debería tener acceso también a los directorios de raíz previa a la web.

+2

Ah gracias, ¿Necesita permisos de lectura en todos los directorios en el wwwroot? O también los archivos fuera de wwwroot ? – Jordy

+0

Wow, resolvió el problema! Muchas gracias. Necesitaba cambiar el permiso de lectura de mi mapa de subdominios. ¡Gracias! – Jordy

+0

Me encontré con esto cuando estaba ejecutando la aplicación "portátil" PHP + NGINX WT-NMP y mi La aplicación de sandboxed PHP hacía referencia a bibliotecas fuera de la ruta que especifiqué para open_basedir en php.ini. Lo resolví añadiendo también mi ruta de biblioteca a open_basedir (usando el delimitador ";" en Windows). – ftexperts

0

Actualmente estoy experimentando este resultado al ejecutar PHP desde la línea de comandos, pero no dentro de una solicitud HTTP. Tengo que configurar config o $ _SERVER configuración en algún lugar, se actualizará si encuentro la solución.

Cuestiones relacionadas