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

如何在启动新php artisan serve前终止占用端口的现有Laravel服务进程

解决Laravel本地开发服务8000端口占用问题的操作指引

方法1:手动终止占用8000端口的进程

macOS / Linux 操作系统

  • 执行命令查询占用8000端口的进程ID:lsof -i :8000
  • 输出结果中PID列对应的数字就是进程ID,执行以下命令终止进程:
    kill -9 <替换为查询到的进程ID>
    
    例如查询到PID为1452,就执行kill -9 1452

Windows 命令提示符(CMD)

  • 执行命令查询占用8000端口的进程ID:netstat -ano | findstr :8000
  • 输出结果最后一列的数字就是进程ID,执行以下命令终止进程:
    taskkill /PID <替换为查询到的进程ID> /F
    

Windows PowerShell

  • 执行命令查询占用8000端口的进程ID:Get-NetTCPConnection -LocalPort 8000 | Select-Object -Property OwningProcess
  • 执行以下命令终止对应进程:
    Stop-Process -Id <替换为查询到的进程ID> -Force
    

方法2:启动服务时显式指定固定端口

你也可以在启动服务时直接指定要使用的端口,Laravel会优先使用你指定的端口,不会自动漂移:

  • 固定使用8000端口启动:php artisan serve --port=8000
  • 如需同时允许局域网内其他设备访问,可指定绑定IP:php artisan serve --host=0.0.0.0 --port=8000

方法3:编写一键启动脚本,自动杀进程+启动服务

如果不想每次手动操作,可以编写脚本实现启动前自动清理8000端口占用:

macOS / Linux 脚本

  1. 在项目根目录新建serve.sh文件,写入以下内容:
    # 清理8000端口占用进程,无占用时忽略报错
    lsof -i :8000 -t | xargs kill -9 2>/dev/null
    # 启动服务
    php artisan serve --port=8000
    
  2. 给脚本添加执行权限:chmod +x serve.sh
  3. 后续启动服务直接执行:./serve.sh即可

Windows 脚本

  1. 在项目根目录新建serve.bat文件,写入以下内容:
    @echo off
    :: 清理8000端口占用进程,无占用时忽略报错
    for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8000') do taskkill /PID %%a /F 2>nul
    :: 启动服务
    php artisan serve --port=8000
    
  2. 后续启动服务直接双击运行serve.bat即可

内容的提问来源于stack exchange,提问作者code-8

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:02