【问题标题】:Class 'Zend_Log' not found - SSH -reindexall for Magento未找到“Zend_Log”类 - Magento 的 SSH -reindexall
【发布时间】:2012-08-17 10:09:49
【问题描述】:

最近在 Magento 后台无法重新索引目录 URL 重写,因为 Magento 产生了非常有用的错误“重新索引过程出现问题”。所以我尝试使用 php ./shell/indexer.php -reindexall 通过 SSH 重新索引 并收到以下...

警告:include(Zend/Log.php):无法打开流:第 93 行的 /home/reprebat/public_html/lib/Varien/Autoload.php 中没有这样的文件或目录

警告:include():在第 93 行的 /home/reprebat/public_html/lib/Varien/Autoload.php 中打开 'Zend/Log.php' 以包含 (include_path='"." ') 失败

致命错误:在第 247 行的 /home/reprebat/public_html/app/code/core/Mage/Core/functions.php 中找不到类“Zend_Log”

这些文件/行中的任何一个似乎都没有任何异常 - 只是默认的 Magento 文件版本。

我不知道何时发生此问题或触发此错误 - 与我在网上发现的大多数其他类似问题不同,它通常似乎与方法名称不正确的 3rd 方扩展有关...但我们的错误没有甚至不指定诸如此类的任何内容 - 或任何对我特别有用的内容。

我想没有人可以建议这可能表明什么?非常感谢任何帮助。提前致谢。

【问题讨论】:

  • 这是您的 php-cli 相关问题。您必须验证 php-cli 配置是否符合您的“magento”需求,并且“PATH”中的所有内容都以与 webserver php config 相同的方式存在
  • 扩展安东所说的,很可能是需要更新的include_path。 ZF 需要在包含路径上,您可以从第二个警告中看到包含路径为空。将标准 php.ini 中的 include_path var 与 PHP CLI ini(单独的)进行比较,假设它在 Magento 中是这样工作的
  • app/Mage.php 似乎没有按照应有的方式设置包含路径。该文件通常包含在Mage_Shell_Abstract::__construct()中。

标签: zend-framework shell magento


【解决方案1】:

我最终设法解决了这个问题......

.htaccess 文件包括以下内容:-

<IfModule mod_php5.c>
php_value include_path "."

通过注释掉,如下所示,这纠正了问题并允许索引器再次成功运行...

<IfModule mod_php5.c>
#php_value include_path "." 

在这个阶段,我没有意识到任何潜在的影响,尽管考虑到 Magento 1.6.2 文件中提供的默认 .htaccess 不包括这一点,我的印象是很少会出现故障或中断。我会用任何新闻更新这个答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2015-09-13
    • 2016-02-06
    • 2015-02-04
    • 1970-01-01
    • 2015-09-24
    相关资源
    最近更新 更多