我在我的网站上遇到了WSOD的问题。我有很多模块,所以我的php执行时间是60,分配的内存是512 my。这个错误不是经常出现的--这是最大的问题,我无法重现它。
当时的http请求是200,这意味着它没问题,我的内存和处理器使用情况都很好。但是,我在php和apache2级别上没有错误,这意味着有些东西甚至在它能够记录任何东西之前就会死掉。如果我尝试调试它并将代码放入index.php中,那么问题就会消失,站点也是可见的,同时也会重新启动apache。
其他奇怪的事情,我有一个网站的测试副本,在同一服务器上。如果我加载测试站点,问题就会消失,就像apache重新启动时一样。
我的settings.php和index.php文件中都有这个。
error_reporting(E_ALL);
$conf['error_level'] = 2;
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);错误报告也设置在php和服务器级别上。仍然没有任何错误和解决办法的迹象。
谢谢,亚当
发布于 2014-02-28 11:26:49
您最好的选择是获取站点的本地副本,并利用XHProf (有一个模块)来确定到底是什么导致站点抛出WSOD (内存泄漏)?太多的DB电话了?等等)。
尽管如此,您可能应该首先确定哪些模块对于您的站点并不是绝对必要的,然后将它们完全卸载。请记住,任何已启用的模块都是在每次页面加载时被解析的,这会导致不必要的内存消耗。不过,减轻这种情况的一种方法是确保在服务器上启用了APC,或者更好的是,您正在运行随Zend内置的PHP5.5.x(不过,出于兼容性原因,它可能会涉及更多的问题)。
然后,您应该明确地尝试找出为什么您需要多达512米的PHP内存来运行站点。对于常规用例来说,这太过分了。它的一部分来源于这样一个事实,即您必须有太多的模块,但它也可能是由于太多的(非缓存的)视图和/或面板或任何东西需要太长的时间来加载。
我建议您在进行内存分析器分析之前安装XHProf模块(如果您对此还不熟悉的话)。这是一种快速和轻量级的方法,可以确定可能的罪魁祸首。
https://drupal.stackexchange.com/questions/105113
复制相似问题