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

Laravel 8 执行php artisan serve启动开发服务器5分钟后停止如何解决?

问题原因

这个问题是Laravel 8.x早期版本的ServeCommand设计缺陷导致,具体原因如下:

  • PHP默认配置的max_execution_time(最大执行时间)为300秒,artisan命令默认继承php.ini中的该配置
  • ServeCommand第59行的while循环是用于监控PHP内置开发服务器运行状态、检测.env文件变更的常驻逻辑,官方没有在该循环中主动重置执行时间计数,进程运行满300秒后就会触发PHP的最大执行时间报错
  • 报错后项目仍可正常访问,是因为实际处理HTTP请求的是ServeCommand启动的PHP内置开发服务器子进程,主监控进程崩溃不影响已经启动的web服务子进程运行
修复方案

按照优先级推荐以下4种解决方案:

  • 方案1:升级Laravel到8.x最新小版本
    Laravel官方已在后续的8.x补丁版本中修复了该问题,修复逻辑是在ServeCommand的循环中主动调用set_time_limit(0)取消执行时间限制,升级后问题可直接解决。
  • 方案2:启动命令临时修改配置(无需改代码,适合临时救急)
    运行服务时添加参数临时取消当前命令的最大执行时间限制,命令如下:
    php -d max_execution_time=0 artisan serve
  • 方案3:手动修改ServeCommand代码(仅临时测试用,不推荐修改vendor目录文件)
    打开vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php文件,在第59行的while循环开头添加一行set_time_limit(0);,即可取消当前监控进程的最大执行时间限制。
  • 方案4:更换本地开发服务栈
    本地开发可改用Laragon、XAMPP、Docker等集成环境运行项目,无需依赖php artisan serve自带的开发服务器,可完全避免该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:24:07