XAMPP与IIS共存需将Apache端口改为8080,修改httpd.conf中Listen和ServerName为8080,并同步调整httpd-ssl.conf中SSL端口(如8443),重启Apache后访问http://localhost:8080。

不能让同一个 XAMPP 实例同时监听 80 和 8080 端口来“共存”——Apache 的 Listen 指令只定义它要绑定哪些端口,但你真正需要的不是“一个实例听两个端口”,而是“两个服务不打架”。常见真实需求其实是:IIS 占着 80,你想用 XAMPP 做 PHP 开发,那就必须把 XAMPP 的 Apache 搬到 8080;或者你已有主 XAMPP 在 80,又想临时起另一个环境跑老项目,就得给第二个 XAMPP 配 8080(或其它空闲端口)。
修改 httpd.conf 中的 Listen 和 ServerName
这是最直接生效的操作,但容易漏改或改错位置:
-
Listen 80必须改成Listen 8080(注意别动带#的注释行,比如#Listen [::]:80) -
ServerName localhost:80要同步改成ServerName localhost:8080,否则 Apache 启动后可能重定向失败或 Admin 页面打不开 - 检查
DocumentRoot和Directory路径是否仍指向你当前 XAMPP 实例的htdocs,路径含中文或空格会导致 Apache 静默退出 - 改完保存,**必须重启 Apache**,仅重启控制面板无效
HTTPS 也要同步改:httpd-ssl.conf 里的 Listen 和 <virtualhost></virtualhost>
如果你启用了 SSL 或点击了 XAMPP 控制面板里的 “SSL On”,却只改了 httpd.conf,Apache 会启动失败并报类似 Address already in use: AH00072: make_sock: could not bind to address [::]:443 的错误。
- 打开
\xampp\apache\conf\extra\httpd-ssl.conf - 把
Listen 443改成Listen 8443(或其他未被占用的端口) - 把
<virtualhost _default_:443></virtualhost>改成<virtualhost _default_:8443></virtualhost> - 把
ServerName localhost:443改成ServerName localhost:8443 - 如果没用 HTTPS,可先注释掉
Include conf/extra/httpd-ssl.conf这一行,避免干扰
验证端口是否真被释放、有没有其他进程抢占
改完配置不代表一定能启动——Windows 下 80 和 8080 都可能被系统或应用偷偷占着:
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 以管理员身份运行命令提示符,执行:
netstat -ano | findstr :80和netstat -ano | findstr :8080 - 若看到 PID 是
4,那是System进程(常为 HTTP.SYS),说明 Windows 功能如 IIS、Web Deploy、SQL Server Reporting Services 或 even Windows Update Mini Setup 正在用它 - 临时停用方法:
net stop http /y(慎用,会影响依赖它的服务);更稳妥的是用sc config http start= disabled然后重启 - Skype 默认也抢
80和443:打开 Skype → 设置 → 高级 → 连接 → 取消勾选“使用端口 80 和 443 作为替代传入连接”
访问时别忘了加端口号,localhost 不等于 localhost:8080
浏览器默认走 80(HTTP)或 443(HTTPS),所以即使 Apache 已成功监听 8080,直接输 http://localhost 仍会请求 IIS 或返回连接拒绝。
- 正确访问地址是:
http://localhost:8080(首页)、http://localhost:8080/phpmyadmin(数据库)、http://localhost:8080/myapp/index.php - XAMPP 控制面板里点
Admin按钮,默认仍跳http://localhost/xampp,需手动改成http://localhost:8080/xampp - 如果嫌每次输端口麻烦,且你有管理权限,建议走
hosts+VirtualHost:比如配project.test指向127.0.0.1,再在httpd-vhosts.conf里写<virtualhost></virtualhost>块,这样就能用域名绕过端口号记忆负担
最容易被忽略的是 SSL 配置不同步和 ServerName 没改——这两个点一漏,Apache 就会启动失败但控制面板仍显示绿色,让人误以为成功了。实际日志(\xampp\apache\logs\error.log)里早写了绑定失败原因,务必养成看日志的习惯。










