當你在經營WordPress或其他PHP架構的網站時,是否遇過「Allowed memory size exhausted」或「內存不足錯誤」?這類錯誤常因memory_limit設定不足,或伺服器資源分配不佳所致。本文將深入剖析PHP內存不足的原因、詳細教學如何透過修改php.ini與wp-config.php調整memory_limit,並提供伺服器配置與效能優化的實用建議。無論你是網站新手或資深工程師,讀完本文都能有效解決內存不足問題,並掌握網站效能提升的核心技巧。
文章目錄
Toggle認識PHP內存不足錯誤
常見錯誤訊息與成因
- Allowed memory size of xxx bytes exhausted
- Fatal error: Out of memory
- HTTP 500 Internal Server Error(有時也是內存不足導致)
這些錯誤訊息通常表示PHP執行時,所需的記憶體超過了系統允許的上限。memory_limit設定不足、外掛或程式碼效能不佳、伺服器資源分配不當,都是常見成因。
內存不足對網站的影響
- 網站無法正常載入或操作
- 資料遺失風險提升
- SEO排名受影響,增加跳出率
- 用戶體驗嚴重下降
memory_limit設定與調整方法
memory_limit是什麼?
memory_limit 是PHP用於設定單一腳本可用最大記憶體的參數,預設值常見為128M或256M。若執行量大、外掛繁多、圖片處理需求高,需視情況調整。
如何判斷是否需要調高memory_limit?
- 網站常發生「Allowed memory size exhausted」等錯誤
- 執行大型外掛、匯入大量資料時失敗
- 後台操作常卡頓或出現白畫面
修改php.ini調整memory_limit
什麼是php.ini?
php.ini 是PHP的主設定檔,負責控制記憶體、檔案上傳、執行時間等多項參數。大多數主機商都可讓用戶調整此檔案。

php.ini memory_limit調整步驟
- 透過FTP或主機控制台(如cPanel、Plesk)進入網站根目錄。
- 尋找php.ini檔案,若無則可自行建立。
- 編輯(或新增)下列設定:
memory_limit = 256M - 儲存檔案並重新啟動Web伺服器(Apache/Nginx)。
- 檢查網站是否正常運作。
建議值:一般WordPress網站建議256M以上,若有大量圖片處理可設為512M或更高。
不同主機環境下php.ini位置說明(表格建議)
透過wp-config.php調整WordPress記憶體上限
WordPress記憶體增量設定方法
- 使用FTP或檔案管理員開啟網站根目錄的
wp-config.php。 - 在
/* That's all, stop editing! Happy publishing. */這行前面,新增:
define('WP_MEMORY_LIMIT', '256M'); - 儲存檔案,並重新整理網站測試效果。
若主機有硬性限制,wp-config.php的設定可能無效,此時仍需修改php.ini或與主機商聯繫。
WP_MEMORY_LIMIT與WP_MAX_MEMORY_LIMIT差異
- WP_MEMORY_LIMIT:前台與一般後台的記憶體限制。
- WP_MAX_MEMORY_LIMIT:WordPress後台進行高負載操作(如匯入、升級)時的最大記憶體限制。
建議同時設定兩者,以確保前台與後台都能獲得足夠記憶體資源。
.htaccess與user.ini設定記憶體限制
.htaccess設定方法(限Apache)
php_value memory_limit 256M
注意:部分主機不支援此方式,若出現500錯誤請移除相關設定。
user.ini設定(適用於PHP-FPM)
memory_limit = 256M
將上述內容存為 .user.ini 檔案,放置於網站根目錄即可。不需重啟伺服器,設定會自動套用。
伺服器配置與效能優化建議
提升memory_limit前應注意哪些問題?
- 主機實體記憶體總量是否足夠?
- 是否有記憶體洩漏(Memory Leak)現象?
- 外掛/主題是否有資源消耗過大的問題?
- 網站流量與並發數是否大幅成長?
物理資源升級建議(表格建議)
伺服器端最佳化技巧
- 升級VPS/雲主機,提升RAM與CPU資源
- 安裝與配置OPcache,降低PHP腳本重複編譯
- 使用物件緩存(如Redis、Memcached)減少資料庫負載
- 啟用Gzip壓縮與快取機制提升載入速度
- 定期檢查並移除不必要的外掛與主題
- 監測系統負載並排查資源異常(建議插入效能監測工具截圖)

常見問題排查與除錯流程
如何快速找到內存消耗來源?
- 檢查外掛與主題是否有異常消耗(逐個停用測試)
- 查看WordPress Debug Log(啟用WP_DEBUG)
- 使用伺服器監控工具(如htop、top、New Relic、Site Health)
- 分析PHP錯誤日誌(error_log)
實際案例分享:升級memory_limit解決匯入失敗問題
某中型電商網站在大量匯入商品資料時,頻繁遭遇「Allowed memory size exhausted」錯誤。經分析,發現預設memory_limit僅128M,導致匯入作業中斷。後續將php.ini與wp-config.php memory_limit調整至512M,並升級主機RAM至4GB後,匯入流程順利完成,網站整體執行效率大幅提升。
總結與進階建議
- 適當調整memory_limit是解決PHP內存不足錯誤的第一步。
- 搭配伺服器資源升級與優化,能大幅減少網站當機與效能瓶頸。
- 定期檢查資源消耗,排除記憶體洩漏與異常,維持網站穩定運作。
若遇到難以解決的memory_limit問題,建議諮詢專業主機管理或網站開發團隊協助。
常見問題 FAQ
PHP內存不足錯誤是什麼原因導致?
主要由於PHP腳本執行時超過memory_limit設定,常見於大型資料操作、外掛資源消耗過大或伺服器資源有限時發生。
調高memory_limit會有安全風險嗎?
適度調高memory_limit通常安全,但過高可能讓有瑕疵的程式碼佔用過多資源,建議搭配效能監控與資源管理。
php.ini、wp-config.php、.htaccess的memory_limit設定先後順序?
一般以php.ini > .htaccess > wp-config.php的優先順序為準,若主機限制權限,建議以php.ini為主。
如何判斷memory_limit已成功調整?
可透過phpinfo()函數檢查目前生效的memory_limit值,或於WordPress後台Site Health工具確認。
遇到memory_limit調整無效怎麼辦?
可能因主機權限或設定檔未正確載入所致,建議與主機商聯繫或檢查設定檔位置、權限。
關於作者:本篇由擁有多年網站建置、伺服器管理及WordPress問題解決經驗的資深工程師撰寫。本站致力於分享最實用的伺服器維護與網站優化知識,協助用戶打造高效能網站。





