为什么Joomla!崩溃PHP?

时间:2013-12-05 05:13:39

标签: php joomla xdebug

我正在使用定制的Joomla! 2.5.8 app,我正在逐步完成Eclipse中的代码。我正在逐步执行的代码位于myapp / libraries / joomla / plugin / helper.php中,并且位于JPluginHelper::_import函数中。有问题的代码如下所示:

if ($pathExists || file_exists($legacypath))
{
    $path = $pathExists ? $path : $legacypath;
    if (!isset($paths[$path]))
    {
        require_once $path;
    }
    $paths[$path] = true;

问题代码是require_once行。 $path变量包含我系统上文件的名称,并且在其他任何事情发生之前我已经放置了断点并记录在文件中,但是该代码永远不会被执行,并且断点永远不会被命中。

该行之前的调用堆栈如下所示:

myapp/libraries/joomla/plugin/helper.php.JPluginHelper::_import() : lineno 171
myapp/libraries/joomla/plugin/helper.php.JPluginHelper::importPlugin() : lineno 125
myapp/components/com_content/views/article/view.html.php.ContentViewArticle->display() : lineno 123
myapp/libraries/joomla/application/component/controller.php.JController->display() : lineno 722
myapp/components/com_content/controller.php.ContentController->display() : lineno 74
myapp/libraries/joomla/application/component/controller.php.JController->execute() : lineno 761
myapp/components/com_content/content.php.require_once() : lineno 16
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::executeComponent() : lineno 383
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::renderComponent() : lineno 351
myapp/includes/application.php.JSite->dispatch() : lineno 197
myapp/index.php.{main}() : lineno 44

然后,当我尝试进入require_once位时,调用堆栈如下所示:

myapp/libraries/joomla/session/storage/database.php.JSessionStorageDatabase->write() : lineno 71
myapp/libraries/joomla/session/storage/database.php.JPluginHelper::_import() : lineno 0
myapp/libraries/joomla/plugin/helper.php.JPluginHelper::importPlugin() : lineno 125
myapp/components/com_content/views/article/view.html.php.ContentViewArticle->display() : lineno 123
myapp/libraries/joomla/application/component/controller.php.JController->display() : lineno 722
myapp/components/com_content/controller.php.ContentController->display() : lineno 74
myapp/libraries/joomla/application/component/controller.php.JController->execute() : lineno 761
myapp/components/com_content/content.php.require_once() : lineno 16
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::executeComponent() : lineno 383
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::renderComponent() : lineno 351
myapp/includes/application.php.JSite->dispatch() : lineno 197
myapp/index.php.{main}() : lineno 44

为了清楚说明,myapp/libraries/joomla/plugin/helper.php.JPluginHelper::_import()框架被myapp/libraries/joomla/session/storage/database.php.JPluginHelper::_import()取代。 PHP放弃并且根本不提供任何日志记录。我看不到网站本身的任何内容。

我在Ubuntu上,使用Apache2,PHP5和XDebug。 XDebug是否处于活动状态并不重要。

以前有人遇到过这种事吗?我真的不想回到标准的Joomla!安装,并逐步重新导入模块,但如果那就是我要做的......

1 个答案:

答案 0 :(得分:1)

我认为这是因为:

==>数据库包含一个插件的条目,该插件的文件不存在,当joomla要求那些找到的文件时找不到该插件的任何文件。

你能做什么:

==>您必须转到joomla需要文件的行(如上所述“JPluginHelper :: _ import”)然后打印路径。通过执行此操作,您将看到所有必需的路径(在浏览器中)和最后一个路径,您将看到上升错误的路径。

====>检查该文件是否存在。

====>现在在扩展表中找到该插件的条目,并将发布设置为'0'。