PHPStudy中Nginx端口被占用的根本原因是80或443端口被IIS、Skype、SQL Server Reporting Services或HTTP.sys抢占,修复需先释放或绕过冲突端口,再确保Nginx与PHP-FPM正确联动。

PHPStudy 中 Nginx 端口被占用,通常表现为启动失败、显示红色警告或访问 http://localhost 无响应。根本原因多是 80(或 443)端口被 IIS、Skype、SQL Server Reporting Services、甚至 Windows 的 HTTP.sys 驱动抢占。Nginx 本身不处理 PHP 执行,它依赖 PHP-FPM(如 9000 端口)通信,所以“Nginx 端口被占用”常连带暴露 PHP-FPM 端口冲突或配置断连问题。修复需分两步:先释放或绕过冲突端口,再确保 Nginx 与 PHP 正确联动。
快速定位占用进程(Windows 命令行)
打开管理员权限的命令提示符,依次执行:
-
netstat -ano | findstr :80—— 查看占用 80 端口的 PID(例如输出末尾为1234) -
tasklist | findstr 1234—— 根据 PID 查进程名(常见有svchost.exe、System、skype.exe) - 若 PID 对应
System,大概率是 HTTP.sys 占用,需进注册表禁用:
运行regedit→ 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP→ 将右侧Start值改为0(禁用),重启生效
修改 Nginx 监听端口(推荐方案)
避免动系统服务,更安全高效。操作路径如下:
- PHPStudy 面板 →「其他选项菜单」→「网站域名管理」→ 选中站点 →「修改」→ 将「端口」从
80改为8080(或其他未被占用端口,如8000、8888) - 若使用自定义 Nginx 配置(如
vhosts),还需检查/Nginx/conf/vhost/xxx.conf中的listen 80;行,同步改为listen 8080; - 保存后,务必点击面板中「重启全部服务」或单独重启 Nginx 和 PHP
检查并修复 Nginx + PHP-FPM 通信链路
Nginx 启动成功但页面报 502 Bad Gateway,说明端口虽通,但无法连接 PHP 处理器。重点排查:
立即学习“PHP免费学习笔记(深入)”;
- 确认 PHP-FPM 是否运行:面板中查看「PHP」状态是否为绿色;或命令行执行
tasklist | findstr php-cgi(NTS 版)或php-cgi.exe(TS 版) - 核对 Nginx 配置中的 FastCGI 地址是否匹配 PHP-FPM 实际监听地址:
常见配置如fastcgi_pass 127.0.0.1:9000;或fastcgi_pass unix:/tmp/php-cgi.sock;。
需与 PHP-FPM 配置文件(/php/ext/php.ini或/php/php-version/php-fpm.conf)中listen =项严格一致 - 若 PHP-FPM 端口(如 9000)也被占,可在 PHP 配置中改用 socket 方式,或在
php-fpm.conf中将listen = 127.0.0.1:9000改为listen = 127.0.0.1:9003,再同步更新 Nginx 配置
用官方修复工具一键诊断(PHPStudy Pro 推荐)
PHPStudy Pro 内置的「502 综合修复工具」可覆盖多数 Nginx+PHP 场景:
- 打开工具 →「服务状态」模块,实时查看 Nginx(端口)、PHP(版本+端口)、MySQL 状态
- 点击「核心修复」→「检测 Nginx 配置语法」排除配置错误;「清理 PHP-CGI 僵死进程」解决假死;「添加防火墙规则」放行 PHP-FPM 端口
- 「预防性维护」中运行「端口冲突检测」,自动扫描 80/443/9000/9003 等关键端口占用情况



















