Php

PHP memory_limit 本地值與 php.ini 值不匹配

  • March 23, 2022

CentOS 系統。

摘要:更改了 master 和本地 php.ini 中的 memory_limit,但特定虛擬主機的本地值沒有更改。

為了提高性能,我在 /etc/php.ini 中將 memory_limit 設置為 1024M

phpinfo() 將伺服器上其他虛擬主機的 Master 和 Local 值顯示為 1024M。更改 /etc/php.ini 中的值會更改除一個之外的所有值。

一個站點的本地值為 256M。

我以為我發現了問題:該站點的根目錄中有一個 php.ini 文件(我不知道),它有

memory_limit = 256M

我把它改成1024M。問題解決了?不,現在我不知道去哪裡找。顯然,我已經重新啟動了 apache(/etc/init.d/httpd restart),這通常可以解決問題。

我還關閉了 APC 記憶體,但我認為它不會記憶體 ini 文件。

最後,我嘗試將其添加到 httpd.conf 中的虛擬主機:

php_value memory_limit 536870912

(是的,那將是 512MB)這沒有任何影響。

還有什麼問題?

謝謝。

我找到了答案。站點根目錄中有一個隱藏的 .htaccess 文件,它覆蓋了所有其他值。

它有一行:

php_value memory_limit 256M

我將其更改為:

php_value memory_limit 1024M

無需重啟apache,記憶體限制立即達到1024M。

——————

此外,如果您在網站根目錄中載入phpinfo()頁面,您可以在頂部附近看到影響 PHP 的配置文件。搜尋“config”,你會找到一個列表。

我只想補充一點,可以有另一個名為的隱藏文件.user.ini,它可以設置 php 變數,如php.ini.

.user.ini即使我嘗試將值設置為php.ini. 此處使用的值設置php.ini僅更新全域值,而不是本地值。更改.user.ini更新的本地值中的值。

這是我的問題,我花了幾個小時才確定這一點。可以為一些人節省一些時間。:)

引用自:https://serverfault.com/questions/402921