路径行为不按预期工作
我刚刚将一大堆网站移到了新的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';
当你运行它时,如你所期望的那样,它在/home/kin/www/ipb/_membadmin/Zend
回应来自test1.php
的行
如果你将/home/kin/www/ipb/_membadmin/Zend
重命名为别的东西(所以'include'语句找不到它),再次运行test.php
,它应该(我认为) /home/kin/www/lib/Zend
因为php的include_path被设置为include /home/kin/public_html/lib
( phpinfo.php
确认)。 ...但它没有。
为什么不? 如果有/home/kin/public_html/lib
的包含路径,那么肯定
require_once 'Zend/test1.php';
应该指向/home/kin/www/lib/Zend
。 它在旧服务器上执行!
我必须错过一些明显的东西,但我不知道是什么!
有什么想法吗? 谢谢
在你刚刚给出的诊断结果后,似乎很清楚,有什么东西正在压倒环境之路。
代码中必须有一行代码在set_include_path被调用。 运行的任何Zend特定代码是否未检查? 那个丢失的目录清楚地将罪魁祸首描述为一个流氓set_include_path()