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

Laravel API请求时服务器关闭连接并切换端口该如何解决?

可能的故障原因

  • PHP 8.0.1 内置服务器存在已知bug,处理Postman默认发送的Expect: 100-continue请求头时会触发进程崩溃,Laravel的serve命令会自动拉起新进程并切换端口
  • CORS配置冲突:supports_credentials设置为true时allowed_origins使用通配符*不符合HTTP规范,触发未捕获异常导致进程崩溃
  • 请求触发了Laravel文件变更检测:比如异常日志写入、临时缓存生成等操作被serve命令的热重载逻辑识别为代码变更,触发自动重启
  • Sanctum认证逻辑异常:Postman未携带合法的认证凭证触发异常,部分异常场景会导致PHP内置进程退出

解决步骤

  1. 优先替换运行环境:不要使用php artisan serve作为服务容器,改用XAMPP/WAMP集成环境的Apache/Nginx跑项目,artisan serve本身仅为轻量开发调试工具,本身稳定性不足,很多内置问题无需排查,换正式web服务器即可直接解决
  2. 修复CORS配置:将allowed_origins从通配符*改为实际的前端地址,例如['http://localhost:3000'],supports_credentials=true时不允许使用通配符源,否则会触发规范层面的错误
  3. 调整Postman配置:关闭Postman默认发送的Expect头,操作路径:Postman设置 → 通用 → 关闭「Send expect header」开关,或者在单个请求的头参数中手动添加Expect: 覆盖默认值
  4. 升级PHP版本:如果必须使用artisan serve,将PHP 8.0.1升级到8.0最新补丁版本,或者更高稳定版本(8.1/8.2),修复内置服务器的已知崩溃bug
  5. 关闭热重载测试:启动服务时执行php artisan serve --no-reload关闭自动重启逻辑,测试请求后是否还会出现端口切换,若不再触发则说明有运行时写入的文件被识别为代码变更,可排查storage目录权限、是否有扩展会在请求时自动生成代码文件
  6. 排查异常日志:将.env中的APP_DEBUG设置为true,请求后查看storage/logs/laravel.log中的报错信息,定位是否有业务代码或扩展抛出的未捕获异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 12:24:03