0

我正在尝试在新服务器上设置一个我不是原始所有者的站点 - 在 Apache2 中,文档根目录已设置为 /var/www/html,这是我想要的 index.php成为默认的“主页”所在的位置。

在 www 的其他目录中有许多文件。例如,/common/cachelite/Lite.php 也可以在 /var/www 中找到。

index.php 中的 php 使用 require_once 引用它,如下所示:

error_reporting(E_ALL);
ini_set('Display_errors','On');
require_once('../common/cachelite/Lite.php');

但抛出以下错误,我从我的 Apache2 error.log 中获取:

PHP Fatal error:  require_once(): Failed opening required '../common/cachelite/Lite.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/index.php on line 4

文件本身肯定在那里,所以任何人都可以为我解释这个问题吗?这是怎么回事?

4

3 回答 3

1

我已经多次遇到这个问题,并且总是这样解决它。

$file = dirname(dirname(__file__));
require_once($file ."/common/cachelite/Lite.php");

进一步缩小范围。

如果在 Web 服务器上而不是命令行添加 <pre></pre> 标签,请尝试此操作。

echo __file__ . "\n";
echo dirname(__file__). "\n";
echo dirname(dirname(__file__)). "\n";

我的下一个想法是文件权限或拼写错误的单词。

于 2013-09-23T19:14:43.493 回答
0

检查您尝试要求/包含的文件的权限。如果访问/网络用户无法读取它们,那么这将解释您遇到的错误。

于 2013-09-24T19:46:06.383 回答
0

您可以将代码更改为类似

require_once($_SERVER['DOCUMENT_ROOT'].'/common/cachelite/Lite.php');

或者你也可以按照这种方式:

require_once(dirname(__FILE__).'/common/cachelite/Lite.php');
于 2013-09-23T19:20:17.147 回答