Napraw błąd PHP „open_basedir restriction in effect” w LWS Panelu

Procédure

  

Usługa, której dotyczy : współdzielony hosting webowy LWS Panel
Panel, którego dotyczy : LWS Panel
Poziom : średnio zaawansowany

Błąd open_basedir restriction in effect pojawia się, gdy skrypt PHP próbuje uzyskać dostęp do pliku lub folderu znajdującego się poza obszarem dozwolonym na Twoim hostingu.

Może on wystąpić zwłaszcza po migracji strony, z powodu starej ścieżki zapisanej w konfiguracji, nieprawidłowo skonfigurowanego rozszerzenia lub własnego skryptu.

Przed rozpoczęciem

Zachowaj kopię pliku przed jego modyfikacją. Powinieneś również dysponować pełnym komunikatem błędu, aby zidentyfikować odrzuconą ścieżkę i plik PHP będący źródłem problemu.

Zrozumienie komunikatu o błędzie

Komunikat może wyglądać jak w tym przykładzie :

Warning: include(): open_basedir restriction in effect.
File(/home/ancien-hebergeur/public_html/config.php)
is not within the allowed path(s):
(/var/www/exemple.com/htdocs/:/tmp/)
in /var/www/exemple.com/htdocs/index.php on line 24

Zawiera on kilka przydatnych informacji :

  • /home/ancien-hebergeur/public_html/config.php to plik, do którego skrypt [ADDRESS] ;
  • /var/www/exemple.com/htdocs/ odpowiada przestrzeni, w której pliki Twojej strony mogą być używane ;
  • /var/www/exemple.com/htdocs/index.php to skrypt [PERSON_NAME] próbuje otworzyć plik ;
  • line 24 wskazuje linię, której dotyczy problem w tym skrypcie.

W tym przykładzie strona nadal używa ścieżki pochodzącej ze starego hostingu. PHP blokuje więc dostęp do pliku.

Odnalezienie błędu w logach PHP

Jeśli Twoja strona wyświetla jedynie białą stronę lub błąd 500, sprawdź logi hostingu :

  1. Otwórz narzędzie Logi Apache / PHP.
  2. Odtwórz czynność, która powoduje problem na Twojej stronie.
  3. Odśwież logi i wyszukaj wiersz zawierający open_basedir restriction in effect.
  4. Zanotuj odrzuconą ścieżkę oraz plik PHP wskazany na końcu komunikatu.

Najbardziej aktualne wpisy znajdują się zazwyczaj na końcu logu.

Poprawa ścieżki używanej przez stronę

1. Sprawdź rzeczywiste położenie pliku

Na LWS Panel publiczne pliki strony są zazwyczaj umieszczone w katalogu tego typu :

/var/www/votre-domaine.fr/htdocs/

Zastąp votre-domaine.fr nazwą odpowiedniej domeny.

Następnie sprawdź w menedżerze plików lub przez FTP, czy szukany plik [PERSON_NAME] w jednym z jego podkatalogów.

2. Znajdź starą ścieżkę

Nieprawidłowa ścieżka może być zapisana :

  • w pliku konfiguracyjnym ;
  • w niestandardowym skrypcie PHP ;
  • w ustawieniach rozszerzenia lub motywu ;
  • w konfiguracji folderu cache, importu, kopii zapasowej lub plików tymczasowych ;
  • w danych zachowanych po migracji.

Szukaj przede wszystkim charakterystycznej części starej ścieżki, na przykład :

/home/ancien-hebergeur/

Nie modyfikuj losowo wewnętrznych plików WordPressa, PrestaShop ani innej aplikacji. Zacznij od sprawdzenia konfiguracji rozszerzenia lub modułu wskazanego w komunikacie o błędzie.

3. Zastąp nieprawidłową ścieżkę

Zastąp starą ścieżkę rzeczywistą ścieżką pliku na Twoim hostingu LWS.

Na przykład :

Ancien chemin :
/home/ancien-hebergeur/public_html/cache/

Nouveau chemin :
/var/www/votre-domaine.fr/htdocs/cache/

