我刚刚重新安装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的“配置”
选择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)也执行同样的操作。
首先确保你的\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。它应该运行!
你可以采用上面提到的解决方案。这个问题可以通过修改你的“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!
感谢和问候
阿卡纳
好吧,没有端口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">
...现在一切都好了。为了防止将来发生这样的错误,总是复制任何你想要引用的文件夹的路径,而不是自己输入。