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/

在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.

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部