解决PHP错误Allowed memory size of 67108864 bytes exhausted的3种方法

小满
小满
发布时间:2026-10-14 | 5人浏览过
原创

当部署 WordPress 或使用其他 PHP 应用时,若报错 Fatal error: Allowed memory size of 67108864 bytes exhausted,表明脚本已耗尽分配的内存空间。这通常发生在读取大型文件或图像时,超过了 php.ini 中设置的默认上限。针对此问题,可通过代码内设置、全局配置文件修改或服务器分布式配置等方式提高 memory_limit 来解决。

错误原因分析

PHP 页面消耗的最大内存由配置文件中的 memory_limit 参数控制。该参数的默认值通常较小(例如 8MB),即 8388608 字节。如果尝试处理的文件或图片体积较大,导致运行时需要的内存超出此界限,就会触发上述错误提示。因此,合理的调整该数值是解决此类问题的关键。

解决方案一:在 PHP 文件中动态调整

目的:在不影响服务器全局配置的前提下,仅对当前特定脚本提升内存限制。

  • 操作入口:发生错误的 PHP 文件头部。
  • 操作步骤:在该文件的开始处加入初始化函数调用。
ini_set('memory_limit', '80M');

重要参数:将 '80M' 替换为实际需要的值(如 '128M');若需不设限,可设置为 -1。请勿设置过大,以免占用过多系统资源引发其他问题。

解决方案二:修改 php.ini 全局配置

目的:永久性地提升整个站点或服务器的 PHP 内存上限,适用于长期存在需求的场景。

  • 操作入口:Web 服务器目录下的 php.ini 文件。
  • 操作步骤:
    1. 使用文本编辑器打开 php.ini。
    2. 搜索定位到以下行:
      复制代码 代码如下:
      ; Maximum amount of memory a script may consume (128MB)
      ; http://php.net/memory-limit
    3. 取消注释(删除行首的分号)并修改数值:
memory_limit = 16M

注意:请将 16M 改为大于现有报错数值的大小。保存修改后,必须重启 Apache(或 Nginx/PHP-FPM)服务使配置生效。

解决方案三:修改 .htaccess 分布式配置

目的:在无法直接访问 php.ini(如在共享主机环境)但支持分布式配置时,通过局部规则覆盖默认值。

  • 前提条件:确认目标目录支持 .htaccess 重写功能。
  • 操作步骤:在文档根目录的 .htaccess 文件中新增一行配置。
php_value memory_limit 16M

可观察的完成状态:刷新对应 PHP 页面,若无报错且运行正常,说明修改成功。同样建议根据实际需求调整单位大小(如 128M)。

简要总结

以上关于解决 “Allowed memory size of 67108864 bytes exhausted” 错误的详细内容,更多关于 PHP 内存管理及性能优化的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表