我刚刚重新安装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
我怎么解决这个问题?
遵循以下步骤:
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。
您可以做的一件事是通过发出命令停止端口80上的服务
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文件)。
相关:如何释放我的端口80在本地主机Windows?Apache不能在xampp中运行
您可以做的简单的事情是检查Skype或VMware是否安装在您的机器上。
Skype使用端口80和443作为传入连接的附加端口。如果需要在Skype中修改端口号,请转
工具>连接选项>连接
在Skype窗口。现在将默认的80端口号更改为其他端口号。
VMware Workstation使用443端口进行共享。要改变这一点,打开VMware工作站,然后转到
编辑>首选项>共享虚拟机
点击“更改设置”按钮
然后点击“禁用共享”
然后更改正在使用的https端口号(443)
然后点击“启用共享”按钮
这就是你要做的。重新启动XAMPP并运行Apache服务器。
由于我在一个开发人员面临防火墙问题的企业环境中工作,其他答案都不能解决我的问题。
由于Skype不使用该端口,而是由其他一些内部应用程序使用,
我按照以下步骤来解决这个问题:
步骤1 -从XAMPP控制面板,在Apache下,单击Config按钮,并选择Apache (httpd.conf)。
在httpd.conf文件中,我发现了一行说:
Listen 80
然后把80换成任何你想要的数字/端口。在我的场景中,我使用端口8080。
Listen 8080
仍然从httpd.conf文件,我发现另一行说:
ServerName localhost:80
将80修改为8080。
ServerName localhost:8080
步骤2 -从XAMPP控制面板,在Apache下,再次单击Config按钮,但这次选择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服务。
首先确保你的\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
然后结束所有服务,以admin权限重新启动xampp-control.exe。它应该运行!
好吧,没有端口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 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。
希望这能帮助到一些人。
如果更改端口不能解决上述建议的问题,并且如果您可能玩弄了文件目录结构(例如,在安装后更改文件夹的名称,就像我所做的那样),那么您可以尝试这样做,
打开XAMPP控制面板,点击Apache的“配置”
选择Apache (httpd.conf)
在打开的编辑器中,按CTRL+H找到旧文件夹名的所有实例,并用新文件夹名替换它。
例如,在我的例子中,我已经将XAMPP的主安装文件夹名称从Xam更改为XAMPP
在编辑器中修改如下:
Define SRVROOT "G:/Xam/apache"
ServerRoot "G:/Xam/apache"
DocumentRoot "G:/Xam/htdocs"
<Directory "G:/Xam/htdocs">
To
Define SRVROOT "G:/Xampp/apache"
ServerRoot "G:/Xampp/apache"
DocumentRoot "G:/Xampps/htdocs"
<Directory "G:/Xampps/htdocs">
在编辑器中还有许多其他这样的实例,只需找到并替换它们中的每一个。
对Apache (httpd-ssl.conf)也执行同样的操作。
你可以采用上面提到的解决方案。这个问题可以通过修改你的“httpd.conf”(C:\xampp\apache\conf\httpd.conf)文件和“httpd-ssl.conf”(C:\xampp\apache\conf\extra\httpd-ssl.conf)文件来解决。
如果问题仍然存在,你可以检查你的skype端口。
But in my case this was different. I had to make changes in "server.crt"(C:\xampp\apache\conf\ssl.crt\server.crt) file.Try running your xammp apache from the command line in administration mode.
"C:\xampp\apache\bin\httpd.exe"
This will give you the errors -in which file and -which line. Likewise, I had an error in server.crt file which was blank.
If you have xammp running in any other system, just copy the contents of this file(C:\xampp\apache\conf\ssl.crt\server.crt) and paste in your server.crt file and You are Done!
感谢和问候
阿卡纳
步骤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的视频)