2014-02-10 92 views
24

我得到一個錯誤,當我嘗試打開我的儀表板頁面之一我的wordpress腳本致命錯誤:用盡268435456個字節允許內存大小(試圖分配71個字節)

該錯誤消息如下:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 71 bytes) in /home/admin/domains/filesick.com/public_html/wp-includes/taxonomy.php on line 2685

我四處詢問,被告知我必須增加memory_limit的到的東西比256M高,所以我改成了512M,仍然同樣的問題。然後我將其更改爲3024M,這就是我現在的情況,但這並沒有解決問題。

那麼你能告訴我如何解決這個問題,我該怎麼做?

等待您的回覆。

+0

這聽起來像你的記憶限制變化沒有被應用。您可能正在編輯錯誤的文件。嘗試在與wordpress安裝相同的目錄中的腳本中運行php_info(),並在那裏檢查輸出的實際memory_limit。 – Loopo

+0

在猜測,你有一些代碼導致無限循環 – andrewsi

+0

而不是增加內存,我會修復儀表板,並刪除一切不必要的.. – DanFromGermany

回答

37

WordPress將覆蓋PHP的內存限制爲256M,假設無論它以前設置爲低將無法呈現儀表板。您可以通過在wp-config.php定義WP_MAX_MEMORY_LIMIT覆蓋此:

define('WP_MAX_MEMORY_LIMIT' , '512M'); 

我DanFromGermany同意,256M是真的呈現儀表板頁面大量的內存。改變內存限制實際上是在解決問題。

+0

非常感謝你Dave它的工作,但請什麼這是否意味着問題出在哪裏,例如導致編碼器或服務器出現此問題的原因是什麼? –

+0

這取決於代碼在做什麼,可能有一個合法的原因需要使用如此多的內存,例如處理大型文件,但即使是大型文件,也沒有將整個內容讀入內存,而是可以通過塊來處理它。 – Loopo

+1

有時候是平臺本身。例如在WordPress(3.8.3)代碼/ wp-includes/wp-db中。從1240行開始的PHP有一個循環,應該將數據庫查詢的結果累加到數組中。這對我來說大約有26,800個職位失敗。現在我無法分辨爲什麼WordPress團隊選擇在一次調用中加載所有帖子,但管理儀表板因此失敗。 – KalenGi

11

我有這個問題。我搜索了互聯網,採取了所有的建議,改變配置,但問題仍然存在。最後在服務器管理員的幫助下,他發現問題在於MySQL數據庫列的定義。一個表中的一列被分配給'Longtext',這導致分配4,294,967,295個內存。如果你沒有使用MySql語句,看起來工作正常,但是一旦你使用了準備語句,它就會嘗試分配這些內存。我將列類型更改爲需要16,777,215個內存空間的中文文本。問題沒有了。希望這個幫助。

相關問題