W niestandardowym skrypcie PHP często lepiej jest budować ścieżkę na podstawie katalogu skryptu, zamiast zapisywać pełną ścieżkę serwera.

Na przykład :

require __DIR__ . '/config.php';

Ten zapis pozwala skryptowi wyszukać config.php w jego własnym katalogu.

Dyrektywa open_basedir nie może zostać zmieniona ani wyłączona z poziomu pliku .user.ini na LWS Panel.

Tego zabezpieczenia nie należy obchodzić. Musisz poprawić ścieżkę używaną przez stronę, skrypt lub rozszerzenie.

4. Wyczyść pamięć podręczną aplikacji

Po poprawieniu ścieżki wyczyść pamięć podręczną z poziomu interfejsu CMS-a lub aplikacji.

Stara ścieżka może pozostać zapisana w pliku cache, nawet po zmianie konfiguracji.

Sprawdź, czy wszystko działa

Dokładnie odtwórz czynność, która powodowała błąd: otwórz odpowiednią stronę, wyślij formularz lub ponów przerwaną operację.

Następnie ponownie sprawdź logi PHP. Nie powinien pojawić się żaden nowy wpis open_basedir restriction in effect.

Naprawa jest zakończona, gdy odpowiednia strona lub funkcjonalność znów działa i w logach PHP nie pojawia się nowy błąd open_basedir.

Częste problemy

Widzę tylko błąd 500 albo białą stronę

Pełny komunikat prawdopodobnie jest zapisany w logach PHP. Otwórz narzędzie Logi Apache / PHP z poziomu LWS Panel, a następnie odtwórz błąd przed odświeżeniem logu.

Wskazana ścieżka odpowiada mojemu poprzedniemu hostingowi

Ścieżka bezwzględna nie została zaktualizowana podczas migracji. Poszukaj tej ścieżki w plikach konfiguracyjnych, ustawieniach rozszerzeń i niestandardowych skryptach.

Zastąp ją aktualną ścieżką Twojej strony w panelu [ADDRESS].

Nie mogę znaleźć, gdzie ta ścieżka jest zapisana

Sprawdź nazwę pliku PHP wyświetloną na końcu komunikatu o błędzie. Często pozwala ona zidentyfikować daną aplikację, motyw, rozszerzenie lub skrypt.

W przypadku rozszerzenia najpierw sprawdź jego ustawienia dotyczące cache, importu, kopii zapasowych lub plików tymczasowych.

Plik znajduje się w folderze htdocs, [PERSON_NAME] nadal występuje

Sprawdź, czy ścieżka używana przez skrypt dokładnie odpowiada rzeczywistemu położeniu pliku.

Dowiązanie symboliczne może również wyglądać tak, jakby wskazywało na plik strony, a jednocześnie kierować PHP do lokalizacji poza dozwolonym obszarem. W takim przypadku zastąp dowiązanie bezpośrednim dostępem do pliku znajdującego się w katalogu strony.

Błąd pojawia się ponownie po zmianie

Wyczyść pamięć podręczną aplikacji, a następnie odtwórz problem. Sprawdź również, czy ścieżka nie jest zapisana w kilku miejscach.

Oceń ten artykuł :

Ten artykuł był dla Ciebie przydatny ?

Article utileTak

Article non utileNie

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobne artykuły

0mn czytanie

Błąd Cloudflare 524: Wystąpił przekroczenie limitu czasu

3mn czytanie

Jak poprawić błąd 500 w witrynie za pomocą panelu LWS

9mn czytanie

Jak poprawić kody błędów HTTP?

0mn czytanie

Błąd 404, czym jest i jak go poprawić


Questions sur cet article

Zadaj pytanie zespołowi LWS i jego społeczności

RGPD : Responsable LWS-Ligne Web Services. Finalité : modération et publication publique de votre question, notification éventuelle d'une réponse. Base légale : consentement (art. 6.1.a RGPD). Conservation des emails : 90 jours après notification, 12 mois maximum sans réponse. Vous pouvez exercer vos droits via notre nos CGV - section RGPD.