php – 如何在nginx vhost中添加open_basedir路径

前端之家收集整理的这篇文章主要介绍了php – 如何在nginx vhost中添加open_basedir路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP.ini我已经设置

open_basedir = /home/user/web/

现在我想在子域上运行PHPpgadmin,它需要包含来自/usr/share / PHPpgadmin的文件.
所以我将以下行添加到此主机的Nginx-config中:

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

并重新启动Nginx.但是,由于以下错误,我无法访问该网站:

[error] 31440#0: *1 FastCGI sent in stderr: “PHP Warning: include_once(): open_basedir restriction in effect. File(/usr/share/PHPpgadmin/libraries/lib.inc.PHP) is not within the allowed path(s): (/home/user/web/) in /usr/share/PHPpgadmin/info.PHP on line 10

可能是第二条路径没有列在这里的原因是什么?我还需要将open_basedir添加到虚拟主机中吗?我只使用/ sites-available中的默认文件.

编辑总是想到重新启动fpm …

service PHP5-fpm restart
最佳答案
对于您的特定情况,您应该考虑将/usr/share添加到默认的open_basedir中,因为其中的任何内容都设计为由世界读取.

另外,open_basedir很容易被规避,除非你已经锁定了shell_exec,exec,系统和类似的PHP函数,所以不要认为使用它是安全的(我知道,它很糟糕).

如果你想知道如何轻松绕过它,你可以只使用system(‘PHP -n ascript.PHP’);. -n将导致不读取PHP.ini,因此不会应用open_basedir.

猜你在找的Nginx相关文章