我有一个曾经工作的脚本。现在我已经上传了它,它回复了:
[06-Jan-2014 13:23:52 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 130968 bytes) in /home/statsaff/public_html/customforthisdomain.php on line 165
[06-Jan-2014 13:23:53 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 130968 bytes) in /home/statsaff/public_html/customforthisdomain.php on line 165
[06-Jan-2014 13:23:54 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 130968 bytes) in /home/statsaff/public_html/customforthisdomain.php on line 165
[06-Jan-2014 13:25:08 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 130968 bytes) in /home/statsaff/public_html/customforthisdomain.php on line 165
[06-Jan-2014 13:25:29 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 130968 bytes) in /home/statsaff/public_html/customforthisdomain.php on line 165
[06-Jan-2014 13:26:05 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 130968 bytes) in /home/statsaff/public_html/customforthisdomain.php on line 165
[06-Jan-2014 13:26:08 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 130968 bytes) in /home/statsaff/public_html/customforthisdomain.php on line 165
经过进一步调查,我发现:
customforthisdomain.php
这是第165行的代码,它是空的
function mainURL()
{
$domain=getDomain();
$dictionary=getDomainDictionary();
return $dictionary[MAINURL];
}
//..
function getDomainDictionary()
第165行在那个空白区域内。
是什么驱使我坚果是错误据说发生在第165行。但是,第165行没有任何内容。无论我如何更改脚本,错误消息都会说它发生在第165行。
我将文件拆分为2个文件。然后我开始将代码从一个文件移动到另一个文件。
罪魁祸首似乎在这一行
function getDomain()
{
$domain=$_SERVER['SERVER_NAME'];
$domain = str_replace("www.", "", $domain);
/*if ($_GET['asdomain'])
{
$domain=$_GET['asdomain'];
}*/
return $domain;
}
如果我取消注释注释行,则错误位于customdomain1.php中。如果我发表评论,错误发生在getcountryotherway.php
罪魁祸首总是165.尽管该文件甚至不包含165行。
答案 0 :(得分:1)
这里有两种方法可以搞乱。首先是错误地配置了缓存。在SilverStripe安装中,必须存在silverstripe-cache。这个网站非常相关。
www.meerware.com/thoughts/2013/07/choose-your-silverstripe-cache-location-carefully /
您的php可能有不同的缓存,但缓存不可写会导致无限的内存消耗。
此外,如果selinux或权限问题阻止缓存位置可写,则可能会出现同样的问题。
答案 1 :(得分:0)
该错误的可能原因:
如果您无法更改服务器的php配置,则必须分析代码并进行一些改进。
由于服务器的配置,浏览器不应该出现问题。也许清除你的缓存然后再试一次?
答案 2 :(得分:0)
更新PHP.ini或使用init_set更改限制。
ini_set("memory_limit","12M");
12Mo是限制。
答案 3 :(得分:0)
我弄明白了这个问题。一些函数保持递归地相互调用。我已经解决了这个问题。不知道为什么它总是说错误在第165行。第165行没有任何内容。这是非常误导的。