Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 13965430 bytes)
PHPInfo 显示我的 memory_limit 为 128M,所以我很困惑为什么错误说我只有 64M。 phpinfo有可能报错吗?还是让 PHP 使用两个单独的 php.inis?
错误是由我的同事在我不知情的情况下添加的主要 php 文件之一中的 ini_set 调用引起的。
最佳答案
PHP的配置可以在多个地方设置:
- 主系统
php.ini
(通常在/etc某处) - Apache 配置中的某个位置(httpd.conf 或每个站点的 .conf 文件,通过
php_value
) - CLI 和 CGI 可以有不同的
php.ini
(使用命令php -i | grep memory_limit
检查 CLI conf) - 本地 .htaccess 文件(也称为
php_value
) - 在脚本中(通过
ini_set()
)
在 PHPinfo 的输出中,“Master”值是编译后的默认值,“Local”值是实际生效的值。它可以与默认值保持一致,也可以在上述任何位置被覆盖。
另请注意,PHP 通常具有不同的 .ini 文件,用于命令行和基于 Web 服务器的操作。从命令行检查 phpinfo()
将报告与在基于 Web 的脚本中运行它时不同的值。
关于php - 已用完 X 字节的允许内存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096582/