Jak naprawić błąd open_basedir restriction

Gdy tworzysz witrynę staging za pomocą darmowego pluginu WP STAGING, PHP może przerwać ten proces błędem open_basedir restriction. Komunikat oznacza, że PHP jest skonfigurowane tak, by odczytywać i zapisywać pliki tylko w obrębie ustalonej listy katalogów, a folder, w którym WP STAGING chce zbudować kopię staging, nie znajduje się na tej liście. Rozwiązaniem jest dodanie katalogu WordPress do linii open_basedir w pliku php.ini (lub w ustawieniach PHP twojego Hostingu) i zrestartowanie PHP. Ten przewodnik pokazuje, jak znaleźć plik, który PHP rzeczywiście ładuje, jak bezpiecznie go edytować oraz co sprawdzić, jeśli błąd nie znika.

Uwaga: Jeśli próbujesz utworzyć witrynę staging z WP Staging Pro i otrzymujesz ten błąd przy próbie utworzenia domyślnej witryny staging, możesz użyć zaawansowanego ustawienia, aby utworzyć witrynę staging w podfolderze „wp-content”. Wtedy możesz przestać tu czytać.

Jak wygląda błąd open_basedir restriction

open_basedir to ustawienie bezpieczeństwa PHP, które ogranicza dostęp do plików do zatwierdzonej listy katalogów. Kiedy jakikolwiek skrypt, w tym WP STAGING, próbuje sięgnąć do ścieżki spoza tej listy, PHP odmawia i zapisuje ostrzeżenie w logu. W logu serwera lub w logu debugowania WordPress zwykle wygląda ono mniej więcej tak:

Warning: open_basedir restriction in effect.
File(/var/www/html/staging) is not within the allowed path(s):
(/var/www/html/) in /var/www/html/... on line ...

Na tę stronę możesz też trafić z komunikatu WP STAGING, który wspomina, że nie udało się dołączyć pliku bootstrap, i wymienia open_basedir jako możliwą przyczynę. Oba przypadki wskazują na ten sam podstawowy problem: katalog, którego potrzebuje WP STAGING, znajduje się poza dozwolonymi ścieżkami. Dokładna ścieżka pliku w twoim komunikacie mówi, który katalog trzeba dodać do dozwolonej listy.

Dlaczego open_basedir blokuje WP STAGING

Dyrektywa open_basedir jest ustawiana w pliku php.ini i ogranicza dostęp PHP do plików tylko do katalogów, które wskażesz. Domyślnie WP STAGING tworzy witrynę staging w podkatalogu katalogu głównego WordPress. Jeśli ten katalog główny (lub podkatalog, do którego PHP chce zapisywać) nie jest objęty przez open_basedir, PHP blokuje zapis i witryna staging nie może zostać utworzona. Dodanie katalogu WordPress do dozwolonej listy usuwa tę blokadę bez wyłączania ustawienia bezpieczeństwa.

Jak naprawić błąd open_basedir restriction

Aby rozwiązać błąd open_basedir restriction i pomyślnie utworzyć witrynę staging z WP STAGING, wykonaj poniższe kroki w kolejności.

Krok 1: Znajdź plik php.ini, który PHP rzeczywiście ładuje

Plik php.ini to plik konfiguracyjny PHP, a jego lokalizacja różni się w zależności od środowiska Hostingu. Serwer może mieć więcej niż jeden plik php.ini, dlatego edytowanie niewłaściwego to najczęstsza przyczyna, dla której poprawka wydaje się nie działać. Aby znaleźć plik, który jest naprawdę używany, utwórz w katalogu głównym WordPress mały plik o nazwie phpinfo.php o poniższej zawartości, otwórz go w przeglądarce i odczytaj wartość Loaded Configuration File:

<?php phpinfo(); ?>

Jeśli masz dostęp do powłoki, php --ini wypisze tę samą ścieżkę z linii poleceń. Usuń plik phpinfo.php, gdy tylko poznasz ścieżkę, ponieważ ujawnia on szczegóły serwera. Jeśli w ogóle nie możesz znaleźć ani zedytować pliku php.ini, przejdź do sekcji poniżej, dotyczącej Hostingów bez bezpośredniego dostępu do php.ini.

Krok 2: Zmodyfikuj dyrektywę open_basedir

Po zlokalizowaniu pliku php.ini musisz go zedytować, by uwzględnić katalog, w którym chcesz utworzyć witrynę staging. Otwórz plik php.ini w edytorze tekstu i znajdź linię zaczynającą się od open_basedir. Dodaj pełną ścieżkę do katalogu głównego WordPress (i jego podkatalogów) do istniejącej listy. Wiele ścieżek rozdzielaj dwukropkiem : w Linux lub średnikiem ; w Windows.

