PHP致命错误:内存不足(已分配1707606016)(尝试分配426680697字节)

时间:2016-05-12 06:36:50

标签: php memory apache2

我在DigitalOcean上有一个Droplet,它是一个带10GB内存的10美元包,然后我升级到20美元包。

所以这一切是如何开始的,我试图使用cURL参数将文件从一个服务器上传到另一个服务器,现在问题是......文件没有发送,因为我得到了这个漂亮的错误。

PHP Fatal error:  Out of memory (allocated 1707606016) (tried to allocate 426680697 bytes)

现在我将memory_limit设置为2048MB,因为这是我在VPS上获得的MB内存量。在我升级之前,我只有1024MB的内存,当时的错误信息不同,这就是我得到的。

PHP Fatal error:  Out of memory (allocated 530055168) (tried to allocate 529639729 bytes) 

我的VPS拥有足够的内存来上传403MB文件,并且我的memory_limit已达到最大值,我无法升级服务器内存限制。

memory_limit = 2048M
file_uploads = On
upload_max_filesize = 5000M
max_file_uploads = 20
allow_url_fopen = On
post_max_size = 0
max_execution_time = 90000
max_input_time = 90000

显然它可能看起来像重复,但我所看到的所有帖子的解决方案对我有效。具有memory_limit的脚本实际上是一个处理从备用服务器发送的cURL请求的处理程序。

3 个答案:

答案 0 :(得分:0)

您可以更改php.ini

memory_limit = -1

并添加到httpd.conf并重新启动Apache

答案 1 :(得分:0)

在1GB RAM和1CPU的DigitalOcean小滴中,我遇到了同样的问题。 试图安装两个不同的LMS系统,Claroline和Chamilo。 我已将Droplet升级到2GB的RAM和相同的CPU。

问题已解决。确切地说,这与内存限制有关。

答案 2 :(得分:-1)

您可以更改php.ini

memory_limit = 128M

并添加到httpd.conf 然后重新启动并重新启动apache