include_path行为无法按预期工作

时间:2013-12-17 09:31:05

标签: php

我刚将一大堆网站移动到一个新的VPS并且遇到了一个奇怪的问题 使用include_path。它在旧服务器上工作得很好但是 不是新的。

我会尝试用一个简单的例子来解释它......

/home/kin/www/lib/Zend以及/home/kin/www/ipb/_membadmin/Zend 有一个名为test1.php的文件,它只是回显它所在的文件夹。

/home/kin/www/ipb/_membadmin中有一个名为test.php的文件 它有一条线......

require_once 'Zend/test1.php';

当你按照预期运行它时,它会回显来自test1.php的行 /home/kin/www/ipb/_membadmin/Zend

如果您将/home/kin/www/ipb/_membadmin/Zend重命名为其他内容(如此) 'include'语句找不到它,并再次运行test.php,它应该是 (我认为)回显/home/kin/www/lib/Zend中的文件,因为php include_path 设置为包含/home/kin/public_html/libphpinfo.php确认)。 ......但事实并非如此。

为什么不呢?如果有/home/kin/public_html/lib的包含路径则 确实

require_once 'Zend/test1.php';

应指向/home/kin/www/lib/Zend。它在旧服务器上运行!

我一定错过了一些明显的东西,但我不知道是什么!

有什么想法? 感谢

1 个答案:

答案 0 :(得分:0)

在诊断之后,您刚刚给出了它,现在看来有些事情正在覆盖环境路径。

你的代码中必须有一行调用set_include_path。是否运行了尚未检查的Zend特定代码?那个丢失的目录显然将罪魁祸首描绘成一个流氓set_include_path()