【问题标题】:Fatal Error Zend_Uri Magento致命错误 Zend_Uri Magento
【发布时间】:2015-08-19 16:43:51
【问题描述】:

我们的 Magento 商店突然出现致命错误:

PHP Fatal error:  Class 'Zend_Uri' not found in /.../public_html/app/code/core/Mage/Core/Model/Store.php on line 726

最近没有添加新的插件或模块。 编译器未激活,var/cache 和 var/session 为空。 重置所有 magento 文件夹/文件的权限。

没有提供其他错误或更多信息,但我有一个空白页面 - 在前端和后端。

Magento 版本 1.7.0.2。任何帮助表示赞赏。

【问题讨论】:

    标签: magento zend-framework uri


    【解决方案1】:

    Store.php 文件的第 726 行如下所示

    #File: app/code/core/Mage/Core/Model/Store.php 
    $uri = Zend_Uri::factory($secureBaseUrl);
    

    也就是说,Magento 正在调用Zend_Uri 类上的静态方法factory。你的错误

    PHP 致命错误:找不到类“Zend_Uri”

    表示 PHP 找不到 Zend_Uri 类。这可能是因为

    • 类定义文件不存在了,
    • 有人更改了类定义文件,因此它不再有效
    • 本地代码池覆盖文件存在,并且有人编辑了类覆盖文件,因此它不再有效
    • 有人编辑了lib/Varien/Autoload.php,因此无法加载Zend_Uri 类文件
    • Varien/Autoload.php 存在本地代码池覆盖文件,并且有人对其进行了编辑,因此无法加载 Zend_Uri 类文件
    • 有人更改了 php 包含路径(通常在 app/Mage.php 中定义),因此它不包括 lib 文件夹或可能存在本地代码池覆盖的代码池

    我会首先在 lib/Zend/Uri.php 中查找 Zend_Uri 类,然后沿着列表向下查找,直到您弄清楚 PHP 不自动加载此类文件的原因。

    【讨论】:

    • 非常感谢艾伦,感谢您的时间和明确的答案。 Varien/Autoload.php 存在一个本地代码池覆盖文件,并且有人对其进行了编辑,因此无法加载 Zend_Uri 类文件有人更改了 php 包含路径(通常在 app/Mage.php 中定义),因此它不会包括 lib 文件夹,或可能存在本地代码池覆盖的代码池 这些为我提供了解决方案,所以让它再次运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 2012-12-17
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多