come aggiungere un path open_basedir in nginx vhost

In php.ini ho impostato

open_basedir = /home/user/web/ 

Ora vorrei eseguire phppgadmin su un sottodominio che deve includere file da / usr / share / phppgadmin.
Così ho aggiunto la seguente row alla nginx-config per questo host:

 fastcgi_param PHP_VALUE open_basedir="/home/user/web/:/usr/share/phppgadmin/"; 

e riavviato nginx. Tuttavia, non posso accedere al sito a causa del seguente errore:

[errore] 31440 # 0: * 1 FastCGI inviato in stderr: "PHP Warning: include_once (): restrizione open_basedir in effetti. File (/usr/share/phppgadmin/libraries/lib.inc.php) non è nel path consentito (i): (/ home / user / web /) in /usr/share/phppgadmin/info.php sulla linea 10

Qual è il motivo per cui il secondo path non è elencato qui? Cosa devo fare per aggiungere un open_basedir a un host virtuale? Ho usato solo il file predefinito disponibile in / sites.

modifica Sempre pensare di riavviare fpm …

 service php5-fpm restart 

  • Come aggiungere spazio su disco a / var / www per i miei siti web?
  • Pecl rispetta le estensioni .so per il PHP incorporato OSX e non MAMP
  • Errori IIS6 + PHP + FastCGI 500 - Dove iniziare a cercare?
  • Elevato utilizzo della CPU che provoca l'incidente del server
  • "Il server ha chiuso la connessione senza submit alcun dato"
  • Imansible accedere a CentOS 7 Postgresql Server da un altro CentOS7 utilizzando PHP e PDO
  • sendmail vs server smtp
  • R, PHP e Apache
  • 2 Solutions collect form web for “come aggiungere un path open_basedir in nginx vhost”

    Per la tua situazione particolare, dovresti considerare solo l'aggiunta di /usr/share al open_basedir predefinito, poiché tutto ciò che c'è è progettato per essere letto dal mondo comunque.

    Inoltre, open_basedir è facilmente elusione a less che non si sia bloccato shell_exec , exec , system e funzioni PHP simili, quindi non considerate sicure per l'utilizzo (lo so, è schifo).

    Se si sta chiedendo come si può aggirare facilmente, è ansible solo il system('php -n ascript.php'); . Il -n non causerà PHP.ini da leggere, quindi non verrà applicato open_basedir .

    Solo FYI, se si dispone di configs nginx impostati per più vhost (quindi, /etc/nginx/sites-enabled/example.com in /etc/nginx/sites-enabled/example.com ), potrebbe essere necessario impostare il fastcgi_param PHP_VALUE open_basedir= there:

      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; 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.