2014-01-06 3 views
0

У меня есть сценарий, который раньше работал. Теперь, когда я загрузил его, он ответил:Очень странный код ошибки

[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 

При дальнейшем расследовании, я узнал:

  1. ошибка не является точно такой же, независимо от того, как я изменить customforthisdomain.php
  2. В самом деле, Я установил, что строка 165 в скрипте пуста
  3. Ошибка отображается только в Firefox. Скрипт отлично работает в Internet Explorer.

Это код вокруг линии 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

настроить memory_limit в php.ini – user1844933

+0

Что делает скрипт? – putvande

+1

Технически говоря, не имеет значения, в каком браузере вы находитесь; вы должны опубликовать некоторый код, поскольку все, что мы можем сказать отсюда, это: ** Это не работает ** – MackieeE

ответ

0

Возможные причины этой ошибки:

  • Скрипт использует слишком много памяти
  • Неправильные/Бесконечные циклы, как время, Еогеасп для
  • кэшированных файлов может привести к том, что слишком

Если вы не можете изменить конфигурацию вашего сервера php, вам нужно проанализировать свой код и сделать некоторые улучшения.

Браузеры не должны создавать проблемы из-за конфигурации сервера. Может быть, очистить кеш и попробовать еще раз?

0

Обновите PHP.ini или используйте init_set для изменения лимита.

ini_set("memory_limit","12M"); 

12Mo - предел.

1

Здесь два способа испортить. Во-первых, кеш настроен неправильно. В установках SilverStripe необходимо использовать silverstripe-cache. Этот сайт весьма уместен.

www.meerware.com/thoughts/2013/07/choose-your-silverstripe-cache-location-carefully/

РНР может иметь другой кэш, но кэш не являются перезаписываемые причины потребления бесконечной памяти.

Кроме того, одна и та же проблема может возникнуть, если проблема selinux или разрешения не позволяет записывать содержимое кэша.

0

Я понял, проблема. Некоторые из функций рекурсивно перекликаются друг с другом. С тех пор я исправил это. Не знаю, почему он всегда говорит, что ошибка находится в строке 165. В строке 165. В строке 165. Вряд ли вводит в заблуждение.

Смежные вопросы