Laravel Valet项目无法运行,valet share报错:127.0.0.1端口4040连接被拒绝
Hey there, let’s work through this Valet issue step by step—this kind of sudden failure is usually fixable with a few targeted checks and resets.
1. 彻底重启Valet核心服务
Windows下Valet依赖的后台服务偶尔会意外挂掉,先做一次完整的重置:
- 打开管理员权限的CMD或PowerShell
- 依次执行以下命令:
这组操作会彻底停止现有服务、清理旧配置、重新安装Valet依赖组件并启动,能解决绝大多数服务异常问题。valet stop valet uninstall valet install valet start
2. 排查4040端口占用问题
valet share默认依赖ngrok监听4040端口,如果这个端口被其他程序占用,就会触发连接拒绝的报错:
- 在PowerShell中运行:
netstat -ano | findstr :4040 - 如果输出有进程ID(PID),打开任务管理器,找到对应PID的进程并结束它,再重试
valet share。
3. 验证Valet的DNS解析配置
Windows下Valet靠DNS映射把.test域名(默认)指向本地,可能DNS配置失效了:
- 打开本地hosts文件(路径:
C:\Windows\System32\drivers\etc\hosts),检查是否有Valet自动添加的项目域名记录;如果没有,进入项目根目录执行valet park重新注册整个目录,或者用valet link [项目名]单独关联项目。 - 同时刷新DNS缓存:
ipconfig /flushdns
4. 检查Ngrok的状态(针对Valet Share)
Valet Share完全依赖Ngrok工具,可能Ngrok安装或配置出了问题:
- 执行
valet fetch-share重新获取并安装最新版Ngrok,这个命令会自动处理配置细节。 - 可以手动测试Ngrok:直接运行
ngrok http 80,如果它能正常启动并生成临时域名,说明Ngrok本身没问题;如果报错,要检查网络代理或防火墙是否拦截了Ngrok的外部连接。
5. 排查防火墙/杀毒软件拦截
Windows Defender或第三方杀毒软件可能突然拦截Valet的服务端口(80、443等)或Ngrok的连接:
- 临时关闭防火墙和杀毒软件,测试项目能否访问、
valet share是否正常。如果恢复,记得把Valet相关程序(nginx、php-cgi、ngrok)添加到防火墙的允许列表。
6. 确认PHP-FPM和Nginx服务状态
Valet依赖这两个核心服务,手动检查它们的运行情况:
- 按下Win+R输入
services.msc打开服务管理器,找到php[你的版本]-fpm和nginx服务,确保状态是「正在运行」;如果没运行,右键启动并设置为自动启动。
如果以上步骤都试过还是不行,可以尝试彻底重装Valet:先备份~/.config/valet目录的配置文件,然后执行composer global remove laravel/valet,再重新安装composer global require laravel/valet,最后运行valet install完成配置。
内容的提问来源于stack exchange,提问作者Almaida Jody
相关产品推荐
相关产品推荐

