You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel运行php artisan serve时PHP内存耗尽错误求助

Laravel运行php artisan serve时PHP内存耗尽错误解决指导

问题概述

运行php artisan serve启动Laravel开发服务器时,出现PHP内存耗尽的致命错误,调整php.ini的memory_limit到512M后问题依旧。

错误信息

php artisan serve

   INFO  Server running on [http://127.0.0.1:8000].

   Press Ctrl+C to stop the server

   WARN  PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in C:\projects\laravel\storage\framework\views\3013c4ad2c85349d3078c69a5161cf9c.php on line 96.

   WARN  PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 888832 bytes) in C:\projects\laravel\vendor\spatie\ignition\src\ErrorPage\ErrorPageViewModel.php on line 104.

  2023-11-04 15:33:26 .............................................................................................. ~ 15s
  2023-11-04 15:33:26 ............................................................................................. ~ 133s

项目文件列表

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         11/4/2023   2:50 PM                .git
d-----         11/4/2023   2:50 PM                .vite
d-----         11/4/2023   2:50 PM                app
d-----         11/4/2023   2:50 PM                bootstrap
d-----         11/4/2023   2:50 PM                config
d-----         11/4/2023   2:50 PM                database
d-----         11/4/2023   2:50 PM                node_modules
d-----         11/4/2023   2:50 PM                public
d-----         11/4/2023   2:50 PM                resources
d-----         11/4/2023   2:50 PM                routes
d-----         11/4/2023   2:50 PM                storage
d-----         11/4/2023   2:50 PM                tests
d-----         11/4/2023   2:52 PM                vendor
-a----         11/2/2023  12:25 PM            258 .editorconfig
-a----         11/4/2023   2:43 PM           1171 .env
-a----         11/2/2023  12:25 PM           1116 .env.example
-a----         11/2/2023  12:25 PM            186 .gitattributes
-a----         11/2/2023  12:25 PM            243 .gitignore
-a----         11/2/2023  12:25 PM           1686 artisan
-a----         11/2/2023   3:02 PM           1553 base.txt
-a----         11/4/2023   2:30 PM          58167 composer-setup.php
-a----         11/2/2023  12:25 PM           1882 composer.json
-a----         11/2/2023  12:25 PM         296306 composer.lock
-a----         11/2/2023  12:25 PM            113 db.sql
-a----         11/2/2023  12:25 PM          83555 package-lock.json
-a----         11/2/2023  12:25 PM            415 package.json
-a----         11/2/2023  12:25 PM           1084 phpunit.xml
-a----         11/2/2023  12:25 PM             80 postcss.config.js
-a----         11/2/2023   6:30 PM           4230 README.md
-a----         11/2/2023  12:25 PM            218 tailwind.config.js
-a----         11/2/2023  12:25 PM            263 vite.config.js

环境信息

  • Laravel Installer: 5.1.3
  • PHP Version: 8.2.12
  • 操作系统:Windows
  • 数据库:MySQL

已尝试操作

将php.ini中的memory_limit从256M调整为512M,问题未解决。

解决指导

  1. 确认修改的是正确的php.ini文件
    运行php --ini命令,查看CLI模式下PHP加载的配置文件路径,确保你修改的是这个路径下的php.ini。Windows系统中,CLI和CGI模式的php.ini可能不是同一个文件。

  2. 临时提升内存限制
    启动服务器时直接指定内存限制:

    php -d memory_limit=1G artisan serve
    

    这会临时将内存限制设为1GB,快速验证是否是内存不足导致的问题。

  3. 排查视图文件的内存泄漏
    错误提示指向编译后的视图文件storage/framework/views/3013c4ad2c85349d3078c69a5161cf9c.php,找到对应的原视图文件(通常在resources/views目录下),检查是否存在:

    • 无限循环逻辑
    • 加载大量数据到视图(比如一次性查询上万条记录并遍历)
    • 递归调用的Blade组件或函数
  4. 清理缓存文件
    执行以下命令清理Laravel缓存:

    php artisan view:clear
    php artisan cache:clear
    php artisan config:clear
    

    编译后的视图文件可能存在异常,清理后会重新生成。

  5. 检查Ignition扩展的问题
    第二个错误指向Spatie的Ignition包,尝试临时禁用Ignition:
    在.env文件中设置:

    APP_DEBUG=false
    

    关闭调试模式后,Laravel会使用默认错误页面,避免Ignition处理错误时再次耗尽内存。如果问题消失,说明Ignition在处理错误时存在内存占用过高的情况,可以尝试更新Ignition包:

    composer update spatie/ignition
    
  6. 优化代码逻辑
    如果提升内存后问题解决,说明代码存在内存占用过高的情况,需要优化:

    • 使用分页处理大量数据,避免一次性加载所有记录
    • 关闭不必要的模型关联预加载,按需加载
    • 检查循环逻辑,避免不必要的变量累积

内容的提问来源于stack exchange,提问作者Seth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:05:59