登录
首页 >  文章 >  php教程

解决 XAMPP 启动提示“Apache service not started [-1]”的排错指南

时间:2026-05-05 08:27:45 124浏览 收藏

对于一个文章开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《解决 XAMPP 启动提示“Apache service not started [-1]”的排错指南》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

Apache启动失败显示[-1]错误,通常是端口被占用(如80/443被IIS、Skype等占用)或配置语法错误所致;需用netstat查端口、httpd.exe -t验证配置,并排查服务冲突与杀毒软件拦截。

解决 XAMPP 启动提示“Apache service not started [-1]”的排错指南

Apache 启动失败并显示 [-1] 错误,基本可以确定是端口被占用或配置冲突导致的——XAMPP 本身没坏,它只是被系统或另一个服务拦住了。

检查 80 和 443 端口是否被占用

XAMPP 默认用 80(HTTP)和 443(HTTPS)端口,Windows 上这两端口常被 IIS、Skype、SQL Server Reporting Services 或 Windows 自带的“World Wide Web Publishing Service”霸占。

  • 打开命令提示符(管理员权限),运行:netstat -ano | findstr :80netstat -ano | findstr :443
  • 查到 PID 后,用 tasklist | findstr "PID号" 确认进程名
  • 常见“罪魁”:httpd.exe(其他 Apache 实例)、skype.exew3svc.exe(IIS)、ReportingServicesService.exe
  • 临时解决:在 XAMPP 控制面板里点 Config → Apache (httpd.conf),把 Listen 80 改成 Listen 8080,同时改掉 ServerName localhost:80ServerName localhost:8080

确认 Apache 配置语法是否合法

哪怕一个多余的空格、漏掉的引号,都可能让 httpd.exe 启动时静默失败,只报 [-1]

  • 不要直接双击 apache_start.bat,而是进 XAMPP\apache\bin\ 目录,用命令行运行:httpd.exe -t
  • 如果输出 Syntax OK,说明配置没问题;否则会明确指出哪一行、哪个文件出错(比如 Invalid command 'PHPIniDir' 通常是因为 php_module 没加载或路径错)
  • 特别注意 httpd-vhosts.conf 文件——很多人加了虚拟主机但忘了取消 Include conf/extra/httpd-vhosts.conf 前的注释,或写错了 块结构

排查 Windows 服务冲突与权限问题

[-1] 也可能是 Apache 尝试以服务方式启动时被系统拒绝,尤其在重装或升级后。

  • 运行 services.msc,检查是否存在名为 Apache2.4(或类似)的残留服务,右键“停止”并“删除”(用命令更稳妥:sc delete Apache2.4
  • XAMPP 控制面板默认以“应用程序模式”启动 Apache,但如果勾选了 Service 复选框,它会尝试注册 Windows 服务——此时必须用管理员权限运行控制面板,否则注册失败且不提示
  • 杀毒软件(尤其是 Avast、McAfee)有时会拦截 httpd.exe 创建监听 socket,可临时禁用测试

真正麻烦的不是报错本身,而是 [-1] 这个返回码太笼统——它不告诉你具体哪一行配置错、哪个 DLL 加载失败、甚至不提示端口冲突的具体进程。所以别跳过 httpd.exe -tnetstat 这两步,它们才是定位根源的最小可靠动作。

好了,本文到此结束,带大家了解了《解决 XAMPP 启动提示“Apache service not started [-1]”的排错指南》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

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