MediaWiki исчерпывает лимит памяти PHP при загрузке файла - PullRequest
2 голосов
/ 04 апреля 2011

У меня установлена ​​базовая установка MediaWiki на сервере. Когда я пытаюсь загрузить файл, я получаю следующую ошибку:

Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 131072 bytes) in /var/www/wiki/includes/BagOStuff.php on line 404 

Строка, на которую ссылается это:

function _serialize( &$data ) {
    $serial = serialize( $data );
    if( function_exists( 'gzdeflate' ) ) {
        return gzdeflate( $serial ); // line 404
    } else {
        return $serial;
    }
}

Странно то, что загрузка на самом деле работает нормально; после ошибки переход на страницу файла показал, что он был загружен. Кроме того, ошибка возникает только при загрузке нового файла, а не при обновлении существующего файла.

Это происходит даже при использовании довольно маленьких файлов изображений, и даже когда ограничение памяти PHP увеличено до 512M, поэтому проблема с памятью как таковая кажется маловероятной. По какой-то причине у gzdeflate возникают проблемы с сериализованным файлом?

1 Ответ

2 голосов
/ 11 апреля 2011

Какую версию MediaWiki вы используете и проверили ли вы свой LocalSettings.php? Для версии 1.15 и более ранних, там есть строка по умолчанию, которая переопределяет ваш php.ini:

ini_set('memory_limit', '20M');

И попробуйте добавить phpinfo () в конец LocalSettings, а не в отдельный файл, поэтому он показывает состояние после инициализации MW.

...