1. Tamagoch

    Tamagoch Новичок

    Сообщения:
    6
    Ваш город:
    Украина, Киев
    Address:
    Kiev, Ukraine
    Country:
    Location on Map:
    PHP Fatal error: Out of memory

    на версиях PHP 5.2.0, 5.2.1-dev регулярно вываливается такая ошибка:

    более простые скрипты все еще работают, но форумы, к примеру, нет :(

    это происходит когда процесс httpd.exe достигает определенного размера в памяти - достаточно большого размера, около 200 Мбайт, при чем уменьшаться никак не хочет, а только увеличивается...

    все это пытается работать под Apache 2.2.3 (php5apache2_2.dll) и Win XP SP2

    команда php.net устойчиво ругается, что это не баг PHP, в таком случае очень хотелось бы узнать, что и где можно подкрутить, чтобы все оно наконец-то могло нормально работать и высвобождать память после завершения своей работы

    сейчас пробую PHP 5.2.2-dev, но уверен, что ничего не поменялось :(

    так же ищу альтернативные варианты решения проблемы, кроме самых радикальных - переходить на другую ОС, например, пока совсем нет времени
     
  2. tony2001

    tony2001 TeaM PHPClub

    Сообщения:
    9.257
    Address:
    Lviv, Ukraine
    Country:
    Location on Map:
    Писать скрипты так, чтобы они не требовали 200Мб памяти для работы, либо увеличивать memory_limit.
    Первое, конечно, предпочтительнее.
     
  3. Tamagoch

    Tamagoch Новичок

    Сообщения:
    6
    Ваш город:
    Украина, Киев
    Address:
    Kiev, Ukraine
    Country:
    Location on Map:
    вы скажете это разработчикам IPB например? :cool:

    мои-то скрипты работают, да и форумные вряд ли съедают за раз 200М
    я еще раз повторюсь - объем памяти накапливается в процессе работы
    скрипты может и кушают 300-400К, они просто потом их не освобождают - вот в чем грабли
    и после пары сотен запусков скрипта он больше не хочет работать...
     
  4. magic

    magic lancer

    Сообщения:
    606
    Ваш город:
    Rackspace cloud
    Address:
    San Antonio, United States
    Country:
    Location on Map:
    php.ini:
    Сечешь?
     
  5. Tamagoch

    Tamagoch Новичок

    Сообщения:
    6
    Ваш город:
    Украина, Киев
    Address:
    Kiev, Ukraine
    Country:
    Location on Map:
    когда свалится в очередной раз, попробую... все равно Апач рестартовать...
    о результатах обязательно сообщу ;)
     
  6. tony2001

    tony2001 TeaM PHPClub

    Сообщения:
    9.257
    Address:
    Lviv, Ukraine
    Country:
    Location on Map:
    >вы скажете это разработчикам IPB например?

    а что такого?
    они святые, что-ли?

    >я еще раз повторюсь - объем памяти накапливается в процессе работы

    works just fine here.
     
  7. Tamagoch

    Tamagoch Новичок

    Сообщения:
    6
    Ваш город:
    Украина, Киев
    Address:
    Kiev, Ukraine
    Country:
    Location on Map:
    увеличение memory_limit не помогло - просто форум дольше продержался до появления этой ошибки

    вижу два пути на ближайшее время:

    1. обновить Апач до 2.2.4
    2. отказаться от использование модуля и настроить PHP как CGI

    что лучше? :)
     
  8. phprus

    phprus Moderator Команда форума

    Сообщения:
    1.868
    Ваш город:
    Perm, Russia
    Address:
    Perm, Russia
    Country:
    Location on Map:
    Tamagoch
    Обнови апач и сообщи о баге разработчикам IPB.
     
  9. Tamagoch

    Tamagoch Новичок

    Сообщения:
    6
    Ваш город:
    Украина, Киев
    Address:
    Kiev, Ukraine
    Country:
    Location on Map:
    но PHP тут точно ни при чем :D

    вот эта ошибка приводит к выгрузке одного из процессов httpd.exe и освобождению оперативной памяти

    я все-таки склонен обращаться к разработчикам PHP, но пока еще не все попробовал, не буду...
     
  10. modulator

    modulator Новичок

    Сообщения:
    20
    Ваш город:
    Петербург
    Address:
    Saint Petersburg, Russia
    Country:
    Location on Map:
    Re: PHP Fatal error: Out of memory

    Это проблема не PHP и не Bug PHP!
    Всё дело кроется в самом Apache 2.x.x, разработчики второго Апача довольно плохо заточили его по Windows. На Linux системах со вторым Апачем такого глюка не было бы.

    Чтобы у тебя хватало памяти для PHP сценариев надо из конфигурационного файла Апачи (httpd.conf) убрать (закомментировать) строки:
    EnableMMAP off
    EnableSendfile off
    Win32DisableAcceptEx On

    После этого памяти начнёт хватать, но начнутся тормоза при работе с сайтом (возможно не очень сильные). Проблема будет в том что в файле ошибок Апача (error.log ) почти ежесекундно будет появляться строка "[warn] (OS 64)The specified network name is no longer available. : winnt_accept: Asynchronous AcceptEx failed." и через сутки он у тебя будет бооольших размеров.

    Это проблема модуля “mpm_winnt_module” второго Апача который некорректно работает с функцией AcceptEx() на системах Windows (ну или что вроде того).
    Короче связку Apache 2.x.x + PHP 5/4 на системах Windows ты не заставишь нормально работать, особенно набольших веб-проектах.

    Я прошел через такую-же проблему и нашел единственный выход, надо поставить Апаче первой версии. Я лично поставил Apache 1.3.37 и больше с этой проблемой не сталкивался…….
     
  11. Tamagoch

    Tamagoch Новичок

    Сообщения:
    6
    Ваш город:
    Украина, Киев
    Address:
    Kiev, Ukraine
    Country:
    Location on Map:
    Re: Re: PHP Fatal error: Out of memory

    да я уже сам понял, что тут Апач скорее всего и виноват....
    AcceptEx и все остальное отключил давно - потому что вообще файлы не отдавались :)
    а про линукс думал еще до появления этой проблемы, просто нет свободной машины пока...

    спасибо за ответ, убедился в правильности своих предположений ;)