Laravel执行php artisan serve时持续报错及后续问题求助
问题描述
每次执行php artisan serve命令,运行几秒后就会持续抛出错误:
ErrorException: Undefined array key 0
错误文件路径:D:\Request\vendor\laravel\framework\src\Illuminate\Foundation\Console\ServeCommand.php 第266行
尝试以下操作后问题仍未解决:
- 添加如下判断代码,无效:
if(isset($this->requestsPool[$requestPort])) { $request = $this->requestsPool[$requestPort]; }
- 修改
getDateFromLine方法返回值后,出现新的TypeError错误:
TypeError: Illegal offset type
错误位置:同一文件第254行
修改后的getDateFromLine代码:
return isset($matches[1]) ? Carbon::createFromFormat('D M d H:i:s Y', $matches[1]) : Carbon::now();
解决指导
先恢复核心文件原始代码
别直接修改vendor目录里的Laravel核心文件,这类文件会在composer update时被覆盖,而且乱改容易引发新问题。先把ServeCommand.php还原成框架默认的样子。排查端口或异常请求
- 换个端口启动服务试试:
php artisan serve --port=8001,确认是不是默认端口8000被其他进程占用导致的异常。 - 观察服务器运行时的请求日志,看看有没有格式异常的请求日志行,这类日志可能会触发数组解析失败的问题。
- 换个端口启动服务试试:
更新框架或依赖
- 这个大概率是框架的已知bug,更新Laravel到对应分支的最新版本:
composer update laravel/framework - 如果是Carbon版本不兼容导致的TypeError,更新Carbon:
composer update nesbot/carbon
- 这个大概率是框架的已知bug,更新Laravel到对应分支的最新版本:
临时换用其他启动方式
如果以上方法都没效果,暂时用替代方案启动服务器:直接用PHP内置服务器:
php -S localhost:8000 -t public改用Valet、Homestead这类本地开发环境。
内容的提问来源于stack exchange,提问作者Mohammad Mashkouri
相关产品推荐
相关产品推荐

