2016-09-28 144 views
0

這是我的問題:當我嘗試在我的開發環境中執行cache:clear命令時,由於PHP內存限制,我有一個致命錯誤。所以,我試圖將這個限制增加到2048M,這應該足夠了,但仍然是同樣的問題。我試過了一切:在執行命令之前手動刪除緩存文件夾,將PHP memory_limit設置爲-1(由Windows停止,因爲分配內存不足),使用--no-warmup命令執行命令或 - -no-可選,取暖器...Symfony清除緩存內存限制

的信息,一切就像一個魅力...

爲什麼這個命令是如此貪婪?我該如何解決我的問題?

謝謝!

回答

0

你在哪裏改變了內存限制。

對於Web服務器和命令行界面(CLI),您的php.ini有很大的不同。

如果您在命令行中遇到了memory limit的問題,請確保您正在編輯正確的php.ini文件。

要知道什麼是ini文件正在使用中。運行命令:php --ini

希望這會有所幫助。

+0

謝謝您的回答,但是當我改變了內存的限制,我可以看到,它的考慮帳戶,因爲當我把256M,它在256M失敗,當我把512M,它在512M等失敗... – Alfredo

0

當我從SF2.3升級到SF2.8(很多BC更改)時,我遇到了類似的問題。 通過CLI運行的PHP腳本沒有默認設置的最大內存限制。這就是爲什麼所有內存資源都被耗盡的原因。

問題就走了之後我:

  1. 升級捆綁最新版本,這很可能是不夠兼容當時最近SF版本。

  2. 修復了我的所有代碼,以反映升級手冊(主要是表單類型,yaml設置和控制器)的BC更改。

包和我的代碼產生了更大量的調試信息(通常是廢棄警告),這引起了PHP的Xdebug直到內存刷爆佔用的所有資源。我注意到,只有在預熱緩存的時候。在所有修復之後,我將警告信息保持在最低限度。

你可以檢查:

  • dev.log任何廢棄警告
  • Xdebug的設置,並設置max_nesting_level一些理智的價值: Xdebug的。max_nesting_level = 1200
  • 的CLI,禁用Xdebug的是不必要的反正: php5dismod -s命令行的XDebug
+0

嗨,我檢查了dev.log,它似乎確定。在我的CLI php.ini文件中,XDebug被禁用......仍是同樣的問題!感謝您的回答。 – Alfredo