Na przykład, jeśli twój WordPress jest zainstalowany w /var/www/html/wordpress, a linia konfiguracji open_basedir w php.ini obecnie brzmi:

ShellScript
open_basedir = "/var/www/html/"

Musisz ją zmodyfikować, by uwzględnić katalog WordPress:

ShellScript
open_basedir = "/var/www/html/:/var/www/html/wordpress/"

Zachowaj ścieżki, które już tam były. Usunięcie istniejącej ścieżki, aby zrobić miejsce, może zepsuć inne części witryny, które od niej zależą.

Krok 3: Zrestartuj serwer webowy lub PHP-FPM

Po zapisaniu zmian w pliku php.ini musisz zrestartować PHP, aby zmiany weszły w życie. Jeśli twoja witryna uruchamia PHP przez wbudowany moduł Apache, wystarczy zrestartować Apache. Jeśli działa na PHP-FPM (częste w Nginx i wielu Hostingach zarządzanych), musisz zrestartować także usługę PHP-FPM, a nie tylko serwer webowy, w przeciwnym razie stara konfiguracja pozostanie w pamięci. Użyj panelu kontrolnego Hostingu lub dokumentacji dostawcy Hostingu, aby poznać dokładne polecenie restartu.

Krok 4: Spróbuj ponownie utworzyć witrynę staging

Po zrestartowaniu PHP spróbuj ponownie utworzyć witrynę staging z WP STAGING. Błąd open_basedir restriction powinien teraz zostać rozwiązany, a proces tworzenia powinien przebiec bez problemu. Aby potwierdzić, że nowe ustawienie jest aktywne, przeładuj stronę phpinfo() z Kroku 1 i sprawdź, czy wartość open_basedir zawiera teraz katalog WordPress.

Gdy nie możesz edytować php.ini bezpośrednio

Na Hostingu współdzielonym i zarządzanym często nie masz bezpośredniego dostępu do php.ini. W takim przypadku poszukaj panelu ustawień PHP w panelu kontrolnym Hostingu (na przykład ekranu „MultiPHP INI Editor” lub „Select PHP Version” w cPanel) i ustaw open_basedir tam, albo poproś swojego dostawcę Hostingu, aby dodał ścieżkę WordPress do dozwolonej listy za ciebie. Jeśli wolisz w ogóle nie ruszać ustawień serwera, WP STAGING może zbudować witrynę staging w folderze, który jest już zapisywalny, tak jak wyjaśnia to uwaga na początku tego artykułu.

Jeśli błąd open_basedir nadal się pojawia

Jeśli błąd nie znika po edycji php.ini i zrestartowaniu PHP, przeanalizuj poniższe częste przyczyny:

  • Zedytowałeś plik php.ini, którego PHP nie ładuje. Ponownie sprawdź Loaded Configuration File z Kroku 1 i zedytuj dokładnie ten plik.
  • Zrestartowałeś serwer webowy, ale nie PHP-FPM. Zrestartuj także usługę PHP-FPM.
  • Separator ścieżek jest nieprawidłowy. Użyj dwukropka w Linux i średnika w Windows oraz nie zostawiaj końcowego separatora z pustym wpisem.
  • Twój Hosting wymusza open_basedir centralnie i ignoruje twoje zmiany. Skontaktuj się ze wsparciem i poproś o dodanie ścieżki.
  • Na skróty: użyj zaawansowanego ustawienia WP STAGING, aby utworzyć witrynę staging w podfolderze wp-content, który jest już zapisywalny.

Podsumowanie

Restrykcja open_basedir to funkcja bezpieczeństwa, która, choć ważna, czasami może zakłócać legalne operacje, takie jak tworzenie środowiska staging dla witryny WordPress. Edytując plik php.ini, który PHP rzeczywiście ładuje, dodając katalog WordPress do dozwolonej listy i restartując PHP, możesz usunąć błąd bez osłabiania bezpieczeństwa serwera. Zawsze wykonuj Backup pliku php.ini przed wprowadzeniem zmian i skonsultuj się z dostawcą Hostingu, jeśli nie masz pewności co do samodzielnej edycji.

Powiązane artykuły

Updated on 28 lipca, 2026

Rene Hermenau

Autor: Rene Hermenau

O autorze: René Hermenau jest założycielem WP STAGING. Zajmuje się kopiami zapasowymi WordPressa, środowiskami stagingowymi, migracjami, obsługą baz danych oraz bezpiecznymi procesami wdrażania.