我刚刚继承了一个带有 PHP 脚本的站点,该脚本一直在 117 MB 内存不足。即使我通过 php.ini 将 PHP 的 memory_limit 变量增加到 312 MB,也会发生这种情况。
由于 pcguru 提供了一个很好的线索,现在这个问题得到了解决。请参阅下面开始的我的答案:我终于找到了答案
ini_get('memory_limit')
返回在 php.ini 中设置的值,所以我确定 Apache 在更改值后已经重新启动。我memory_get_usage(true)
用来返回脚本在沿途各个点消耗的内存。当它达到 117 MB 时,它一直在失败。
是否有一些我不知道的内部 PHP 限制,它从来没有为单个脚本分配超过 117MB 的空间?
服务器有 1GB 的 RAM 并运行 CentOS。我有 root shell 访问权限。PHP 版本为 5.3.18。MySQL 版本为 5.1.66-cll。
该脚本位于用户名/密码后面,我无法提供对其的公共访问权限。
编辑添加:
1)感谢大家迄今为止的帮助。您可以在我对以下各种答案下的特定用户评论的回复中找到更多信息。
2) Suhosin 肯定没有安装。我检查了多个地方,包括运行脚本并检查常量和运行 php -v
3) apache 日志没有记录我收到的具体错误消息。日志在 php.ini 中打开。我通过 grep 管道搜索整个日志。
4)在这种情况下是否可能报告了错误的错误?