【发布时间】:2013-12-17 09:31:04
【问题描述】:
我刚刚将大量网站移动到新的 VPS 并遇到了一个奇怪的问题 与包含路径。这在旧服务器上运行良好,但是 不上新。
我会尝试用一个简单的例子来解释它......
在/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。在旧服务器上可以!
我一定遗漏了一些明显的东西,但我不知道是什么!
有什么想法吗? 谢谢
【问题讨论】:
-
能否请您提供
get_include_path()在这两种情况下的内容以及输出 -
有趣。如果我在新服务器上运行 get_include_path(),我会得到
-
有趣。如果我在新服务器上运行 get_include_path() ,我会得到 .:/usr/lib/php:/usr/local/lib/php:/home/public_html/lib 但是如果我从同一个地方运行 phpinfo ,'核心' 部分将 include_path 报告为 .:/usr/lib/php:/usr/local/lib/php:/home/kin/public_html/lib 在旧服务器上,get_include_path 和 phpinfo 都报告 /home/kin/public_html/lib 所以为什么新服务器缺少路径中的“亲属”??
标签: php