PHP警告:include(/ var / www / html /....../ lib / Cake / Error / ErrorHandler.php):无法打开流错误

时间:2016-02-25 06:15:39

标签: php cakephp web

我在尝试加载网页时遇到此错误。

错误消息上显示的路径是

  

PHP警告:   包括(/var/www/html/test.com/www/products/abc/lib/Cake/Error/ErrorHandler.php):   无法打开流:

     

无法找到Cake库目录,因为路径应该如此   取而代之的是“/var/www/html/test.com/products/abc/lib/Cake / ...”。

知道如何解决这个问题吗?

错误指向我的Core / App.php文件的第540行,

if ($file = self::_mapped($className, $plugin)) {
        return include $file;   <<---- LINE 540
}
$paths = self::path($package, $plugin);

谢谢!

1 个答案:

答案 0 :(得分:0)

您的CakePHP正在尝试包含一个文件,就像您键入的文件一样

include '/var/www/html/test.com/www/products/abc/lib/Cake/Error/ErrorHandler.php';  

PHP:include-Manual中所述:

  

如果找不到文件,include构造将发出警告

这里有趣的是你的CakePHP错误地了解了你的根目录,所以你的想法是你已经使用了一个依赖项管理器(例如Composer)安装,并且当你最初在父目录下时将你的项目移动到/var/www/html/test.com/www/ { {1}}。

为了确保,请检查Cake定义其ROOT目录的文件,该目录是根/var/www/html/test.com/文件。如果你向内看,你会看到类似的东西:

index.php

它可以随框架的版本而改变,但它应该非常相似。

我们正在寻找的是第一行,这意味着来自CakePHP的define('ROOT', dirname(__FILE__)); // <-- ROOT GLOBAL VARIABLE DEFINITION define('WEBROOT_DIR', 'webroot'); define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS); 全局变量被设置在ROOT所在的位置。

我的理论是你移动,删除或修改了ROOT或其他tracecendent全局变量,而CakePHP找不到你发布的正确路径。

如果您需要进一步的信息评论,我将编辑此答案。此外,我们将非常感谢您提供有关错误的更多信息,以便我能满足您的需求 希望这对你有所帮助:)