За последние 24 часа нас посетили 23250 программистов и 1700 роботов. Сейчас ищут 1628 программистов ...

Fatal error: Allowed memory size ... in Unknown on line 0

Тема в разделе "Прочие вопросы по PHP", создана пользователем haspadar, 20 ноя 2009.

  1. haspadar

    haspadar Активный пользователь

    С нами с:
    20 ноя 2009
    Сообщения:
    11
    Симпатии:
    0
    Вот проблема. Вылетает сообщение "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 518666144 bytes) in Unknown on line 0".
    Казалось бы. известная проблема. Только вот весь код index.php:
    Код (Text):
    1.  
    2. <?php
    3. echo 'memory_get_usage() before:' . memory_get_usage(true) . '<br/>';
    4. set_include_path(
    5.     get_include_path()
    6. );
    7. echo 'memory_get_usage() after:' . memory_get_usage(true) . '<br/>';
    То есть на set_include_path требуется 500 мегов. Проверил для интереса get_include_path - там 2 пути общим размеров в 53 символа.
    Первая мысль - проблема в серваке. Только как это исправить или хотя бы определить эту проблему.
     
  2. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    php.ini проверь где лежит и где его сервак ищет. У меня на курсах такое было, потому что php.ini не подхватился и лимит установился такой, что скрипт даже phpinfo() вывести не мог. Слава богу php ini dir в самом верху :)
     
  3. haspadar

    haspadar Активный пользователь

    С нами с:
    20 ноя 2009
    Сообщения:
    11
    Симпатии:
    0
    Дело в том, что на серваке с десяток проектов с нехилой нагрузкой - на них все ок. Во вторых доступа к php.ini у меня нету. А в третьих, как оказалось, эта проблема выявляется только после set_include_path, причем скрипт отрабатывается до конца всегда, но Fatal Error появляется все равно. Потому выход виду только один - либы, требующие добавить что-то в set_include_path - бросить в корень и запретить http-чтение.
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Лимит 128М, как можно заметить.

    haspadar, а что у тебя есть кроме этих 3х строк?
    И скрипт выполняется отдельно? или подключается где-то?


    P.S. php.ini - prepend_file проверь еще
     
  5. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    У тебя циклических ссылок в файловой системе случаем нет?
     
  6. haspadar

    haspadar Активный пользователь

    С нами с:
    20 ноя 2009
    Сообщения:
    11
    Симпатии:
    0
    Выполняется скрипт отдельно.
    auto_prepend_file и auto_append_file утановлены в ''.
    Почему Вы думаете, php.ini не подхватился? Там 128 и прописано.
    Помимо set_include_path больше кода в этом файле нет.

    Нет, циклических ссылок нет.
    И энкодэров не установлено.
    Вот phpinfo http://nodes1.com/km/phpinfo.php
     
  7. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    haspadar
    http://nodes1.com/km/index.php
    Это тот index.php

    Что-то он бред какой-то выдает.
    Либо он не такой как ты привел. Либо у тебя проблемы с сервером.
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    GET http://nodes1.com/km/index.php
    HTTP/1.1 200 OK
    Date: Sat, 21 Nov 2009 10:44:17 GMT
    Server: Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8e-fips-rhel5 DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    X-Powered-By: PHP/5.2.11
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: text/html; charset=utf-8
    Content-Length: 847898

    Малость не "але"
     
  9. haspadar

    haspadar Активный пользователь

    С нами с:
    20 ноя 2009
    Сообщения:
    11
    Симпатии:
    0
    нет, вот ссылка
    http://nodes1.com/km/index2.php
    С http://nodes1.com/km/index.php другая проблема - если нет выводимого контента, то есть респонс пустой - выводится такая каша. Перепробовал все кодировки - ничего.
    С сервером однозначно какая-то проблема, только на нем находится около 10 важныхпроектов,так что даже перезапустить попросить не получится.
     
  10. haspadar

    haspadar Активный пользователь

    С нами с:
    20 ноя 2009
    Сообщения:
    11
    Симпатии:
    0
    Только сейчас там нет memory_get_usage и выводится all right, чтобы не выпадал этот дамп. Только seti_include_path и echo.
     
  11. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    haspadar
    у сервера администратор или техподдержка есть? пусть они и разбираются.
     
  12. Anonymous

    Anonymous Guest

    Fatal error Allowed memory size in Unknown on line 0

    Ошибка "Allowed memory size of X bytes exhausted tried to allocate Y bytes" - говорит о том что вашему скрипту не хватает памяти, точнее скрипт не укладывается в тот обьем памяти который разрешен для выполнения PHP скриптами.

    В таких случаях обычно помогает изменение настроек, выберите подходящий:

    memory_limit = 12M - опция в вашем php.ini файле рекомендуется если есть доступ, действует на все скрипты на сервере
    ini_setmemory_limit, 12M; - php-код в начале проблемных скриптов.
    php_value memory_limit 12M - опция в .htaccess файле той папки в которой запускается скрипт.

    Вместо 12M подставляем необходимый обьем памяти, например по нарастающей, пока ошбка не перестанет вылазить, значение по умолчанию обычно 8M мегабайт.
     
  13. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Denisignatov
    где ты берешь настолько старые советы, да еще невпопад?

    Это давно уже не так.