我在DigitalOcean上有一个液滴,它是一个带有1GB内存的10$包,然后我升级到了20$包。
所以这一切的开始是,我试图使用cURL参数将文件从一台服务器上传到另一台服务器,现在的问题是……文件无法发送,因为我收到了这个漂亮的错误。
PHP Fatal error: Out of memory (allocated 1707606016) (tried to allocate 426680697 bytes)
现在我将memory_limit
设置为2048MB,因为这就是我在VPS上的内存量。现在,在我升级之前,我只有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我将液滴升级到2GB的RAM和相同的CPU
问题解决了。从定义上讲,这与记忆的局限性有关。
您可以更改php.ini
memory_limit = 128M
并添加到httpd.conf并且重新启动并重新启动apache