in , , ,

如何於主機空間解決WordPress經常發生的錯誤:Memory Exhausted Error 問題(增加PHP Memory)

WordPress作為功能強大的免費安裝軟體(如何安裝WordPress請點我),隨著近來網站需求增加,常會有因外掛程式安裝的比較多(或是裝了設計不良的外掛程式),造成記憶體用量超過預設的上限值,造成 PHP 的執行不了而網頁無法顯示,錯誤訊息的關鍵字是 Allowed memory size 與 exhausted。當發生該如何於cPanel控制台(何謂cPanel請點我)解決問題

常見因記憶體不足,造成無法網站運作的情況

①網頁無法顯示。
②外掛(風格)無法下載、安裝或更新。
③外掛下載後,造成網站/後台無法運作。
④後台無法編輯/作業或操作中途會有錯誤。

當因記憶體不足,主機空間或網頁會顯示的錯誤訊息如下

錯誤訊息的概要如下圖。由於每個主機空間的配置不同,部分可能在網頁上直接顯示錯誤:PHP Fatal error:Allowed memory size of *********** bytes exhauted 。

現在主機空間為程式bug直接顯示於網頁上,故網頁只顯示〝發生錯誤〞,需要查看error_log(error_log為程式bug的提醒,請至cPanel→檔案管理員→public_html資料下查看)才能 看到詳細的訊息。

當因記憶體不足,引導網頁、安裝作業無法完成時,該如何處理

可以透過調整〝limit_memory〞的大小(有2個步驟)來解決。

步驟①:確認WordPress程式開放的memory 大小:
請找到wp-config.php檔案裡:define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
將256M調整與下方②的說明,調整成一樣數值。
P.S.若wp-config.php沒上述限制,則不用調整。

●wp-config.php檔案位置如下圖:

●〝define( ‘WP_MEMORY_LIMIT’, ‘256M’ );〞 如下圖:

步驟②:調整主機空間的limit_memory限制(cPanel官網說明如何調整limit_memory,請點我),處理方式如下:

至cPanel控制台→Select PHP Version→Options→即可調整limit_memory(詳情教學請點我
P.S.若您的主機空間控制台介面,找不到limit_memory,建議直接洽詢您的主機空間商引導設定。

主機空間的資源沒不足,為何會有記憶體不足的問題,limit_memory用途是什麼?

主機空間的limit_memory 是針對每一個腳本(process)作記憶體(memory)的限制。(非指主機空間的總記憶體)

舉例來說:主機空間的limit_memory限制為128M,總記憶體限制為2G(=2000M)

在主機空間資源足夠的情況下,可以運行10個 記憶體需要100M的 process(總記憶體1000M)。

而有〝1個〞process運行需要200M的記憶體,雖只有1個,因超過主機空間limit_memory限制(哪怕主機空間總記憶體情況下,仍無法運行)。

當limit_memory大時,意味著網站的每位訪問者都會這樣大的記憶體,此容易造成主機空間〝總記憶體不足〞,這就是為什麼一開始將limit_memory限制設置為盡可能低的原因,因為此設置可以積極幫助後續的網址功能增加。且將limit_memory設置得盡可能低還可以確保,如果系統中存在錯誤,它不會導致總記憶體不足而造成整個網站無法運作與維護。

主機空間和程式的設定都符合外掛的建議,為何還是不行?

因許多外掛會增加每個process運作時的使用資源(並非一個外掛一個process),
亦即安裝愈多外掛,可能會造成單一process運作時需要消耗的記憶體增加。

而網站上外掛的記憶體(主機資源)建議,僅針對〝單獨使用該外掛〞時需要的主機資源建議,不包含原先process運行時所需要消耗的memory。

故limit_memory的設定還需要再往上加,而請參考上述的error_log說明,會將〝Allowed memory size of 後的數值〞(已消耗的值)+〝Tried to allocated 〞(不夠的值)。

P.S.一般〝Tried to allocated〞的值不盡相同,建議抓取較寬鬆的總和來設定。

結論

除了上述調整limit_memory的動作,然而許多外掛的功能會有重疊且在網頁能順利運行的考量下,著重於外掛的篩選與汰舊換新,會比將所有的外掛一股腦的安裝上,效果更好。
上述的操作也不限於WordPress,凡是網頁程式有遇到該問題,都可以參考上述步驟②的方式來優先處理目前的問題,再後續確認網頁程式的狀況。

文章來源:https://wpoki.com

Written by 統包小唐

從資訊小白一步步摸索成統包小唐,大伙一塊來進步吧!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

GIPHY App Key not set. Please check settings