Porównaj ceny domen i usług IT, sprzedawców z całego świata

jak dodać ścieżkę open_basedir do nginx vhost


W php.ini ustawiłem
open_basedir =/home/user/web/

Teraz chciałbym uruchomić phppgadmin na subdomenie, która powinna zawierać pliki z/usr/share/phppgadmin.

Więc dodałem następujący wiersz do nginx-config dla tego hosta:
fastcgi_param PHP_VALUE open_basedir="/home/user/web/:/usr/share/phppgadmin/";

i zrestartowałem nginx. Nie mogę jednak uzyskać dostępu do witryny z powodu następującego błędu:

[błąd] 31440 # 0: * 1 FastCGI wysłane na stderr: "Ostrzeżenie PHP: include_once (): obowiązuje ograniczenie open_basedir. Plik (/usr/share/phppgadmin/libraries/lib.inc.php) znajduje się poza dozwoloną ścieżką (s):

(/ home/user/network/)

w/usr/share/phppgadmin/info.php w linii 10

Jaki może być powód, dla którego nie ma tu drugiej ścieżki? Czego jeszcze potrzebuję, aby dodać open_basedir do wirtualnego hosta? Użyłem tylko domyślnego pliku w/sites-available.

edytować

Zawsze myśl o ponownym uruchomieniu fpm ...
service php5-fpm restart

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W konkretnej sytuacji wystarczy dodać
/usr/share
domyślna
         open_basedir
ponieważ wszystko, co istnieje, jest w każdym razie przeznaczone do przeczytania przez świat.
Plus,
         open_basedir
łatwe do ominięcia, jeśli nie zostały zablokowane
         shell_exec
,
         exec
,
         system
i podobne funkcje PHP, więc nie uważaj ich za bezpieczne (wiem, że to jest do bani).
Jeśli zastanawiasz się, jak łatwo możesz to obejść, możesz po prostu
         system('php -n ascript.php');
... W
         -n
nie czyta PHP.ini, więc nie
         open_basedir
zaaplikuje.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Tylko dla twojej informacji, jeśli masz konfiguracje nginx ustawione dla wielu vhostów (więc konfiguracje w
/etc/nginx/sites-enabled/example.com
), może być konieczne zainstalowanie
         fastcgi_param PHP_VALUE open_basedir=
tam:
   location ~ \.php$ {
try_files $uri =404;
fastcgi_param PHP_VALUE open_basedir="/var/www/:/new/path";
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dostosowywanie
         open_basedir
przez
         fastcgi_param
może powodować

trochę problemów
https://forum.nginx.org/read.php?3,234856
gdy na serwerze jest kilka witryn.
Inną opcją jest użycie

.user.ini
https://www.php.net/manual/en/ ... r.php
.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się