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

Laravel项目显示502 Bad Gateway nginx/1.17.2问题求助

解决Mac更新Node后Laravel Valet项目502 Bad Gateway问题

刚踩过类似的坑,给你梳理几个精准的排查和解决步骤:

1. 先看php-fpm的具体错误日志

502 Bad Gateway本质是Nginx没法和php-fpm通信,所以先抓php-fpm的错误日志找根源:

# Valet的php-fpm日志默认路径,替换成你实际的日志路径
cat ~/.config/valet/Log/php-fpm.log

重点盯这类关键词:address already in use(端口被占用)、failed to listen on socket(套接字路径错误)、permission denied(权限不足)。

2. 检查并切换Valet使用的PHP版本

更新Node可能无意中打乱了PHP的环境变量,导致Valet加载的PHP版本和项目不兼容,php-fpm没能正常启动:

# 查看当前Valet绑定的PHP版本
valet php --version
# 切换到你项目依赖的版本(比如php@8.2)
valet use php@8.2 --force

3. 重启相关服务

先重启php-fpm,再重启Valet,确保所有服务都处于正常运行状态:

# 重启对应版本的php-fpm,示例为php@8.2
brew services restart php@8.2
# 重启Valet服务
valet restart

4. 检查端口占用情况

你已经查了80端口,还要确认php-fpm默认监听的9000端口(或套接字)是否被其他进程抢占:

# 检查9000端口的占用情况
sudo lsof -i:9000
# 如果发现被无关进程占用,杀掉对应的PID
sudo kill -9 <进程PID>

如果是套接文件被占用(比如/usr/local/var/run/php-fpm.sock),可以先删除套接字再重启php-fpm:

rm /usr/local/var/run/php-fpm.sock
brew services restart php@8.2

5. 检查Valet的Nginx站点配置

偶尔更新环境会导致Valet的站点配置出错,打开对应项目的配置文件:

open ~/.config/valet/Nginx/local.myproject.test

确认fastcgi_pass配置项是否正确,比如对应PHP版本的套接字路径:

# 示例:php@8.2的套接字路径
fastcgi_pass unix:/usr/local/var/run/php-fpm.sock;

如果路径错误,修改后保存,再重启Valet生效。

6. 修复系统PATH变量

更新Node可能把Node的路径放到了PHP前面,导致Valet找不到正确的PHP二进制文件:

# 查看当前系统识别的PHP路径
which php
# 如果不是你需要的版本,把对应PHP版本的路径加到PATH最前面(以zsh为例)
echo 'export PATH="/usr/local/opt/php@8.2/bin:$PATH"' >> ~/.zshrc
# 刷新配置生效
source ~/.zshrc
# 最后重启Valet
valet restart

按这个顺序排查,基本能解决大部分更新Node后Valet出现的502问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:28:02