最直接有效的方式是修改 php.ini 中的 memory_limit;默认常为 128M 或 256M,批量处理大文件或数据时易不足,需确认当前值、编辑 php.ini 或 PHP-FPM pool 配置、重启服务并验证,同时警惕内存泄漏与低效代码。
php.ini 里修改 memory_limit 是最直接有效的方式
PHP 脚本执行时超出内存限制会报错 Fatal error: Allowed memory size of XXX bytes exhausted,根本原因通常是 memory_limit 设置过小。这个值默认常为 128M 或 256M,但批量处理图片、解析大 JSON、读取整张 CSV 表时很容易不够用。
修改前先确认当前值:
php -r "echo ini_get('memory_limit');"
修改步骤如下:
- 找到正在使用的
php.ini文件:php --ini输出的 “Loaded Configuration File” 路径 - 编辑该文件,搜索
memory_limit,将其改为需要的值,例如:memory_limit = 512M - 保存后重启 Web 服务器(
apache2或php-fpm),否则修改不生效 - 验证是否生效:
php -r "var_dump(ini_get('memory_limit'));"
运行时用 ini_set() 临时调整只对当前脚本有效
某些场景下(比如共享主机无法改 php.ini,或只想给某个耗内存任务提限),可用 ini_set('memory_limit', '512M') 动态设置。但它必须在脚本开头尽早调用,且不能高于 php.ini 中设定的 memory_limit 上限(如果该上限被设为 -1 则无限制)。
立即学习“PHP免费学习笔记(深入)”;
注意以下几点: