require_once真的在哪儿?

时间:2014-01-09 11:28:43

标签: php environment-variables

我的Windows计算机上有2个版本的joomla安装了2个php。

执行应用程序时出现此错误:

  

PHP警告:带有消息的未捕获异常'ErrorException'   'require_once(Cache / Lite.php):无法打开流:没有这样的文件或   目录'in   C:\ XAMPP \应用\的Joomla \ htdocs中\库\的Joomla \缓存\存储\ cachelite.php:79

该行是

require_once 'Cache/Lite.php';

这个名为Lite.php的文件在:

  

C:\ XAMPP \ PHP \梨\缓存\ Lite.php

我安装了第二个php版本,这可能会产生干扰。尽管如此,我删除了第二个php版本的PATH条目。我将文件夹复制到第二个php安装,然后我将其他php版本添加到路径中。没有帮助。

如何找出require_once ''实际需要的位置?

或者您将如何解决此问题?

3 个答案:

答案 0 :(得分:2)

您可以通过以下方式查看包含路径:

<?php
echo get_include_path();
?>

如果您需要更改此设置,则需要修改php.ini文件或使用set_include_path()

在设置新的include_path时,请记住包含当前的include_path:

<?php
$new_path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $new_path);
?>

答案 1 :(得分:0)

使用echo getcwd() . "\n";来了解脚本的当前工作目录,它将回答您的问题。更多信息PHP Manual reference of getcwd()

答案 2 :(得分:0)

来自http://www.php.net/manual/en/function.include.php

  

根据给定的文件路径包含文件,如果没有给出,则包含   指定的include_path。如果在。中找不到该文件   include_path,include将最终检入调用脚本自己的   失败前的目录和当前工作目录。该   如果找不到文件,include构造将发出警告;这个   与require不同的行为,会发出致命的错误。

     

如果定义了路径 - 是否绝对(以驱动器号开头)   或者在Windows上,或/在Unix / Linux系统上)或相对于   当前目录(以。或..开头) - include_path将是   完全忽略了。例如,如果文件名以../开头,则表示   解析器将查找父目录以查找所请求的文件。