W przypadku wystąpienia problemu z ładowaniem stron związanym z funkcją open_basedir na stronie, co potwierdza błąd open_basedir restriction in effect (może występować zarówno na stronach witryny, jak i tylko w [logach błędów] na serwerze), można wyłączyć tę funkcję.
Krótko mówiąc, funkcja open_basedir ogranicza dostęp skryptów PHP witryny do innych skryptów i katalogów, które znajdują się poza witryną. Jej głównym celem jest izolowanie witryn od siebie, aby każda witryna "widziała" tylko pliki/katalogi swojej głównej katalogu i nie ingerowała w działanie innych witryn/katalogów.
Ten przewodnik jest aktualny tylko dla panelu sterowania Hestia, dla innych paneli lub typów serwerów może być nieaktualny. Przed rozpoczęciem prac upewnij się, że wykonałeś [snapshot serwera]. Wszystkie operacje wykonujesz na własne ryzyko właściciela serwera.
W związku z tym należy w pliku konfiguracyjnym szablonu skomentować linię związaną z tą funkcją. Pliki szablonów znajdują się w /usr/local/hestia/data/templates/web/php-fpm/ i mają nazwy podobne do wersji PHP, dla których należy wyłączyć open_basedir. Na przykład, szablon dla wersji PHP 7.4 nosi nazwę PHP-7_4.tpl
W tym pliku znajduje się linia php_admin_value[open_basedir] = ..., naszym celem jest jej skomentowanie, dodając znak średnika na początku linii, aby wyglądało to tak ;php_admin_value[open_basedir] = ...
Aby to zrobić, możesz skorzystać z dowolnego edytora plików, na przykład nano lub vim, lub wykonać następujące polecenie, które znajdzie odpowiednią linię i ją skomentuje. Zwróć uwagę na nazwę pliku w poleceniu, jeśli masz inną wersję PHP, nie zapomnij zmienić nazwy pliku, ponieważ poniższy przykład dotyczy PHP 7.4.
sed -i 's/php_admin_value\[open_basedir\]/;php_admin_value\[open_basedir\]/g' /usr/local/hestia/data/templates/web/php-fpm/PHP-7_4.tpl
Teraz wystarczy zapisać zmiany z szablonu do głównego pliku konfiguracyjnego witryny i zrestartować usługę PHP 7.4, wszystko to można zrobić ręcznie przez panel sterowania i pliki panelu, lub można wykonać tylko jedno polecenie. Zwróć uwagę, że w poleceniu są 3 zmienne: nazwa użytkownika (admin) panelu sterowania, w którym znajduje się witryna, domena witryny (example.pp.ua) oraz nazwa szablonu (PHP-7_4), który edytowaliśmy wcześniej. Tak jak w przypadku powyżej, zmień te dane zgodnie ze swoimi przed uruchomieniem polecenia.
v-change-web-domain-backend-tpl admin example.pp.ua PHP-7_4
Gotowe.
Teraz można sprawdzić, czy funkcja jest wyłączona za pomocą [sprawdzającego skryptu PHP phpinfo].
Oto jak wygląda włączona funkcja open_basedir (pierwszy zrzut ekranu) i kiedy jest wyłączona (drugi zrzut ekranu)


Wszystkie kategorie pytań
Ogólne pytania dotyczące serwerów