PHP memory_limit 本地值與 php.ini 值不匹配
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
更新的本地值中的值。這是我的問題,我花了幾個小時才確定這一點。可以為一些人節省一些時間。:)