提问人:Tomas Skovgaard 提问时间:8/18/2013 最后编辑:DharmanTomas Skovgaard 更新时间:9/12/2023 访问量:2151759
如何解决“错误:Apache意外关闭”?
How to solve "Error: Apache shutdown unexpectedly"?
问:
我刚刚重新安装了 XAMPP,当我尝试在 XAMPP 控制面板中启动我的 Apache 服务器时,我现在收到以下错误:
16:50:25 [Apache] Status change detected: running
16:50:26 [Apache] Status change detected: stopped
16:50:26 [Apache] Error: Apache shutdown unexpectedly.
16:50:26 [Apache] This may be due to a blocked port, missing dependencies,
16:50:26 [Apache] improper privileges, a crash, or a shutdown by another method.
16:50:26 [Apache] Press the Logs button to view error logs and check
16:50:26 [Apache] the Windows Event Viewer for more clues
16:50:26 [Apache] If you need more help, copy and post this
16:50:26 [Apache] entire log window on the forums
我该如何解决这个问题?
答:
请按照下列步骤操作:
- 打开您的 XAMPP 控制面板,然后单击其“配置”
选择“Apache (httpd.conf)”,在下面找到这段代码,并将其更改为以下代码:
#Change 此项以侦听特定 IP 地址,如下所示
#to 防止 Apache 对所有绑定的 IP 地址进行攻击。
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80
# 动态共享对象 (DSO) 支持
- 保存它 (Ctrl + S)
- 之后,返回 XAMPP 控制面板并再次单击其配置。
- 选择“Apache (httpd-ssl.conf)”,在下面找到这段代码,然后再次修改:
# 注意:使用 IPv6 但不使用 IPv4 映射地址的配置需要两个
# Listen 指令: “Listen [::]:443” 和 “Listen 0.0.0.0:443”
#
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 443
- 保存它 (Ctrl + S)
- 然后,单击“配置”(注意:在netstat上方),然后单击“服务和端口设置”。
- 将“主端口”更改为 8080,将“SSL 端口”更改为 4433,然后保存。
- 最后,转到“控制面板”->“程序和功能”->“打开或关闭Windows”。
- 取消选中“Internet Information Services”,然后单击“确定”。
只需等待它,您的计算机/笔记本电脑将自动重新启动并尝试再次打开您的 XAMPP 控制面板,然后启动您的 Apache。
评论
您可以做的一件事是通过发出
net stop http
在 cmd 中。系统会询问您是否确定要停止这些服务。我发现我有一些我没有使用的服务,并禁用了它们。
要查看还有谁在使用端口 80,请在 cmd 中键入
netstat -abno
我假设您想在端口 80 上运行 Apache。如果是这种情况,并且您想要保留冲突的服务,则需要将它们关联到新端口。
如果问题不是繁忙的端口,您还可以尝试以下操作:在 XAMPP 配置面板中选择“显示调试信息”。启动Apache时,您将看到类似“正在执行”c:\xampp\apache\bin\httpd.exe“的内容。如果你运行它
c:\xampp\apache\bin\httpd.exe
在 cmd 中,您将获得更多信息(例如,我曾经对我的 httpd.conf 文件有一些问题)。
相关新闻: 如何在 localhost Windows 上释放我的端口 80? Apache 不会在 xampp 中运行
评论
c:\xampp\apache\bin\httpd.exe
打开 Skype。
工具 -> 选项 -> 高级 -> 连接。
取消选中“使用端口 80 和 443 作为传入连接的替代端口”复选框
注销并关闭所有 Skype 窗口。尝试重新启动 Apache。
评论
我的问题是在 httpd.conf 中,和 条目指向不存在的文件夹。DocumentRoot
<Directory>
例如,“原始”httpd.conf 包含以下条目:
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
如果您已安装在 C:\xampp 中,则需要更改这些条目以匹配,即
DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
评论
For me, world wide web publishing-service was using port 80. I killed this by running the following command on cmd:
net stop http
After that, XAMPP ran Apache without any problems.
评论
我遇到了同样的问题,结果我忘了运行(便携式版本)。setup_xampp.bat
评论
您可以做的简单事情是检查您的计算机中是否安装了Skype或VMware。
Skype 使用端口 80 和 443 作为传入连接的附加端口。若要更改 Skype 中的端口号,请转到
连接>连接工具>选项
在Skype窗口中。现在将默认的 80 端口号更改为其他端口号。
VMware Workstation 使用端口 443 进行共享。要更改此设置,请打开 VMware Workstation 并转到
编辑>首选项>共享虚拟机
- 点击“更改设置”按钮
- 然后点击“禁用共享”
- 然后更改正在使用的 https 端口号 (443)
- 然后,您可以单击“启用共享”按钮
这就是你所要做的。重新启动 XAMPP 并运行 Apache 服务器。
评论
由于我在开发人员面临防火墙问题的企业环境中工作,因此其他答案都没有解决我的问题。
由于该端口不是由Skype使用,而是由其他一些内部应用程序使用, 我按照以下步骤解决了这个问题:
步骤1 - 在XAMPP控制面板的Apache下,单击“配置”按钮,然后选择Apache(httpd.conf)。
在 httpd.conf 文件中,不知何故,我发现了一行说:
Listen 80
并将 80 更改为您想要的任何数字/端口。在我的方案中,我使用的是端口 8080。
Listen 8080
仍然从 httpd.conf 文件中,我找到了另一行,上面写着:
ServerName localhost:80
将 80 更改为 8080。
ServerName localhost:8080
步骤2 - 在XAMPP控制面板的Apache下,再次单击“配置”按钮,但这次选择Apache(httpd-ssl.conf)。在 httpd-ssl.conf 文件中,找到说
Listen 443
并将 443 更改为您想要的任何数字/端口。我将使用 4433 作为新的端口号。
Listen 4433
仍然在 httpd-ssl.conf 文件中,找到另一行,上面写着
<VirtualHost _default_:443>
ServerName localhost:443
并将 443 更改为 4433。
<VirtualHost _default_:4433>
ServerName localhost:4433
请记住在执行一些更改后保存 httpd.conf 和 httpd-ssl.conf 文件。然后重新启动 Apache 服务。
评论
httpd-ssl.conf
ServerName www.example.com:4433
当我发现没有使用命令使用端口 80 的进程时
netstat -abno | find ":80"
使用端口 80 的任何进程都没有问题。
然后我运行命令(在cmd中)
C:\xampp\apache\bin\httpd.exe
它在文件中的虚拟主机配置中显示了一些错误,该文件最近由我编辑以安装在Eclipse IDE的WordPress PHP环境中。所以我删除了这些行,Apache完美地开始了。httpd-vhosts.conf
评论
在 XAMPP 控制面板 V3.2.1 中,单击右上角的“NetStat”按钮。确保端口 80 未被任何其他程序使用。然后单击其正下方的“Shell”。在 shell 提示符下发出此命令;
Apache_Start.bat
或键入“ap”,然后按 TAB 键两次,这将同样生成上述命令。 您实际上会看到Apache失败的确切错误。这很可能是虚拟主机配置问题,也可能是其他问题。它将显示发生错误的行号。只需修复该错误即可。请注意,在 RootDocument 中,尾随 \ 也可能是错误的来源。删除任何尾随的 “”。
评论
原因之一可能是您没有以管理员身份运行 XAMPP 控制面板。
评论
我解决了停止服务“Web 部署代理服务”的问题。打开:系统 -> 计算机管理 -> 服务 -> Web 部署代理服务。停止此服务并启动 XAMPP 工作。 我认为这是 MS Webmatrix 的一项服务。
(德语:Systemsteuerung -> System und Sicherheit -> Verwaltung -> Dienste -> Webbereitstellungs-Agent-Dienst )
就我而言,此问题是由于尝试下载bitnami的其他产品(如WordPress)引起的。当我们通过 XAMPP 安装 WordPress 时,这很常见。它被放置在可以从 XAMPP 应用程序主页访问的目录中。xampp/app
作为解决方案,我从目录中删除了默认安装的WordPress,并通过下载并将zip文件解压到文件夹中来手动将WordPress安装在WordPress的文件夹中。您还需要在卸载/删除默认的WordPress后重新启动XAMPP或系统。现在对我来说一切都好了。xampp
htdocs
htdoc
前段时间我遇到了同样的问题。我有一台旧笔记本电脑,几乎所有的端口都被阻塞或出现故障。我就是这样做的。
打开 XAMPP 控制面板。
单击“配置”
然后,进入 Apache httpd.conf 文件。使用文本编辑器打开它。
搜索“80”(Do + 并找到所有这些。将其替换为 8080、4040 或 4000)。CtrlF
保存文件。并重新启动 XAMPP。
它对我来说效果很好,我希望它也能帮助你。
发生此错误的原因是为 Apache 分配的端口被另一个程序使用。要检查使用我们为 Apache 分配的端口的应用程序,可以通过单击来获得它,
Netstat 按钮。
这是 Netstat 文件,
首先,我为 Apache 分配了端口 8080,最近安装了 Oracle DB。TNSLSNR.exe 现在已使用 8080 端口。
因此,通过查看此文件,我们可以选择一个不与其他应用程序冲突的端口。就我而言,端口 8060 不会与任何应用程序冲突。通过选择,我们可以如上所述更改 httpd.conf 文件(XAMPP 控制面板 -> Config)。
最佳解决方案
打开 XAMPP 控制面板,单击 config for Apache,然后在文本编辑器中单击 Apache(httpd.config).now。ctrl+f -->找到“Listen 80”并将其替换为“Listen 8079”,:)引号 但现在你必须像这样使用它 http://localhost:8079/
PS,我试图更改skype的端口设置,停止我在Windows 10,cmd-->net stop http和其他方法中找不到的Web部署代理服务,但除此之外没有任何效果。
- 下载 新 XAMPP Apache Friends
- 安装它
- 删除所有 VPN 应用
- 打开文件夹 XAMPP 运行setup_xampp.bat
- 运行 xampp-control.exe
评论
如果您使用的是 Windows 7 .在 Windows 搜索中搜索 IIS(单击左下角的“窗口”图标,然后在显示“搜索程序和文件”的位置键入)。
打开 IIS(Internet 信息服务)。
在右侧的操作面板中。单击“停止”。
注意:停止链接在屏幕截图中淡入淡出。因为我阻止了它。问题解决了!
评论
Control Panel > Programs > Programs and Features > Windows Components
net stop http
我有与 OP 完全相同的错误消息,但我的问题没有被任何现有答案解决。许多答案都涉及端口 80 上的冲突,我知道我没有,因为我最近在端口 80 上有 localhost 响应。
事实证明,当我打算更改 DocumentRoot 时,我无意中更改了 ServerRoot(愚蠢的,我知道),尽管存在新的 ServerRoot 目录,但它不包含 apache 所需的配置文件和其他内容,这导致它在启动时失败。错误消息可能通过“缺少依赖项”的措辞来解决这种情况。
在我的 Windows 系统上,将 ServerRoot 设置回 C:/XAMPP/apache 解决了这个问题。
默认情况下,Apache 服务器在端口 80、443 上运行。您的问题是两个端口中的一个或两个都繁忙。通常,Skype 或 VMware Workstation 使用这两个端口。因此,请确保它们没有运行。确保端口在 Windows 上空闲的最佳方法是:
单击窗口按钮。
在搜索栏中,键入 resmon,打开资源监视器 resmon.exe。
打开侦听端口,这将显示打开的已使用端口。
现在,您可以看到哪个进程正在使用端口 80 和 443。
然后,您可以使用其 PID(显示在资源监视器中)从 CMD 终止进程,也可以直接从任务管理器终止进程。
使用 PID 从 CMD 终止进程,键入 ,其中 26356 是 PID。
Taskkill /PID 26356 /F
Windows用户的最佳解决方案是:
- 打开 netstat(来自 XAMPP 控制面板)
- 查找使用端口 80 的进程的 PID。
- 使用管理打开 CMD。
- 运行(而不是 PID 使用从 netstat 找到的 pid u)
嘿,享受你完成.....taskkill /pid PID
首先确保您的文件夹位于根目录中!这很重要,因为路径是相对的。
\xampp
然后,请确保使用管理员权限运行。
xampp_control.exe
然后更改以下文件以避免端口 80 被阻止的问题。
其中应设置:\xampp\xampp-control.ini
[ServicePorts]
Apache=8080
ApacheSSL=4433
查找并设置:\xampp\apache\conf\httpd.conf
Listen 8080
ServerName localhost:8080
查找并设置:\xampp\apache\conf\extra\httpd-ssl.conf
Listen 4433
<VirtualHost _default_:4433>
ServerName www.example.com:4433
然后结束所有服务,并使用管理员权限重新启动。它应该运行!xampp-control.exe
似乎没有人回答过执行xampp_start.exe。
我做了之前的所有答案,但它没有解决我的问题。我发现运行xampp_start.exe会为您提供有关该问题的详细信息。
这是我看到的:
如您所见,我遇到了路径问题或 xampp 指向不存在的文件夹。
评论
2023 年更新:
我找到了一种更快/更快的方法来解决这个问题,而无需查看一长串服务和端口,您可以使用它。
netstat -ano | findstr <Port Number>
taskkill /F /PID <Process Id>
请务必更改:
<Port Number>
到端口,您需要 8080 或 443。<Process Id>
到使用端口的服务或应用的 PID。
2019年原帖:
我刚刚在我的 xampp v3.2.2 [win 10 pro x64] 上遇到了这个错误,
我首先尝试在管理员 cmd 中运行“net stop http”命令,但它没有解决问题,所以我继续尝试“netstat -abno”命令,我发现 vmware 正在使用 ssl 端口(443)。
因此,我的建议是,不要只寻找阻塞端口 80 的东西,还要寻找使用端口 443 的潜在程序。因为我真的不喜欢将默认端口号更改为 8081 和 4433。
所以这就是解决这个问题的方法......
首先键入以下命令
net stop http
然后尝试启动 Apache,如果它仍然不起作用。键入以下命令
netstat -abno
而且你肯定会得到那个麻烦的应用程序,它正在占用你宝贵的端口。
复制 PID,然后使用以下命令
taskkill /f /pid PID
其中 PID 是您复制的 pid。
希望这对某人有所帮助。
这对我有用......
如果您使用的是 Windows...
在 Windows 搜索栏中搜索“cmd”。
输入以下内容:C:\xampp\apache\bin\httpd.exe
查找发生错误的文件和行。
例如,我的在下面的文件中 在第 37 行。
httpd-multilang-errordoc.conf (英语)
打开代码并通过删除或修复该行来修复错误。
做!我现在应该工作了。
:)
评论
就我而言,端口已被Windows IIS服务使用。 您可以从 cmd 检查端口是否已被使用。打开 cmd 并运行以下命令:
netstat -ano
如果 IIS 正在使用它,您可以通过以下命令停止它。以管理员身份打开 cmd,然后:
iisreset /stop
现在尝试运行 XAMPP,它应该可以工作。
您可以从 XAMPP 目录运行apache_start.bat文件以查看有关错误详细信息的详细信息。
评论
尝试以下方法,以上都没有为我解决
- 选择
Run as administrator
然后单击Apache旁边的左侧大框
选择卸载 Apache
有时,问题不是端口问题,而可能是由于您执行的错误配置,并且 Apache 未在 Windows 的事件查看器上记录错误。要解决这个问题,只需
cd C:\xampp\apache\bin
然后运行
httpd.exe
然后,Apache将为您吐出错误,如下所示
AH00526: Syntax error on line 2 of C:/xampp/apache/conf/httpd.conf: Invalid command 'This', perhaps misspelled or defined by a module not included in the server configuration
我希望这能帮助一些可怜的灵魂:)
第 1 步:在 Apache 中转到 Config,然后选择 Apache(httpd.conf)
在记事本中,找到 Listen 80 并添加另一个 80 以将端口更改为 Listen 8080
确保在关闭记事本之前保存。
第 2 步:在 Apache 中转到配置选择 Apache(httpd-ssl.conf)
在记事本中,找到 Listen 443 并在 443 后再添加 3,将端口更改为 Listen 4433
然后搜索 VirtualHost default:443 并添加另外 3 个以将端口更改为 VirtualHost default:4433
确保在关闭记事本之前保存。
(注意:这里有一个类似的答案,但在我喜欢 YT 上的视频之前,它对我不起作用)
评论
error.log
PHP Warning: 'vcruntime140.dll' 14.0 is not compatible with this PHP build