我刚刚重新安装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控制面板。 点击Config 然后进入Apache httpd.conf文件。用文本编辑器打开它。 搜索“80”(按Ctrl + F并找到所有它们。将其替换为8080或4040或4000)。 保存文件。并重新启动XAMPP。

它对我很有效,我希望它也能帮助到你。

其他回答

同样的错误。原来我加载了错误版本的zend xdebug扩展。xdebug向导说使用TS(线程安全)版本(即没有- nts -),但显然我下载了错误的非线程安全版本。即使我在php.ini文件中有正确的路径和文件名,我仍然得到错误。当我下载不同的版本,并再次更新php.ini时,一切都运行正常。

php_xdebug-2.7.0-7.3-vc15-nt -x86_64.dll给了我一个错误,但php_xdebug-2.7.0-7.3-vc15-x86_64.dll没有错误

好吧,没有端口80,没有Skype的指责!我的问题确实很简单(也很愚蠢), 在我为DocumentRoot指令指定的路径之后,我有一个额外的反斜杠(\)(在Windows上),所以我做了这样的更改,问题就像鸭汤一样消失了。

我的index.php在路径“D:\ sites\dummy”和我的httpd.conf是这样的:

<VirtualHost 127.0.0.2:80>
ServerName dummy.local
DocumentRoot "D:\websites\dummy\" #mistake here
</VirtualHost>
<Directory "D:\websites\dummy\"> #mistake here
    Require all granted
</Directory>

所以就像这样改变这两行:

#first mistake fix:
DocumentRoot "D:\websites\dummy"
#second (similar) mistake fix:
<Directory "D:\websites\dummy">

...现在一切都好了。为了防止将来发生这样的错误,总是复制任何你想要引用的文件夹的路径,而不是自己输入。

我以前也遇到过同样的问题。我有一台旧笔记本电脑,上面几乎所有的端口不是被阻塞就是故障了。我是这么做的。

打开XAMPP控制面板。 点击Config 然后进入Apache httpd.conf文件。用文本编辑器打开它。 搜索“80”(按Ctrl + F并找到所有它们。将其替换为8080或4040或4000)。 保存文件。并重新启动XAMPP。

它对我很有效,我希望它也能帮助到你。

我刚刚在我的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。

希望这能帮助到一些人。

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

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

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

祝你好运