我刚刚重新安装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

我怎么解决这个问题?


当前回答

我收到了与OP完全相同的错误消息,但现有的任何答案都没有解决我的问题。许多答案涉及端口80上的冲突,我知道我没有冲突,因为我最近在端口80上有localhost响应。

结果我无意中改变了ServerRoot,当我打算改变DocumentRoot(愚蠢,我知道),虽然新的ServerRoot目录存在,但它不包含配置文件和apache所需的其他东西,这导致它在启动时失败。错误消息可能通过“缺少依赖项”来解决这种情况。

在我的Windows系统上,将ServerRoot设置回C:/XAMPP/apache解决了这个问题。

其他回答

Apache服务器默认运行在80、443端口上。您的问题是两个端口中的一个或两个都忙。通常Skype或VMware Workstation使用这两个端口。所以,确保它们没有在运行。确保端口在windows上是空闲的最好方法是:

单击“窗口”按钮。 在搜索栏中输入resmon,打开资源监视器resmon.exe。 Open Listening Ports,这将显示打开的已使用端口。 现在您可以看到哪个进程正在使用端口80和443。 然后,您可以从CMD中使用进程的PID(在资源监视器中显示)终止进程,或者直接从任务管理器中终止进程。 使用PID类型Taskkill /PID 26356 /F从CMD中终止进程,其中26356是PID。

我试图在cmd中执行httpd.exe,得到错误,在httpd-vhosts.conf中有语法错误。 我检查了文件,发现了什么问题,现在工作正常。

所以,如果你面临这个错误,那么它可能是因为httpd-vhosts或任何其他文件。

尝试通过cmd执行程序,您将得到错误细节和语法错误所在行。

祝你好运

试试下面的方法,上面的方法都不能解决我的问题

选择“以管理员身份运行”

然后点击Apache旁边的左边大框

并选择卸载Apache

我不知道为什么这样做,但它直接解决了我的问题!

我刚刚在我的xampp v3.2.2 [win 10 pro x64]上遇到了这个错误,

我首先尝试在管理cmd中运行“net stop http”命令,但它没有解决问题,所以我继续尝试“netstat -abno”命令,我发现ssl端口(443)正在被vmware使用。

因此,我的建议是,不要只寻找阻塞端口80的原因,还要寻找使用端口443的潜在程序。因为我真的不喜欢把我的默认端口号改为8081和4433。

这就是你解决这个问题的方法…

首先输入以下命令

停止HTTP

然后尝试启动apache,如果它仍然不工作。输入以下命令

Netstat -ABNO

你肯定会遇到麻烦的应用,它会占用你宝贵的移植端口。

复制pid,然后使用以下命令

taskkill /f /pid pid

这里的PID是你复制的PID。

希望这能帮助到一些人。

遵循以下步骤:

Open your XAMPP control panel then click its "Config" Choose the "Apache (httpd.conf)" and find this code below and change it into this one: #Change this to Listen on specific IP addresses as shown below #to prevent Apache from glomming onto all bound IP addresses. #Listen 0.0.0.0:80 #Listen [::]:80 Listen 80 # Dynamic Shared Object (DSO) Support Save it (Ctrl + S) After that, go back to the XAMPP control panel and click its config again. Choose "Apache (httpd-ssl.conf)", find this code below, and change it again: # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two # Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443" # #Listen 0.0.0.0:443 #Listen [::]:443 Listen 443 Save it (Ctrl + S) Then, click the "config" (note: above the netstat) and click the "service and port settings". Change "Main Port" to 8080 and "SSL Port" to 4433, then save it. Finally, go to the "control panel" -> "Programs & Features" -> "Turn Windows On or Off". Uncheck your "Internet Information Services", and then click OK.

只需等待它,您的计算机/笔记本电脑将自动重新启动,并尝试再次打开XAMPP控制面板,然后启动Apache。