首頁  >  文章  >  後端開發  >  當 phpinfo() 顯示更高限制時,為什麼我的 PHP 腳本顯示「允許的記憶體大小已耗盡」?

當 phpinfo() 顯示更高限制時,為什麼我的 PHP 腳本顯示「允許的記憶體大小已耗盡」?

Susan Sarandon
Susan Sarandon原創
2024-11-06 22:36:02458瀏覽

Why is My PHP Script Showing

調查「Allowed Memory Size Exhausted」錯誤

錯誤訊息「Allowed memory size of X bytes Exhausted」表示允許超過PHPted的內存。雖然 PHPInfo 建議記憶體限制為 128M,但錯誤表明限制僅為 64M。要調查這種差異,了解 PHP 的配置層次結構非常重要。

PHP 的配置可以在多個位置設定:

  • 主系統php.ini(通常在/etc 中)
  • Apache 的配置(httpd.conf或.conf 檔案)
  • CLI 和CGI php.ini(使用'php -i | grep memory_limit')
  • 本地.htaccess 檔案
  • 腳本內(透過ini_set())

在PHPInfo 輸出中,「Master」值是預設值,「Local」值是有效值。 Local 值可能會在任何其他位置被覆蓋。

請注意,PHP 有單獨的 .ini 檔案用於命令列和基於 Web 伺服器的操作。從命令列檢查 phpinfo() 將顯示與基於 Web 的腳本不同的值。

在這種情況下,錯誤可能是由主 PHP 檔案中的 ini_set 呼叫引起的。此呼叫可能是無意中添加的,並且會覆蓋全域記憶體限制設定。要解決此問題,請找到 ini_set 呼叫並刪除或修改它,以確保它符合所需的記憶體限制。

以上是當 phpinfo() 顯示更高限制時,為什麼我的 PHP 腳本顯示「允許的記憶體大小已耗盡」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn