即使在调整 php.ini 后,允许的 *** 字节内存大小也会耗尽

Posted

技术标签:

【中文标题】即使在调整 php.ini 后,允许的 *** 字节内存大小也会耗尽【英文标题】:Allowed memory size of *** bytes exhausted even after adjusting php.ini 【发布时间】:2018-01-31 01:42:13 【问题描述】:

突然这一行

$data_to_send = @file_get_contents($source);

给我一​​个错误

"error":"type":"Symfony\Component\Debug\Exception\FatalErrorException","message":"允许的内存大小为 536870912 字节已用尽(尝试分配 353912831 字节)","file": "/home/forge/biossantibodies.com/app/commands/FileName.php","line":157

升级虚拟机资源

我已经将我的 Linode VM 升级到此计划,但仍未看到错误。


更新 PHP.ini

我检查了我的 php.ini,并已更新为

cat php.ini | grep _max                                                                                                         
log_errors_max_len = 1024
post_max_size = 2000M
upload_max_filesize = 2000M
session.gc_maxlifetime = 1440
;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):

重启php-fpm服务

如您所见,我已经将内存允许增加到2000M

我也重启了我的 php-fpm

service php5-fpm restart


phpinfo()

我的更改似乎得到了体现。


重启整个虚拟机

我什至尝试重新启动整个虚拟机。

我还是遇到同样的问题,是不是改错文件了?

如何仔细检查?

【问题讨论】:

调试:添加一个echo,它将输出$source并在该行之前设置文件大小,看看它会出现什么。 现在让我这样做,我会更新帖子。 @KIKOSoftware:我得到的文件大小是:345620 在这里查看:dropbox.com/s/ml2idhm33mw0x5o/… fire() 只被调用一次吗?通常,当您耗尽内存时,您会陷入某种循环。 【参考方案1】:

“允许的内存大小536870912字节已用尽(尝试分配353912831字节)”

这意味着您还需要更新 php.ini memory_limit 指令。

尝试放入你的 php.ini:

memory_limit=1024M

【讨论】:

好点,我将我的从 1024M 更新到 4096M。用 phpinfo() 正确显示测试它,然后重新尝试仍然发生。 可能值得与托管公司核实您对它们的内存限制。如果他们将您限制在一定数量,那么您将 php.ini 更改为什么都没关系。 见this question。您应该尝试重新启动 nginx/apache。

以上是关于即使在调整 php.ini 后,允许的 *** 字节内存大小也会耗尽的主要内容,如果未能解决你的问题,请参考以下文章

显示PHP错误消息,即使在php.ini文件

即使在 php.ini 中使用 display_errors = On,PHP 也没有错误

即使更新了 php.ini 也内存不足

一些PHP性能的优化

一些PHP性能的优化

即使我编辑了 php.ini 并且 php_ldap.dll 在正确的位置,也无法启用 PHP LDAP?