1

Помогите решить проблему с конфигурацией вебсервера на 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.)
Но где устанавливаются ограничения на это ... не имею понятия

2

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

3

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



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

4

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

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

5

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

6

посмотрите тут: http://forum.joomla.org/viewtopic.php?f … p;t=338355
попробуйте, посмотрим на результат

7 (17.05.2010 13:25:52 отредактировано jetistyum)

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

jetistyum пишет:

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

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

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

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

8

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