我们有以下设置:
- /var/www/public <-- DocumentRoot
- /var/www/functions <-- php 函数
- /var/www/config <-- php 配置
通过 apache vhost 配置,我们打开 basedir:
php_admin_value open_basedir "/var/www/functions/:/var/www/config/"
现在,如果我在公共功能或配置下包含一个文档,则可以按预期工作。但是,如果我从不包含的函数中包含一个配置。
所以:
/var/www/public/index.php
可以包括../functions/test.php
但
/var/www/functions/test.php
不能包括../config/config.php
open_basedir 限制生效。文件(../config/config.php)不在允许的路径内:/var/www/functions/test.php 中的 (/var/www/functions/:/var/www/config/)第 1067 行
对此有什么想法吗?
谢谢和亲切的问候
莱纳斯
附加信息:
如果我包含完整路径它可以工作,include_once("/var/www/config/config.php");
而不是include_once("../config/config.php");
是你自己写的吗?在这种情况下,典型的 PHP 使用是:
或者