php - 已用完 X 字节的允许内存大小

标签 php memory memory-management out-of-memory memory-limit

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的配置可以在多个地方设置:

  1. 主系统php.ini(通常在/etc某处)
  2. Apache 配置中的某个位置(httpd.conf 或每个站点的 .conf 文件,通过 php_value)
  3. CLI 和 CGI​​ 可以有不同的 php.ini(使用命令 php -i | grep memory_limit 检查 CLI conf)
  4. 本地 .htaccess 文件(也称为 php_value)
  5. 在脚本中(通过 ini_set())

在 PHPinfo 的输出中,“Master”值是编译后的默认值,“Local”值是实际生效的值。它可以与默认值保持一致,也可以在上述任何位置被覆盖。

另请注意,PHP 通常具有不同的 .ini 文件,用于命令行和基于 Web 服务器的操作。从命令行检查 phpinfo() 将报告与在基于 Web 的脚本中运行它时不同的值。

关于php - 已用完 X 字节的允许内存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096582/

相关文章:

php - 如何取消mandrill中预定的电子邮件?

php - 创建 MySQL 准备语句

php - 查询数据库时出错

c - double free or corruption (fasttop) 错误 c/c++ linux

c++ - vector 是否必须存储两次大小?

php - Doctrine 实体删除 vs 删除查询,性能比较

c++ - 使用逻辑循环的动态内存阵列

c++ - 用于检测 C/C++ 中指针别名问题的工具

Python:用于使用多边形裁剪光栅图像的函数的代码审查

javascript - 主干架构和 View 管理