我在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请求的处理程序。
你可以改变php.ini
memory_limit = -1
并添加到httpd.conf并重新启动Apache
我在1GB RAM和1CPU的DigitalOcean液滴中遇到了同样的问题。试图安装两个不同的LMS系统,Claroline和Chamilo。我将Droplet升级到2GB的RAM和相同的CPU。
问题解决了。确切地说,它与内存限制有关。
你可以改变php.ini
memory_limit = 128M
并添加到httpd.conf并重新启动并重新启动apache