理解「Allowed Memory Size of X bytes Exhausted」錯誤
PHP 錯誤的「Allowed Memory Size of X by經常讓開發人員感到困惑,特別是當PHPInfo 指示看似足夠的記憶體限制時。為了解開這個謎團,讓我們深入研究一下可能的原因。
多種PHP 設定
PHP 的記憶體限制可以在多個位置進行設定:
- 主系統php.ini
- Apache的設定
- CLI/CGI 的php.ini
- .htaccess 檔案
- 使用ini_set() 的程式碼
使用ini_set() 的程式碼
使用ini_set() 的程式碼
使用ini_set() 的程式碼
使用ini_set() 的程式碼
使用ini_set() 的程式碼
使用ini_set() 的程式碼
使用ini_set()-
PHPInfo 的輸出-
- PHPInfo 顯示memory_limit 的兩個值: “大師”和“本地”。 “Master”值代表預設編譯限制,而“Local”值反映實際有效限制。如果「Local」值與「Master」值不同,則已在上述配置位置之一進行了修改。
- CLI 與 Web 伺服器
PHP通常使用單獨的 .ini 檔案進行命令列 (CLI) 和基於 Web 伺服器的操作。從 CLI 檢查 PHPInfo 會產生與在基於 Web 的腳本中檢查不同的記憶體限制值。 故障排除要診斷「允許的記憶體大小」錯誤,請考慮以下故障排除步驟:檢查PHPInfo「Local 」中的memory_limit 值以確定實際有效的值查看Apache 設定檔和.htaccess 檔案以尋找任何memory_limit 覆蓋。 如果透過程式碼中的 ini_set() 修改了記憶體限制,請刪除該呼叫或調整 memory_limit參數。 確保命令列和網路伺服器操作使用正確的 .ini 檔案和記憶體限製配置。
以上是為什麼即使 PHPInfo 顯示足夠的內存,我的 PHP 腳本也會遇到「允許的記憶體大小」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!