2011-10-26 13 views
8

Używam MediaWiki, ale wystąpił błąd. Znalazłem to w plikach. Istnieje linia z tym kodem:realpath zwraca pusty ciąg

$IP = realpath('.'); 

Ale $ IP zwraca pusty ciąg, więc ścieżka do plików w systemie nie działa. (na przykład jeśli $ IP będzie . lub E:/path_to_wwwroot to działa). Jak mogę rozwiązać problem. Czy to możliwe, że mój dostawca zablokował dostęp do realpath?

Dzięki!

+0

Czy otrzymujesz radość z '. /'? Nie powinno to mieć znaczenia, ale może być warte strzału ... – DaveRandom

+0

Nie :-($ IP jest nadal pusty, ale na przykład działa basename, ale ja go nie używam, chcę wiedzieć, dlaczego dostaję ten błąd. Z prawdziwą ścieżką może być więcej błędów :-( – Jordy

+1

, a także 'realpath()' nie działa na plikach, które nie istnieją – Thamaraiselvam

Odpowiedz

14

Źródło: http://php.net/manual/en/function.realpath.php

Uwaga: Skrypt działa musi mieć uprawnienia wykonywalne na wszystkich katalogów w hierarchii, inaczej realpath() zwróci FAŁSZ.

Twój serwer internetowy powinien mieć także dostęp do katalogów sprzed webroot.

+2

Ah dziękuje, potrzebuje uprawnień do odczytu dla wszystkich katalogów na wwwroot? Lub plików poza wwwroot ? – Jordy

+0

Wow, rozwiązał problem! Bardzo dziękuję, musiałem zmienić uprawnienia do odczytu z mojej mapy poddomeny Dzięki! – Jordy

+0

Wpadłem na to, gdy uruchomiłem "przenośną" aplikację PHP + NGINX WT-NMP i mój piaskownicowa aplikacja PHP odwoływała się do bibliotek znajdujących się poza ścieżką podaną dla open_basedir w php.ini. Rozwiązałem go, dodając również moją ścieżkę do biblioteki open_basedir (używając separatora ";" w systemie Windows). – ftexperts

0

Obecnie doświadczam tego wyniku podczas uruchamiania PHP z wiersza poleceń, ale nie w ramach żądania HTTP. Musi mieć gdzieś konfigurację lub ustawienia $ _SERVER, zaktualizuje się, jeśli znajdę poprawkę.

Powiązane problemy