LinuxForum.Fans
Тема

Проблема в настройке вебсервера: не хватает памяти для выполнения php

Автор: jetistyum 8 сообщений 5765 просмотров
#23519

Помогите решить проблему с конфигурацией вебсервера на CentOS
существует проблема на сервере... (VPS)
некоторые скрипты завершаются с ошибкой

PHP Fatal error: Out of memory (allocated
10747904) (tried to allocate 44 bytes) in
/home/partinfo/public_html/libraries/joomla/database/database/mysql.php
on line 462

(да, это джумла)

не хватает памяти для выполнения скрипта... смотрим в настройки пхп - memory_limit=64M
тоесть явно лимит больше чем используется (увеличение лимита соответственно ни к чему не приводит)

ограничение на уровне системы
/etc/security/limits.conf
файл пустой... точнее дефолтный... все закомментировано
под впс выделено 512 мег памяти...

результат выполнения posix_getrlimit()

Array
(
[soft core] => 0
[hard core] => 0
[soft data] => unlimited
[hard data] => unlimited
[soft stack] => 10485760
[hard stack] => unlimited
[soft totalmem] => 44739242
[hard totalmem] => unlimited
[soft rss] => unlimited
[hard rss] => unlimited
[soft maxproc] => 135168
[hard maxproc] => 135168
[soft memlock] => 32768
[hard memlock] => 32768
[soft cpu] => 240
[hard cpu] => unlimited
[soft filesize] => unlimited
[hard filesize] => unlimited
[soft openfiles] => 16384
[hard openfiles] => 16384
)


вероятно проблема в
soft stack ( The maximum size of the process stack, in bytes.)
Но где устанавливаются ограничения на это ... не имею понятия

#40299

Что в строке 462 в файле /home/partinfo/public_html/libraries/joomla/database/database/mysql.php?

#40895

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

text

//код начиная с 468 строки 
while ($row = mysql_fetch_object( $cur )) {
            if ($key) {
                $array[$row->$key] = $row;
            } else {
                $array[] = $row;
            }
        }
#40904

Зачем начиная с 468 строки, если в логах упоминается 462?

Выложите нормальный листинг и, желательно, с подписанными номерами строк

#41280

опечатался ... код начиная с 462 строки..
вот ссылка на полный листинг
http://pastebin.com/QdxShjF5
это стандартная джумловсая либа

#41433

Там предлагают увеличить лимит памяти средствами php (ini_set('memory_limit', '192M' );)
как я УЖЕ НАПИСАЛ:

jetistyum написал:
не хватает памяти для выполнения скрипта... смотрим в настройки пхп - memory_limit=64M
тоесть явно лимит больше чем используется (увеличение лимита соответственно ни к чему не приводит)

вероятно Вы не обратили на это внимания!

PHP Fatal error: Out of memory (allocated 10747904) (tried to allocate 44 bytes)

падает при попытке выделения чуть более 10 мб, если я правильно понимаю

#283021

Такая же проблема, чем у вас всё решилось ?

Войдите или зарегистрируйтесь, чтобы ответить.