
WordPress 網站突然白畫面,或出現這樣的錯誤訊息:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)
意思是 PHP 可以使用的記憶體(memory_limit)已經用完了。後面那串數字是位元組,除以 1024 兩次就是 MB:134217728 是 128MB,50331648 是 48MB。
常見的觸發時機是:安裝或更新外掛、上傳大圖片、匯入資料、使用頁面編輯器(Elementor 等)編輯大頁面。
第一步:查目前的記憶體上限
到後台「工具 → 網站健康狀態 → 資訊」:
- 「伺服器」區塊的「PHP 記憶體限制」:主機允許的上限。
- 「WordPress 常數」區塊的
WP_MEMORY_LIMIT:WordPress 自己設定要用多少。
以前的教學會教你建立一個 phpinfo 檔案來查,那個檔案會把主機的設定全部公開在網路上,現在用網站健康狀態查就好,不需要也不建議再這麼做。
一般網站 256MB 就很夠用;有購物車或頁面編輯器的網站可以設到 512MB。
方法一:修改 wp-config.php(最常用)
用 FTP 或主機的檔案管理員,打開網站根目錄的 wp-config.php,在「That's all, stop editing!」那一行的上面加入:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );WP_MEMORY_LIMIT:前台網頁使用的記憶體。WP_MAX_MEMORY_LIMIT:後台使用的記憶體(例如處理圖片、更新外掛)。
限制:WordPress 只能在主機允許的範圍內調高。如果主機把上限鎖在 128MB,這裡寫再大也沒用,要用下面的方法,或請主機商調整。
方法二:主機控制台調整(最穩定)
大部分虛擬主機的控制台都能直接修改 PHP 設定:
- cPanel:「選取 PHP 版本」(Select PHP Version)→「選項」分頁,或「MultiPHP INI Editor」,找到
memory_limit修改。 - DirectAdmin、Plesk:在「PHP 設定」相關頁面找
memory_limit。
找不到或不能改,直接寫信請主機商調整最快。
方法三:.user.ini 或 php.ini
如果主機用的是 PHP-FPM(現在大多數主機都是),可以在網站根目錄建立一個 .user.ini 檔案(有些主機是 php.ini),內容:
memory_limit = 256M修改後可能要等幾分鐘才會生效(PHP 預設每 5 分鐘重新讀取一次)。
方法四:.htaccess(只適用部分主機)
php_value memory_limit 256M這個寫法只在 PHP 以 Apache 模組方式執行時才有效。現在多數主機都不是這種方式,加了反而會讓網站出現 500 錯誤;如果加了之後網站打不開,把這行刪掉就會恢復。
不要修改 WordPress 核心檔案
另一篇舊文章(已合併到這裡)教大家直接修改 wp-includes/default-constants.php 裡的數值。請不要這樣做:
- WordPress 每次更新都會覆蓋核心檔案,你改的數值會被換回去,問題又會再出現。
- 改錯核心檔案,網站可能整個無法運作。
用方法一的 wp-config.php 就能達到一樣的效果,而且更新時不會被覆蓋。
調高了還是不夠?找出吃記憶體的外掛
記憶體一直不夠用,往往是某個外掛或主題寫得不好,一味調高只是治標。
- 安裝 Query Monitor 外掛,前台頁面上方的工具列會顯示每一頁使用了多少記憶體與查詢。
- 逐一停用最近安裝的外掛,看記憶體用量有沒有明顯下降。
- 找到元兇後,考慮換成更輕量的同類外掛。
延伸閱讀
- WordPress 網站加速完整攻略:測速、主機、快取、圖片、外掛與資料庫清理
- WordPress「更新失敗。回應不是有效的 JSON 回應」怎麼解決?6 個原因與處理方法
- .htaccess 用法大全:轉址、HTTPS、安全防護、壓縮與快取常用設定(WordPress 適用)
主機規格不夠、外掛越裝越多的網站,常常會卡在這類問題。正威網路行銷是 25 年經驗的基隆網頁設計工作室,也提供網站維護託管,服務台北與全台客戶,歡迎來聊聊。







發表留言
還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。