【问题标题】:ini_set('memory_limit') causing php to crashini_set('memory_limit') 导致 php 崩溃
【发布时间】:2023-03-09 00:48:01
【问题描述】:

我不知道这是为什么或如何发生的,但由于某些奇怪的原因,我服务器上的 PHP 脚本一旦利用 ini_set 试图影响 memory_limit 设置,就会导致脚本完全崩溃。没有错误消息,什么都没有。如果我通过浏览器调用脚本,我得到的只是一个空白页。

对此有任何提示吗?

更新:

运行“免费”返回

           total       used       free     shared    buffers     cached
Mem:       8190820    7922056     268764          0     565124    6598656
-/+ buffers/cache:     758276    7432544
Swap:      2102456          0    2102456

有什么东西占用了我的记忆吗?

运行 ps aux |grep apache 给我“错误:不支持的选项(BSD 语法)”

手动检查我发现一大堆行指的是:

/usr/sbin/apache2 -k start

所有内存使用量约为 0.3%,归“www-data”所有。

可怕的是,“ps aux”列出的所有进程都没有使用超过 0.8% 的内存。而且,如果我将列出的所有百分比加起来,我永远不会根据“免费”告诉我的内容到达我应该到达的位置。

【问题讨论】:

  • 您需要多少内存?
  • 确保ini_set 未被禁用。
  • 没什么实质性的,但也没什么具体的。但是10M还是100M都没关系。无论如何,我的 memory_limit 设置(服务器范围)为 4096M - 我知道这很残酷,但这应该不是问题,对吧?
  • 我认为服务器无法分配你想要的内存量并停止PHP执行。
  • 你应该尝试询问服务器故障

标签: php crash memory-limit


【解决方案1】:

我似乎记得在请求超过 2GB 的内容时存在问题。我认为至少在某些 PHP 版本中,2GB 是一个神奇的界限。

【讨论】:

  • 我认为与 PHP 无关,更像是服务器分配给执行进程(web 或 cli)的用户的 RAM 资源有限
  • 我不认为是这种情况,因为无论分配的内存量如何,都会发生错误。我注意到的另一件事是,在某些请求中,我会从服务器收到“连接重置”错误。
【解决方案2】:

试试这段代码:

ini_set('memory_limit', '-1');

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 2023-02-09
    • 2012-05-31
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    相关资源
    最近更新 更多