2
我有一個在服務器上運行的基本MediaWiki安裝。當我嘗試上傳文件,我得到以下錯誤:MediaWiki在上傳文件時耗盡PHP的內存限制
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出於某種原因對序列化文件有問題?
你可以嘗試再次增加內存限制,然後強制錯誤發生?你提供的錯誤信息表示一個* 20兆字節*的內存限制,而不是你說你增加了512的內存限制。也許你忘了在更改php.ini之後重新啓動Web服務器軟件,或者有多個php.inis? – Charles 2011-04-04 16:40:50
我重新啓動了Web服務器,並通過調用phpinfo()來確保更高的限制生效。當我發現即使512M沒有解決問題,我也把下限返回,這是錯誤發生的時間。 – tlayton 2011-04-04 21:18:22
如果上傳實際上有什麼問題? – 2011-04-05 14:26:56