商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 怎样解决端口80被占用_修改PHP环境端口号【冲突】

怎样解决端口80被占用_修改PHP环境端口号【冲突】

  发布于2026-07-07 阅读(0)

扫一扫,手机访问

先说说核心判断:遇到端口 80 被占用导致 Apache 启动失败,别急着重启 phpEnv 或者盲目改端口——正确的第一步,永远是先搞清楚那个 PID 是谁。尤其是 PID 为 4 的情况,这玩意儿背后是 Windows 内核级的 HTTP.sys 驱动,强行终止它?后果往往是蓝屏或者网络模块异常,得不偿失。

怎样解决端口80被占用_修改PHP环境端口号【冲突】

怎么快速查出谁在占 80 端口

想知道谁在抢 80 端口?两行命令就能查清楚。记得要以管理员身份运行 CMD:

  • 输入 netstat -ano | findstr :80 —— 找到 LISTENING 状态那一行,末尾那个数字就是 PID(比如 41234
  • 再输入 tasklist | findstr 1234(把 1234 换成你看到的 PID)—— 看看进程名是什么:是 Skype.exenginx.exesqlservr.exe?还是直接显示 System 或者空白?

常见的“嫌疑人”有哪些?Skype 默认会抢 80 端口,IIS、SQL Server Reporting Services、甚至某些杀毒软件的后台服务也会悄悄绑定 80。但最麻烦的情况是:PID 是 4,而且没有具体的进程名——这基本就是 Windows 内核的 HTTP.sys 驱动在作祟。这时候,千万别想着用 taskkill 去解决它。

Apache 的 httpd.conf 怎么改端口才生效

改配置 ≠ 改完就生效。很多人漏掉关键环节,结果服务起不来,或者访问时 404。整个过程必须环环相扣:

  • 打开 phpEnv\Apache\conf\httpd.conf,搜索 Listen 80 → 改成 Listen 8080(注意,别动那些带 # 的注释行,比如 #Listen [::]:80
  • 继续搜索 ServerName localhost:80 → 改成 ServerName localhost:8080
  • 如果你启用了虚拟主机,还得检查 httpd-vhosts.conf 是否同步改成了
  • 保存所有改动后,最后一步——在 phpEnv 控制面板里点「重启 Apache」。光改文件不重启,等于白干一场。

改完后验证一下:netstat -ano | findstr :8080 应该有 LISTENING 状态;浏览器打开 http://localhost:8080,能看到首页才算是大功告成。

MySQL 的 my.ini 端口改了,PHP 连不上怎么办

MySQL 端口从 3306 改成 3307 后,PHP 代码里不跟着更新端口,连接失败是必然的。这个细节很多人栽过跟头:

  • 编辑 phpEnv\MySQL\my.ini,找到 port=3306 → 改成 port=3307
  • 重启 MySQL 服务(在 phpEnv 面板上点「重启」)
  • PHP 代码中所有的数据库连接都必须显式指定新端口:
    mysqli_connect('127.0.0.1:3307', 'root', '', 'test') 或者 PDO DSN 中写 mysql:host=127.0.0.1;port=3307;dbname=test
  • 特别提醒:如果用 localhost 连接,可能会走 socket 而非 TCP,此时端口参数根本不起作用。必须用 127.0.0.1 才能确保 TCP 连接生效。

很多人忽略了这个细节,改完端口还是连不上,就开始怀疑配置文件有问题,其实只是连接方式没选对。

最后说说最棘手的情况:HTTP.sys 占用了 80 端口,而且没有对应的服务名可以手动停止。这时候,要彻底解决问题,需要动到注册表——找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Start,把值改成 4。但操作之前,务必备份注册表,否则系统网络模块可能会出现各种意想不到的问题。

本文转载于:https://www.php.cn/faq/2426647.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注