引言
PHP內存不足(Out of Memory)錯誤是許多網站管理者與開發者在運行WordPress、Joomla或自訂PHP應用時經常遇到的問題。本文將深入解析PHP內存不足的常見原因,並教你如何藉由調整php.ini與wp-config.php中的memory_limit值有效解決錯誤,同時說明伺服器配置優化的實用策略。無論你是新手站長還是資深開發者,都能從本文學會完整排查、設定與優化流程,確保網站效率與穩定性提升。
文章目錄
Toggle認識PHP內存不足錯誤的成因與影響
什麼是PHP內存不足錯誤?
PHP內存不足錯誤(Fatal error: Allowed memory size of … bytes exhausted)意即PHP執行程式時所需的記憶體超過了預設分配上限。常見於執行資源密集的外掛、主題或自訂程式時。
錯誤訊息範例與常見情境
- 在WordPress上傳大型圖片或安裝大型外掛時出現錯誤
- 執行複雜的PHP腳本或資料庫查詢時中斷
- 網站頁面出現白屏(White Screen of Death),伺服器log顯示memory exhausted
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 24576 bytes) in /path/to/script.php on line 42
內存不足對網站的影響
- 導致部分功能無法正常運作
- 影響SEO與使用者體驗,網站速度變慢甚至無法瀏覽
- 可能造成資料丟失或外掛/主題損壞
快速判斷與排查PHP內存不足問題
如何確認是內存不足錯誤?
- 檢視瀏覽器顯示的錯誤訊息
- 檢查伺服器error_log或PHP錯誤日誌
- 關閉所有外掛/主題,逐步啟用排查是否特定程式導致
經驗分享
根據實務經驗,90%出現PHP內存不足錯誤,多半是因為外掛或主題設計不良,或圖片/資料庫過大,建議先以官方建議的最低memory_limit做調整,再逐步加大資源。
檢查目前的PHP memory_limit設定方式
- 建立info.php檔案,內容如下:
<?php phpinfo(); ?> - 上傳至網站根目錄並訪問檢查memory_limit值
- 可在WordPress後台「工具」→「網站狀態」→「伺服器」查詢
調整php.ini中的memory_limit值
php.ini位置與尋找方法
- 常見於 /etc/php/7.x/apache2/php.ini 或 /usr/local/lib/php.ini
- 可於phpinfo頁面搜尋「Loaded Configuration File」找到路徑
- 共用主機用戶無法直接編輯時,請聯繫主機商
如何修改memory_limit步驟
- 開啟php.ini檔案
- 找到「memory_limit」設定(通常格式為
memory_limit = 128M) - 將數值調高,例如改為
memory_limit = 256M或512M - 儲存檔案並重啟Web伺服器(Apache/Nginx)
; Example:
memory_limit = 256M
調整建議值對照表

