錯誤:Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 76 bytes)。默認 memory_limit = 8M (PHP 5.2) 或 128M (PHP 5.3+),處理大圖片、大文件、遞歸、大數組時易觸發。
ini_set('memory_limit', '256M'); // 根據需要設置,-1 為無限制(慎用)
; php.ini memory_limit = 256M ; 建議 128M-512M,視服務器內存而定 ; 生效需重啟 Apache/PHP-FPM
# .htaccess (需 AllowOverride Options 或 All) php_value memory_limit 256M
AllowOverride 支持 php_value。fgets、yield 生成器)、分批處理數據庫結果(LIMIT offset, count)、避免一次性載入巨大數組。unset($bigVar)、$bigVar = null 釋放引用計數。Imagick 替代 GD(內存效率更高)、縮圖後銷毀源資源。memory_get_peak_usage(),超過閾值報警。| 環境 | 建議值 | 說明 |
|---|---|---|
| 開發/測試 | 256M - 512M | 方便調試大數據 |
| 生產 Web | 128M - 256M | 防止單腳本佔盡內存導致 OOM Killer |
| CLI 長任務 | 512M - 1G 或 -1 | 視數據量而定,配合生成器分批 |