2012-06-14 35 views
0

當我用php語言執行一些腳本,針對一大數據,如出口數據,提取和打印數據,已經發生了錯誤:內存不足,雖然增加momery限制

Fatal error: Out of memory (allocated 493617152) (tried to allocate 345571051 bytes) 

雖然我已經增加了內存腳本通過以下說明:

ini_set('memory_limit', '3072M'); 

而對於更多的保證,我甚至在php.ini文件修改memory_limit的值到3072M:

memory_limit=3072M 

所用服務器上的RAM大小爲4GB。

那裏有什麼問題?

+0

如果您正在嘗試的操作是如此之大,你會更好打破它。想想Gearman。或者,您可以使用cron將其分解成小塊,以用於不同的操作。 –

+0

493617152!== 3072M –

+0

您是否在更改ini文件後重新啓動Web服務器? –

回答

0

ini_set('memory_limit', '3072M');簡單地被忽略:沒有scritp可以增加自己的內存限制 - 將是任何共享虛擬主機的好攻擊向量!

編輯

如果您在命令行中運行它,嘗試PHP -d memory_limit的= 3072M /路徑/到/文件

如果從網絡服務器編輯php.ini中運行它, - htaccess或任何需要您的安裝

+1

-1 - 名稱:memory_limit默認值:「128M」可更改:PHP_INI_ALL - 可以動態更改內存限制;雖然它可能會被託管公司禁用 –

+0

我已經編輯了php.ini文件,並且我設置了新值,我也從腳本中設置了該值,但同一個錯誤與大數據一起出現! –