是什么限制了我的 PHP 资源?

2024-02-07

我在从 PHP 中获取更多内存时遇到问题。

这是错误消息:

Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 82 bytes) in ...

Yet:

我已将 php.ini 文件中的 memory_limit 设置为 32M:

memory_limit = 32M;

我还尝试在实际脚本中手动覆盖它:

ini_set('memory_limit', '32M');

而且 - 这就是我迷失的地方 - 我已经通过 phpinfo() 确认这个 php.ini 文件是实际使用的 ini 文件,并且 memory_limit 似乎设置正确。 memory_limit 上的行给出了以下内容:

memory_limit    32M 32M

所以看起来一切都配置正确,但我只得到 20971520 字节(~20M)。

我还应该到哪里去寻找这个限制是在哪里施加的?

EDIT:我在 VPS 中的 Ubuntu 9.04 上的 nginx/fastcgi 下运行 php。 php-cgi 进程似乎确实有点资源匮乏(RES=25m,VIRT=187m),但我有 10m 的可用物理内存和 500m 的可用交换空间。


我的第一直觉是猜测 PHP 正在读取不同的 php.ini。

在 Debian(很可能是 Ubuntu)中,每个版本的 PHP(cli、cgi 和 apache)都有自己的 php.ini 副本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么限制了我的 PHP 资源? 的相关文章

随机推荐