我刚将一大堆网站移动到一个新的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/lib
(phpinfo.php
确认)。
......但事实并非如此。
为什么不呢?如果有/home/kin/public_html/lib
的包含路径则
确实
require_once 'Zend/test1.php';
应指向/home/kin/www/lib/Zend
。它在旧服务器上运行!
我一定错过了一些明显的东西,但我不知道是什么!
有什么想法? 感谢
答案 0 :(得分:0)
在诊断之后,您刚刚给出了它,现在看来有些事情正在覆盖环境路径。
你的代码中必须有一行调用set_include_path。是否运行了尚未检查的Zend特定代码?那个丢失的目录显然将罪魁祸首描绘成一个流氓set_include_path()