PHP端口被占导致链接失败时,应先用netstat和tasklist定位占用进程,再根据进程类型选择终止用户进程、禁用HTTP.sys服务、修改PHP服务端口或配置防火墙规则。

如果您在网页中嵌入 PHP 脚本或通过 URL 访问 PHP 文件时出现链接失败,且错误提示指向端口不可用或连接被拒绝,则很可能是 PHP 服务监听的端口已被其他进程占用。以下是针对该问题的多种处理方法:
一、查看并定位占用端口的进程
需明确哪个进程正在使用目标端口(如 80、8080、9000 等),避免误杀关键系统服务。此步骤是后续所有操作的前提。
1、按下 Win + R,输入 cmd 并回车,以管理员身份运行命令提示符。
2、执行命令:netstat -ano | findstr :端口号(将“端口号”替换为实际被占端口,例如 :80)。
立即学习“PHP免费学习笔记(深入)”;
3、在输出结果中记录最后一列的 PID 数值(如 1234)。
4、继续执行:tasklist | findstr 1234(将 1234 替换为上一步获取的 PID),确认进程名称。
二、强制终止占用端口的用户级进程
适用于 Skype、迅雷、IIS Express、Node.js 服务等非系统核心进程,可安全结束以释放端口。
1、在管理员命令提示符中输入:taskkill /PID 1234 /F(1234 替换为实际 PID)。
2、若提示“拒绝访问”,请确认当前 CMD 是否以管理员身份运行。
3、执行后再次运行 netstat -ano | findstr :端口号 验证端口是否已空闲。
三、禁用系统级 HTTP.sys 占用(仅限 Windows 8/10/11)
当 PID 显示为 4 且 tasklist 显示为 System 或 HTTP 时,表明是 Windows 内置 HTTP API 驱动(HTTP.sys)占用了 80/443 端口,不可直接 kill,需禁用服务。
1、按 Win + R 输入 services.msc 回车,打开服务管理器。
2、找到并双击 World Wide Web Publishing Service,将其“启动类型”设为 禁用,点击“停止”。
3、另查找 Web Deployment Agent Service 和 SQL Server Reporting Services,同样设为禁用并停止。
4、重启计算机使配置生效。
四、修改 PHP 服务监听端口(推荐长期方案)
避免与常用服务冲突,将 PHP 内置服务器、Apache 或 Nginx 的监听端口更改为非标准端口(如 8080、8000、8888),无需关闭其他程序。
1、若使用 PHP 内置服务器:在项目目录下执行命令:php -S localhost:8080 router.php(将 8080 替换为可用端口)。
2、若使用 Apache:编辑 Apache/conf/httpd.conf,查找 Listen 80 行,改为 Listen 8080;再查找 ServerName localhost:80,改为 ServerName localhost:8080。
3、若使用 Nginx:编辑 nginx.conf,在 server { } 块内修改 listen 80; 为 listen 8080;。
4、保存文件后,重启对应 Web 服务。
五、检查并调整防火墙入站规则
Windows 防火墙可能拦截新端口的入站连接,导致网页嵌入 PHP 链接虽本地可访问,但浏览器无法加载(尤其跨设备访问时)。
1、打开控制面板 → 系统和安全 → Windows Defender 防火墙 → 左侧点击 高级设置。
2、在“入站规则”中点击右侧 新建规则 → 选择 端口 → 下一步 → 选择 TCP → 特定本地端口填写 8080(或其他修改后的端口)→ 下一步 → 选择 允许连接 → 下一步 → 勾选全部网络类型 → 输入名称如 PHP-Web-8080 → 完成。
3、重启 Web 服务后测试网页嵌入链接是否正常响应。











