Fatal error: Call to a member function getArea() on a non-object in {directory}/includes/src/Mage_Core_Model_App_Area.php on line 155
当我安装一个我在全新安装的 Magento 上写的扩展时出现。当移植到开发服务器时,它被关闭了,我似乎无法找到它的起源。禁用扩展没有任何改变。除了清除缓存和所有常规的 Magento 问题。据我所知,我已确保文件权限是正确的。
最佳答案
你报错的文件名
Fatal error: Call to a member function getArea() on a non-object in {directory}/includes/src/Mage_Core_Model_App_Area.php on line 155
表示 Magento 正在运行编译器模式。安装新的 在 complied 模式下运行的模块可以使 Weird Things™ 发生。我会说你的行为很奇怪
打开 shell 并将目录更改为应用程序的根目录。然后输入
$ cd shell
$ php compiler.php state
从这个 shell
子文件夹运行是必需的,因为 compiler.php
假定这是包含一些重要文件时的基础。你应该看到类似
Compiler Status: Enabled
Compilation State: Compiled
Collected Files Count: 5602
Compiled Scopes Count: 4
要禁用编译器,请键入
$ php compiler.php disable
你可以通过查看来检查这个脚本是否完成了它的工作
File: includes/config.php
如果此文件中的两行代码被注释,Magento 将不会查找“已编译”代码。
#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
#define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
如果不是,则用 #
标记注释掉(启用/禁用脚本使用并查找 #
和 #
)。
这样做,你的错误就会消失(或者至少改变一些不同的东西,允许进一步调试)
关于php - 谁能帮助解决这个 Magento 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858562/