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 

  • Il modo migliore per eseguire PHP con Nginx
  • Init script & il verde
  • Server "mostra i segni di essere infetti" - come risolvere il blacklist email
  • Trasferimento sicuro di http con ssh (tunnel)?
  • Come posso controllare che i token del server sono spenti?
  • Il server Owncloud / Apache non aumenta il caricamento massimo del file
  • pear su CentOS con il messaggio "No Package"
  • Apache2: 400 Bad Request con regole di riscrittura, nulla nel log degli errori?
  • 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.