我正在尝试在新服务器上设置一个我不是原始所有者的站点 - 在Apache2中,文档根目录已设置为/ var / www / html,这是index.php的位置我希望成为默认的“主页”。
www中的其他目录中有许多文件。例如,/ common / cache / 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
文件本身肯定存在,所以有人能为我解释这个问题吗?发生了什么事?
答案 0 :(得分:1)
我已经遇到过这个问题几次并且总是像这样修复它。
$file = dirname(dirname(__file__));
require_once($file ."/common/cachelite/Lite.php");
进一步缩小范围。
试试这个 如果在网络服务器而不是命令行上添加< pre>< / pre>标签
echo __file__ . "\n";
echo dirname(__file__). "\n";
echo dirname(dirname(__file__)). "\n";
我的下一个想法是,文件权限或拼写错误的单词。
答案 1 :(得分:0)
您可以将代码更改为
require_once($_SERVER['DOCUMENT_ROOT'].'/common/cachelite/Lite.php');
或者你也可以这样:
require_once(dirname(__FILE__).'/common/cachelite/Lite.php');
答案 2 :(得分:0)
检查您尝试要求/包含的文件的权限。如果访问/ Web用户无法读取它们,那么这将解释您遇到的错误。