2013-12-23 47 views
0

当我试图访问我的Magento站点或管理面板我收到此错误:我收到一个PHP错误,当我访问我的Magento站点

Fatal error: require_once() [function.require]: Failed opening required '__DIR__/composer/autoload_real.php' (include_path='/homepages/1/d372694303/htdocs/Magento 1.8/app/code/local:/homepages/1/d372694303/htdocs/Magento 1.8/app/code/community:/homepages/1/d372694303/htdocs/Magento 1.8/app/code/core:/homepages/1/d372694303/htdocs/Magento 1.8/lib:.:/usr/lib/php5') in /homepages/1/d372694303/htdocs/Magento 1.8/app/code/local/Elite/vendor/autoload.php on line 5 

我所做的只是禁止从管理面板中的所有缓存和现在我无法访问该网站。有没有办法重新启用缓存?我试图通过sql命令通过phpmyadmin重新启用缓存

UPDATE `core_cache_option` SET value=1; 

这并没有解决我的问题。

+0

似乎对['__DIR__'](http://www.php.net/manual/en/language.constants.predefined.php)魔术常量的引用已被放入字符串文字中,而是比连接到它。或者,如果您使用v5.3.0之前版本的PHP(添加了该常量),那么对它的任何引用[将隐式处理](http://php.net/language.constants.syntax)作为一个(不加引号)的字符串文字。 – eggyal

+0

这是我改变的东西吗?哪个文件最可能位于?我很抱歉,我对php知之甚少。 – lodge93

回答

0

这看起来像具体到你的系统中的错误。无论是自定义开发,奇怪的东西在第三方扩展,或两者兼而有之。

PHP为您提供调试错误所需的所有信息。

如果您解析除了您的错误信息,先有错误

Fatal error: require_once() [function.require]: Failed opening required 'DIR/composer/autoload_real.php'

正如其他人所指出的那样,魔术不断__DIR__被列入字面上的字符串。

其次,在括号中,PHP让你知道请求

(include_path=' 
/homepages/1/d372694303/htdocs/Magento 1.8/app/code/local: 
/homepages/1/d372694303/htdocs/Magento 1.8/app/code/community: 
/homepages/1/d372694303/htdocs/Magento 1.8/app/code/core: 
/homepages/1/d372694303/htdocs/Magento 1.8/lib:.: 
/usr/lib/php5') 

这些看起来非常标准的(虽然我个人将不包括在“Magento的1.8”路径名称中的空格在包括路径,但我老了)

三,最后,PHP告诉你哪里发生了错误

in /homepages/1/d372694303/htdocs/Magento 1.8/app/code/local/Elite/vendor/autoload.php on line 5

因此第5行app/code/local/Elite/vendor/autoload.php是发生错误的地方。

至于为什么它发生,它看起来像有人试图使用作曲家在Elite文件夹中安装的东西。这可能是Elite提供的扩展/主题如何发布的,或者它可能是另一个开发人员对系统做的事情。

当您禁用在Magento中缓存时,Magento通常从缓存中取出的东西需要重新生成。这意味着更多,不同的代码运行。重新开启缓存并不能解决这个问题,而Magento首先需要缓存一些东西,然后才能从缓存中提取缓存。关于发生什么的最佳猜测是开发人员正在研究app/code/local/Elite文件夹中的某些内容,这些内容通常在系统缓存时不会调用。

+0

非常感谢,这是非常彻底的。我一定会发现确切的修复,一旦我找到它,那么其他可能遇到同样问题的人将会得到答案,但我很肯定这会让我朝着正确的方向前进。你是对的,作为一个狂热的Unix/Linux用户,我应该知道更好,然后把目录名称中的空格:) – lodge93

0

您的SQL语法存在错误,请尝试以下操作。

UPDATE `core_cache_option` SET value=1; 

应该

UPDATE `core_cache_option` SET `value`='1'; 
+0

错误在哪里? 'VALUE'不是[保留字](http://dev.mysql.com/doc/en/reserved-words.html)(而'VALUES')。 – eggyal

+0

谢谢,我运行了更新后的SQL语句,但这似乎并没有解决我的问题。 – lodge93

+0

根据他原来的查询,他把“value”作为列名而不是保留字,它应该被两个's包围,以及他想要设置的实际int应该被'的。 – user3055292

相关问题