Jak możemy pomóc?

Poszukiwanie...

Co oznacza komunikat open_basedir restriction in effect?

Komunikat „open_basedir restriction in effect” oznacza, że skrypt PHP próbuje sięgnąć do pliku lub katalogu poza dozwolonym zakresem. Często przyczyną jest nieaktualna ścieżka po migracji albo ustawienie aplikacji. Najpierw sprawdź wskazany zasób; wyłączenie izolacji nie powinno być pierwszą próbą naprawy.

Na ilustracjach nazwa konta i domeny są przykładami, a adresy IP zastąpiono znakami x. W swoim panelu użyj danych własnej usługi.

Co dokładnie oznacza błąd?

Ustawienie open_basedir ogranicza katalogi, do których PHP może uzyskać dostęp. Fragment File is not within the allowed path(s) wskazuje, że żądana ścieżka nie mieści się w dozwolonym zakresie. To inny problem niż zwykły brak praw do odczytu pliku.

Pełny komunikat zwykle pokazuje próbę dostępu oraz listę dozwolonych ścieżek. Ograniczenie może dotyczyć np. katalogu cache, plików tymczasowych, kopii zapasowych albo zasobu w innej domenie. PHP rozwiązuje dowiązania symboliczne, więc sam link umieszczony w dozwolonym katalogu nie zapewnia dostępu do pliku poza nim.

1. Odczytaj pełny komunikat z logów

Zapisz godzinę błędu i czynność, która go wywołuje. Otwórz logi błędów właściwej domeny w Domeny → Podsumowanie witryny i Logi. Odczytaj, jaki plik aplikacji zgłasza błąd i do jakiej ścieżki próbuje sięgnąć.

Nie włączaj publicznego wyświetlania wszystkich błędów na działającej stronie tylko po to, by pozyskać komunikat. Logi mogą ujawniać ścieżki i dane techniczne; przekazuj potrzebny fragment opiekunowi strony lub pomocy technicznej.

2. Sprawdź konfigurację aplikacji

Po migracji poszukaj ustawień wskazujących stary katalog konta, domeny lub serwera. Sprawdź ścieżki cache, plików tymczasowych i katalogu kopii zapasowych w aplikacji oraz używanych dodatkach. Popraw konkretną nieaktualną ścieżkę zgodnie z dokumentacją aplikacji.

Jeśli plik powinien należeć do tej witryny, umieść go w odpowiednim dozwolonym katalogu, zachowując wymagania aplikacji i ochronę danych. Nie przenoś haseł ani kopii bazy do publicznego katalogu tylko dlatego, że PHP ma do niego dostęp. Sprawdź również ustawiony katalog domeny i rzeczywisty cel ewentualnego dowiązania.

3. Sprawdź izolację właściwej witryny

W DirectAdmin przejdź do Aplikacje PHP i Python → Zmiana wersji PHP dla domeny i izolacja. Odszukaj dokładny adres domeny lub subdomeny. Kolumna Izolacja dotyczy danego wiersza; ustawienie domyślne dla nowych domen nie zmienia automatycznie wszystkich istniejących stron.

Zapisz dotychczasowy stan. Przełączenie izolacji zapisuje się automatycznie i może rozszerzyć dostęp skryptów do plików konta. Wykonaj taki test tylko wtedy, gdy wiesz, dlaczego aplikacja potrzebuje szerszego dostępu, i masz plan właściwej konfiguracji. W razie wątpliwości uzgodnij zmianę z pomocą Hostido.

Czy można poprawić open_basedir w php.ini?

Dostępność zmiany zależy od sposobu uruchamiania PHP i ograniczeń usługi. Wpis w lokalnym php.ini lub ustawienie z poziomu skryptu nie musi pozwolić na rozszerzenie zakresu narzuconego przez serwer. Nie kopiuj przypadkowych ścieżek z poradników i nie ustawiaj nieograniczonego dostępu bez ustalenia przyczyny.

Jeżeli aplikacja wymaga dostępu poza katalogiem witryny, przekaż pomocy Hostido pełną ścieżkę i uzasadnienie. Rozwiązaniem może być poprawna konfiguracja aplikacji lub układu katalogów, bez wyłączania ochrony całej strony.

4. Powtórz czynność i sprawdź log

Po zmianie wykonaj tę samą operację, która wcześniej powodowała błąd, i sprawdź nowe wpisy w logu. Zweryfikuj też zwykłe działanie strony. Jeżeli tymczasowo wyłączałeś izolację, przywróć uzgodnione docelowe ustawienie po zakończeniu diagnozy.