修改php.ini後的注意事項
- 變更後需重啟Apache/Nginx服務(
sudo systemctl restart apache2) - 如有多版本PHP,請確認修改正確php.ini
- 若仍無效,需檢查主機限制或.htaccess/.user.ini覆蓋設定
於WordPress透過wp-config.php調整memory_limit
適用情境與限制
- 無法編輯php.ini時,可於wp-config.php設定
- 僅影響WordPress執行時之memory_limit
- 部分主機商仍以主機端設定為準
設定步驟說明
- 以FTP/SFTP或主機面板編輯wp-config.php
- 在
/* That's all, stop editing! Happy publishing. */上方插入下列語法: - 儲存後重新整理網站測試
define('WP_MEMORY_LIMIT', '256M');
// 若需提高後台上限,可加上:
define('WP_MAX_MEMORY_LIMIT', '512M');
經驗補充
多數WordPress網站在啟用較多外掛或WooCommerce等電商功能時,建議WP_MEMORY_LIMIT設為256M以上,WP_MAX_MEMORY_LIMIT可根據需求調整。
wp-config.php與php.ini/memory_limit覆蓋關係
.htaccess與.user.ini進階調整方式
於.htaccess設定
- 適用於Apache伺服器
- 新增或修改下列參數:
php_value memory_limit 256M
注意:部分主機不允許php_value指令,會出現500錯誤。
於.user.ini設定
- 適用於支援.user.ini的PHP FPM主機
- 於網站根目錄建立.user.ini檔案,加入:
memory_limit = 256M
伺服器資源最佳化與配置建議
選擇合適的memory_limit值
- 根據網站規模、外掛數量、預期流量調整
- 避免設太高造成其他程式搶占資源,影響整體效能
- 可透過主機監控工具(如htop、top、NewRelic)追蹤使用狀況
伺服器硬體配置影響
- 總體RAM需大於所有PHP程序可能用量
- 建議:每1GB RAM最多設定3~4個256M的PHP Worker
- VPS/雲主機請考量OS、資料庫、快取等佔用
伺服器資源分配建議表
常見主機環境設定差異
- 共用主機:memory_limit多為128M~256M,無法自訂
- VPS/獨立主機:可自訂php.ini與多版本設定
- 雲端主機:支援彈性調整,建議搭配自動監控工具
經驗建議:如遇頻繁內存不足,評估升級主機等級或調整網站架構,避免單一PHP程序佔用過多記憶體。
最佳化網站程式與外掛,降低內存消耗
排查高資源佔用的外掛/主題
- 逐步停用/啟用外掛,觀察memory_limit消耗變化
- 安裝Query Monitor、WP Server Stats等外掛協助分析
- 定期移除未使用的外掛/主題
優化圖片與資源檔案
- 壓縮圖片、限制單張上傳容量
- 使用CDN減輕主機負載
- 啟用網頁快取與物件快取(如Redis、Memcached)
程式開發最佳實踐
- 避免無窮迴圈與記憶體洩漏
- 大型資料處理請分批處理,減少陣列/物件常駐記憶體
- 善用unset()釋放不需要的變數
常見問題與特殊案例處理
已調整memory_limit仍出現錯誤?
- 檢查是否多處設定互相覆蓋(如.htaccess、php.ini、wp-config.php)
- 確認主機物理RAM是否足夠
- 部分主機商會限制最大memory_limit,建議洽詢客服
特定外掛/主題仍耗盡記憶體?
- 回報開發者優化程式,或尋找替代方案
- 參考外掛官方文件調整設定,降低資源需求
總結與行動建議
- 遇到PHP內存不足錯誤,優先確認memory_limit設定與伺服器資源
- 彈性運用php.ini、wp-config.php、.htaccess/.user.ini等多重方式調整
- 持續監控網站資源使用,定期優化外掛、圖片與資料庫
- 根據流量與應用需求,適時升級主機或調整架構
只要依照本文流程,循序漸進調查與調整設定,幾乎所有的PHP內存不足問題都能獲得有效解決,讓網站長期穩定運作。
如有需求歡迎向WPTOOLBEAR團隊立即聯繫
常見相關問題 FAQ
- 什麼是WP_MEMORY_LIMIT與memory_limit的差異?
- WP_MEMORY_LIMIT僅影響WordPress執行時內存上限,而memory_limit為全域PHP設定,影響所有PHP程式。
- 調整memory_limit有沒有風險?
- 設定過高可能導致主機資源耗盡,影響其他網站或服務,建議根據實際需求調整並監控效能。
- 共用主機無法更改php.ini怎麼辦?
- 可嘗試於wp-config.php、.htaccess或.user.ini調整,若仍無效建議聯繫主機商協助。
- 調整後還是出現白屏或錯誤訊息怎辦?
- 請檢查是否有覆蓋設定、主機RAM限制或外掛/主題錯誤,建議逐步排查並聯繫技術人員協助。
- 有哪些工具可持續監控PHP內存使用狀況?
- 可使用NewRelic、Query Monitor、WP Server Stats、htop等工具,協助追蹤與優化資源分配。





