我有一個問題增加PHP的內存限制爲Apache模塊。如何增加超過2GB的PHP內存限制?
如果我把下面的指令在Apache配置,這項工作確定:
php_value memory_limit 1.99G
但超過2GB不工作,這是恢復該值回128MB。
這裏有什麼問題?我需要更多內存來處理一些PDF相關任務。
服務器是Debian 2.6.32-5-amd64#1 SMP,PHP 5.3.3-7 + squeeze13帶有12GB物理內存。
我有一個問題增加PHP的內存限制爲Apache模塊。如何增加超過2GB的PHP內存限制?
如果我把下面的指令在Apache配置,這項工作確定:
php_value memory_limit 1.99G
但超過2GB不工作,這是恢復該值回128MB。
這裏有什麼問題?我需要更多內存來處理一些PDF相關任務。
服務器是Debian 2.6.32-5-amd64#1 SMP,PHP 5.3.3-7 + squeeze13帶有12GB物理內存。
輸入以下到Apache的配置:
php_value memory_limit 2048M
您應該在支持64位操作系統,64位Apache版本和PHP相同的硬件上安裝64位操作系統。但是這並不能保證使用PDF的函數可以使用如此大的內存。你最好不要將整個文件加載到內存中,將它拆分成塊或使用文件函數來查找它,而不加載到RAM中。
我建議你在錯誤的光線下看問題。這個任務應該是'我在做什麼需要2G內存在apache進程中通過apache模塊使用Php,並且這個工具是否適合這項工作?
是的,你可以將一枚火箭綁在福特平託上,但它可能不是正確的解決方案。不管怎樣,如果你真的需要它,我會提供火箭......你可以添加到腳本的頂部。
ini_set('memory_limit','2048M');
這將只爲腳本設置它。你仍然需要告訴apache允許這麼多的php腳本(我認爲)。
我知道,腳本不是我的,它是一些html2pdf轉換器,並輸入到它非常大的HTML頁面。 – mikikg 2012-08-09 14:16:53
@mikikg看到上面的答案 – Ray 2012-08-09 14:31:08
正確的解決方案和正確的解釋!我碰到了只有一個腳本的內存限制,我的站點地圖索引了太多的頁面(存儲在數據庫中)。完美的解決方案,網站地圖有很高的內存限制,其他一切都保持不變。 – HoldOffHunger 2017-07-08 01:13:00
對於其他人誰是同樣的問題經歷,這裏是錯誤的PHP +補丁 https://bugs.php.net/bug.php?id=44522
對於無限的內存限制的描述memory_limit
變量設置-1
:
ini_set('memory_limit', '-1');
很高興知道無限的內存是可能的,但是,我不認爲我很快就會在代碼中使用它。 =) – HoldOffHunger 2017-07-08 01:15:14
2G Apache進程!哇。 – Ray 2012-08-09 14:05:01
也許你應該把apache配置作爲默認配置,並且'ini_set('memory_limit',-1);'只在你需要的文件上。看看是否有效。 – JRomero 2012-08-09 14:07:52
使用MB代替GB不會改變任何內容。我有一些其他的限制,也許在Apache配置的某處。另外,據我所知memory_limit不能在運行時更改,默認值是128MB。也許我可以在主php.ini中設置,但我不希望其他VHOST有這麼大的設置,所以我使用它每個VHOST。 – mikikg 2012-08-09 14:12:43