2013-03-06 167 views
3

我想编译我的magento商店的代码。最初的编译产生了一个错误,我跟踪到了Fooman Speedster高级模块。我从商店的代码中完全删除了模块,并重新编译。这次编译成功完成,所有类(7500左右)都可以在/ includes/src /文件夹中看到。Magento死亡白屏

但是编译后,我的网站的前台是展示死亡的白色屏幕,在Apache的错误日志中没有产生错误。奇怪的是后端工作得很好。

我也增加了我的PHP脚本memeory限制1024M,使PHP运行内存是没有问题的。

,什么可能是propblem或如何任何建议,以去跟踪这个问题/错误。

回答

0

了大量的研究和测试后,我来到了结论是,编译时可能会有几个错误导致死亡的白屏。由于某些原因,这些内容不可见,让您不知道问题出在哪里。 在大多数情况下 - 定制模块或安装模块是罪魁祸首。调试magento编译的唯一可靠方法是在xdebug配置中使用xdebug.scream = 1。这将尖叫出错文件/原因,然后可以处理。

一个更好的解释可以在这里找到: http://www.brimllc.com/2012/03/magento-fun-with-debugging-the-magento-compiler/

0

正如我read,它是由当您启用Persistent Shopping Cart引起的。

System > Configuration > Persistent Shopping Cart > General Options > Enable Persistence设置为禁用,然后重试。

你可以看看here

+0

持久性购物车已被禁用。 – SarthakGupta 2013-03-06 07:29:48

0

这是一个与编译一个共同的问题,您可以暂时通过编辑/includes/config.php和注释掉这些行禁用编译:

define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src'); 
define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat'); 
16

从这里重新发布我的回答。希望这将有助于

Magento white screen on Admin log in page?

我面临着同样的问题。其实它更糟糕,因为它是一个商业产品和一个新的主机,我真的很奇怪的服务器配置。所以我不能让错误出现在任何日志文件中。

正如我已经发现了Magento的白屏意味着一些PHP致命错误发生。所以有一个适当的方式来展示他们。只需在index.php开始处添加即可

ini_set('error_reporting', E_ERROR); 
register_shutdown_function("fatal_handler"); 
function fatal_handler() { 
    $error = error_get_last(); 
    echo("<pre>"); 
    print_r($error); 
} 

而且您会看到真正发生在magento上的情况。

+0

这个技巧适合我。我知道这不是内存错误,我也知道我没有编译我的代码。好的提示。 – beingalex 2014-02-12 13:00:01

+0

你会在哪里看到这些报告?在exception.log文件中没有看到任何内容。谢谢 :) – 2015-10-19 15:44:29

5

这是我得到了修正它(希望能帮助你们):

  1. 使用您的index.php文件下面的代码

    ini_set('error_reporting', E_ERROR); 
    register_shutdown_function("fatal_handler"); 
    function fatal_handler() { 
        $error = error_get_last(); 
        echo("<pre>"); 
        print_r($error); 
    } 
    
  2. 在我的情况tolde我该错误/ 503.php不可用。

3.问题是与个人鉴定扩展我用(http://www.magentocommerce.com/magento-connect/magebuzz-free-testimonial.html

  • 我删除我的应用程序的/ etc /模块/ testimoanial的testimonial.xml文件。 XML。
  • 删除“maintenance.flag”文件。
  • 0

    的另一个原因,任何日志可能是APC缓存没有看到任何错误。 见我的回答#2为here更多的细节。

    您可以

    • 通过的.htaccess禁用它:的php_flag apc.cache_by_default关闭
    • 明确每次页面被调用时的APC缓存:加在T op of index.php apc_clear_cache(); (没有解决方案,但很好看看是否APC是问题)
    1

    我从我的var-> cache目录中删除了所有文件夹,并且前端开始工作。