登录
首页 >  文章 >  php教程

phpEnv端口被占用怎么办 phpEnv端口修改指南

时间:2026-05-04 13:55:08 256浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《phpEnv端口被占用怎么办 phpEnv端口修改指南》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

先查端口占用进程:以管理员身份运行CMD,执行netstat -ano | findstr :80得PID,再用tasklist | findstr PID确认进程;若PID为4则属HTTP.sys不可强杀,需禁用相关服务或改Apache/MySQL端口(如80→8080、3306→3307)并重启服务。

phpEnv端口被占用怎么办 phpEnv端口修改指南

怎么快速确认是哪个进程占了 phpEnv 的端口

phpEnv 默认用 Apache(80)、MySQL(3306)、PHP-FPM(9000),先盯死这三个端口。打开管理员权限的 CMD,直接跑:netstat -ano | findstr :80。如果返回带 LISTENING 的行,末尾数字就是 PID;再用 tasklist | findstr 1234(把 1234 换成你看到的 PID)查进程名。常见干扰项:Skype 默认抢 80 端口、IIS 或 SQL Server Reporting Services 也爱占 80/443、某些杀软或迅雷后台会悄悄绑 9000。

能不能直接 kill 掉占用进程

能,但得看 PID 是谁:

  • 如果是 Skype.exenode.exeTencentdl.exe 这类用户级程序,放心用 taskkill /PID 1234 /F 干掉
  • 如果 PID 是 4,且 tasklist 显示为 System 或没具体名字,基本是 Windows 的 HTTP.sys 驱动在占 80/443 —— 这个不能 taskkill,强行结束会导致蓝屏或网络异常
  • 如果是 svchost.exe 占的,别乱杀,先查它托管的服务:tasklist /svc /FI "PID eq 1234",再进 services.msc 找对应服务停用

修改 phpEnv 中 Apache 和 MySQL 的监听端口

改端口比关别人服务更稳妥,尤其适合长期开发环境:

  • Apache:编辑 phpEnv\Apache\conf\httpd.conf,搜 Listen 80 改成 Listen 8080;再搜 ServerName localhost:80 改成 ServerName localhost:8080
  • MySQL:编辑 phpEnv\MySQL\my.ini,找 port=3306 行,改成 port=3307;改完后 PHP 连数据库的 mysqli_connect() 或 PDO DSN 里也得同步更新端口号
  • 改完必须重启 phpEnv 控制面板里的对应服务,光改配置不重启等于白改

phpEnv 启动失败提示“Address already in use”怎么办

这个错误说明端口真被占了,但未必是别的程序——常见真实原因有:

  • 上次 phpEnv 没正常退出,Apache 或 MySQL 进程还挂在后台,用 tasklist | findstr httpdtasklist | findstr mysqld 确认残留
  • 多个 phpEnv 实例同时运行(比如桌面一个、D盘另一个),它们默认都试图绑 80 和 3306
  • Windows 更新后自动启用了 IIS,它默认抢 80 端口,进 services.mscWorld Wide Web Publishing Service 设为禁用最省事

真正麻烦的是 HTTP.sys 占 80 端口却没对应服务名的情况,这时候注册表改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Start 值为 4(禁用)才彻底,但操作前务必备份注册表。

好了,本文到此结束,带大家了解了《phpEnv端口被占用怎么办 phpEnv端口修改指南》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>