0

任何人都可以帮助解决这个问题,这非常奇怪,我已经没有想法了。

我通过注释掉includes/config.php 中的两行来手动禁用编译器,我还删除了includes/src 和includes/stat 目录以完成但是当我尝试编辑产品时我得到错误,因为magento 是试图在编译的包含/src 文件夹中包含文件(不再存在)

当我遇到另一个错误时,我也尝试过重新编译和访问已编译的站点。

Fatal error: require_once(): Failed opening required 'Mage/Adminhtml/Block/Widget/Grid.php' (include_path='/content/includes/src:.:/usr/share/pear:/usr/share/php') in /content/includes/src/Uni_Fileuploader_Block_Adminhtml_Widget_Grid.php on line 9

我正在考虑对站点进行排序,以便我至少可以在禁用编译器的情况下进行编辑,然后解决编译站点的问题,但目前不能这样做,因为即使禁用编译器,magento 似乎也想要访问编译文件。

运行 1.7.0.2

此外 - 这可能相关也可能不相关。

当我从命令行运行 compiler.php 时,我收到一堆警告,如下所示,但编译过程似乎仍然有效。

PHP Warning:  include(): realpath failed to canonicalize Mage/Core/Model/App.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Varien/Event/Collection.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Varien/Event/Observer/Collection.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Mage/Core/Model/Config.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Mage/Core/Model/Config/Base.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Varien/Simplexml/Config.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Mage/Core/Model/Config/Options.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Varien/Object.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Varien/Profiler.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Zend/Log.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Mage/Core/Model/Store/Exception.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Mage/Core/Exception.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Zend/Log/Formatter/Simple.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Zend/Log/Formatter/Interface.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Zend/Log/Writer/Stream.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Zend/Log/Writer/Abstract.php - bailing in /content/lib/Varien/Autoload.php on line 93
PHP Warning:  include(): realpath failed to canonicalize Zend/Log/FactoryInterface.php - bailing in /content/lib/Varien/Autoload.php on line 93
4

2 回答 2

1

关于您问题的第二部分:您是否有机会使用 APC?

在这种情况下,此错误报告可能与您有关。简而言之,在基于 Debian 的系统上编辑您的 APC 配置/etc/php5/conf.d/20-apc.ini并设置:

apc.stat=1

请记住清理 APC 和您的 magento 缓存,然后尝试再次运行编译器。

于 2013-08-09T10:51:21.473 回答
0

我不想关闭,apc.stat=1因为此功能会加快您的安装速度。我有一个修复,但这不是最好的修复,因为您需要更改核心中的代码。

转到文件“lib/Varien/Autoload.php”并滚动到第 93 行。

改变

return include $classFile;

与(不是最漂亮的修复)

if (file_exists(realpath(dirname(dirname(dirname(__FILE__)))).'/app/code/core/'.$classFile) or
    file_exists(realpath(dirname(dirname(dirname(__FILE__)))).'/app/code/community/'.$classFile) or
    file_exists(realpath(dirname(dirname(dirname(__FILE__)))).'/app/code/local/'.$classFile) or
    file_exists(realpath(dirname(dirname(dirname(__FILE__)))).'/lib/'.$classFile)) {
        return require_once $classFile;
    } else {
        return include $classFile;
    }

我使用该file_exists功能的原因很简单。include()如果包含的文件不存在并且脚本继续运行,则该函数会给出错误。该函数require()也给出了一个错误,但停止运行脚本。有了这个修复,Magento 会一直运行,但不会出现 APC 缓存错误,并且如果包含的文件不存在,您的 Magento 安装会继续运行并且不会停止渲染。

您还可以降级您的 APC 扩展。在版本 3.1.9(最后一个稳定版本)中,您不会收到此错误。

于 2013-10-16T08:34:15.227 回答