MediaWiki在上传文件时耗尽了PHP的内存限制

时间:2011-04-04 16:36:47

标签: php memory-management mediawiki

我在服务器上运行了基本的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 个答案:

答案 0 :(得分:2)

您使用的是哪个版本的MediaWiki,是否已检查过LocalSettings.php?对于1.15及更早版本,默认情况下会有一行覆盖你的php.ini:

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

尝试将phpinfo()添加到LocalSettings的末尾,而不是一个独立的文件,因此它显示MW初始化后的状态。