當 PHP 腳本處理大量資料(如匯出 Excel、圖片處理、大量資料庫查詢)時,常會遇到記憶體不足錯誤。以下提供三種調整 memory_limit 的方法,依環境需求選擇。
; 找到 memory_limit 並調大,例如 16M、128M 或 256M
memory_limit = 128M
修改後必須重啟 Apache/Nginx + PHP-FPM 才能生效。
<?php
// 設定為 100MB,或使用 -1 代表不限制(謹慎使用)
ini_set('memory_limit', '100M');
放在腳本最開頭,僅影響當前執行的檔案。
php_value memory_limit 128M
放在專案根目錄的 .htaccess,適用於共享主機無法改 php.ini 的情況。
memory_limit 設得過大(如 -1),以免單一腳本佔盡系統記憶體導致伺服器當機。