首頁  >  文章  >  後端開發  >  為什麼 PHP 的「允許的記憶體大小」錯誤訊息顯示的值與 phpinfo() 中報告的「memory_limit」不同?

為什麼 PHP 的「允許的記憶體大小」錯誤訊息顯示的值與 phpinfo() 中報告的「memory_limit」不同?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-07 10:26:02258瀏覽

Why does PHP's

排查「Allowed Memory Size of X Bytes Exhausted」錯誤

當PHP 遇到錯誤「Allowed Memory Size of X by這表明分配的記憶體已達到其限制。通常,您可以檢查 PHPInfo 並注意到報告的 memory_limit 遠高於錯誤訊息中提到的值。這種差異可以歸因於 PHP 的多個配置來源。

設定來源:

PHP 的設定可以透過多種管道設定:

  1. 主系統php.ini
  2. Apache 配置(httpd.conf 或每個網站的.conf 檔案)
  3. CLI 和CGI php.ini(使用'php -i | grep memory_limit' 檢查)
  4. 本地. htaccess 檔案
  5. 腳本內(透過ini_set())

PHPInfo 輸出:

在PHPInfo 中輸出中,「Master」值代表PHP 安裝期間編譯的預設值。然而,「Local」值反映了實際有效的配置。該值可以與預設值匹配,也可以在上述任何位置進行自訂。

CLI 與 Web 伺服器:

此外,PHP 使用單獨的 .ini 檔案來執行命令 -線路 (CLI) 和網路伺服器操作。 PHPInfo 根據是透過命令列還是基於 Web 的腳本存取而產生不同的值。

故障排除:

  1. 查看所有可能的配置來源並識別任何衝突的設定。
  2. 確保正確的 php.ini 檔案對於特定上下文(CLI 或 Web 伺服器)有效。
  3. 使用 ini_set() 檢查腳本內記憶體調整。
  4. 排除應用程式程式碼中任何潛在的記憶體洩漏或過多的記憶體消耗。
  5. 如有必要,請考慮增加適當設定檔中的 memory_limit。

以上是為什麼 PHP 的「允許的記憶體大小」錯誤訊息顯示的值與 phpinfo() 中報告的「memory_limit」不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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