Php 包括未按预期工作的路径行为
我刚把一大堆网站移到一个新的VPS上,遇到了一个奇怪的问题 使用include_路径。它在旧服务器上运行良好,但是 不在纽约 我将尝试用一个简单的例子来解释它 在Php 包括未按预期工作的路径行为,php,Php,我刚把一大堆网站移到一个新的VPS上,遇到了一个奇怪的问题 使用include_路径。它在旧服务器上运行良好,但是 不在纽约 我将尝试用一个简单的例子来解释它 在/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/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包含路径
设置为包括/home/kin/public_html/lib
(这phpinfo.php
确认)。
... 但事实并非如此
为什么不呢?如果存在/home/kin/public\u html/lib
的包含路径,则
当然
应该指向/home/kin/www/lib/Zend
。它在旧服务器上运行
我肯定错过了一些明显的东西,但我不知道是什么
有什么想法吗?
谢谢在您刚才进行诊断之后,现在似乎很清楚有什么东西正在覆盖环境路径
代码中必须有一行调用set_include_路径的代码。是否有任何未检查的Zend特定代码正在运行?丢失的目录清楚地将罪犯描述为流氓
set\u include\u path()
您能告诉我们这两种情况下的get\u include\u path()
的内容和输出感兴趣的内容吗。如果我在新服务器上运行get_include_path(),我会感兴趣。如果我在新服务器上运行get_include_path(),我会得到。:/usr/lib/php:/usr/local/lib/php:/home/public_html/lib,但如果我在同一位置运行phpinfo,“核心”部分报告会在旧服务器上包含路径为。:/usr/lib/php:/usr/local/lib/php:/home/kin/public_html/lib,get_include_path和phpinfo report/home/kin/public_html/lib都是get_include_path和phpinfo report/home/kin/public_html/lib,那么为什么新服务器缺少路径中的“kin”?我会检查一下-但是新服务器上的代码与旧服务器上的代码完全相同!这真是奇怪。我在分析配置问题方面不是很有经验。我必须承认我被难住了,唯一的其他途径是检查php.ini并查看是否设置正确,但我认为您已经这样做了。这是设置路径ini_集(“include_path','/usr/lib/pear')的唯一其他方法代码>除此之外,无论如何,我都没有想法的卡片了。至少我现在大致知道了问题所在,即使不是什么原因!
require_once 'Zend/test1.php';