我在尝试加载网页时遇到此错误。
错误消息上显示的路径是
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);
谢谢!
答案 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找不到你发布的正确路径。
如果您需要进一步的信息评论,我将编辑此答案。此外,我们将非常感谢您提供有关错误的更多信息,以便我能满足您的需求 希望这对你有所帮助:)