XAMPP,Apache – 错误:Apache意外关机
我刚刚重新安装了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
我如何解决这个问题?
打开Skype。
工具 – >选项 – >高级 – >连接。
禁用“ 使用端口80和443替代传入连接 ”
注销并closures所有Skype窗口。 尝试重新启动你的Apache。
由于我在开发人员遇到防火墙问题的企业环境中工作,所以其他答案都不能解决我的问题。
由于该端口不是由Skype使用,而是由其他一些内部应用程序使用,我按照以下步骤解决了这个问题:
第1步 – 从XAMPP控制面板的Apache下,单击configurationbutton,然后selectApache(httpd.conf)。
在httpd.conf文件中,不知何故,我发现一行说:
Listen 80
把80改成你想要的任何号码/端口。 在我的情况下,我正在使用端口8080。
Listen 8080
仍然从httpd.conf文件,我发现另一行说:
ServerName localhost:80 And change 80 to 8080. ServerName localhost:8080
第2步 – 从XAMPP控制面板的Apache下,再次单击configurationbutton,但这次selectApache( httpd-ssl.conf )。 在httpd-ssl.conf文件中,find说的那一行
Listen 443
把443改成你想要的任何号码/端口。 我将使用4433作为新的端口号。
Listen 4433
仍然从httpd-ssl.conf文件中find另一行
<VirtualHost _default_:443> ServerName localhost:443
并改变443至4433 。
<VirtualHost _default_:4433> ServerName localhost:4433
请记住在执行一些更改后保存httpd.conf和httpd-ssl.conf文件。 然后重新启动Apache服务。
你可以做的一件事是通过发行停止80端口的服务
net stop http
在一个CMD。 你会被问到是否确定要停止这些服务。 我发现我有一些服务,我没有使用,并禁用它们。
要查看还有谁在使用端口80types的cmd
netstat -abno
我假设你想在端口80上运行Apache。如果是这种情况,你想保持冲突的服务,你将需要将它们关联到一个新的端口。
如果问题不是繁忙的端口,您也可以尝试以下操作:在XAMPPconfiguration面板中select“显示debugging信息”。 当启动Apache时,你会看到类似于“执行”c:\ xampp \ apache \ bin \ httpd.exe“。如果你运行
c:\xampp\apache\bin\httpd.exe
在一个cmd中,你会得到更多的信息(我曾经例如有一些问题与我的httpd.conf文件)。
相关: 如何在localhost Windows上释放我的端口80? Apache将不能在xampp中运行
按着这些次序:
- 打开您的XAMPP控制面板,然后点击其“configuration”
-
select“Apache(httpd.conf)”并find下面的代码,并将其更改为下面的代码:
#将其更改为监听特定的IP地址,如下所示
#阻止Apache浏览所有绑定的IP地址。
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80
#dynamic共享对象(DSO)支持
- 保存( Ctrl + S )
- 之后,回到XAMPP控制面板,再次点击其configuration。
- select“Apache(httpd-ssl.conf)”,find下面的代码,并再次更改:
#注意:使用IPv6而不是IPv4映射地址的configuration需要两个
#听指令:“Listen [::]:443”和“Listen 0.0.0.0:443”
#
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 443
- 保存( Ctrl + S )
- 然后,点击“configuration”(注意:在netstat上面)并点击“服务和端口设置”。
- 将“主端口”更改为8080,将“SSL端口”更改为4433,然后保存。
- 最后,进入“控制面板” – >“程序和function” – >“打开或closuresWindows”。
- 取消您的“Internet信息服务”,然后单击确定。
等待它,您的电脑/笔记本电脑将自动重新启动,并尝试再次打开您的XAMPP控制面板,然后启动您的Apache。
在XAMPP控制面板V3.2.1中,点击右上angular的“NetStat”button。 确保端口80不被任何其他程序使用。 然后点击它下面的“shell”。 发出此命令“键入ap然后TAB两次”
Apache_Start.bat
你将会看到Apache失败的原因。 这将主要是虚拟主机configuration问题或可能是别的东西。 它将显示发生错误的行号。 只需修复该错误。 请注意,在RootDocument中,\也可能是错误的来源。 删除任何结尾的“\”。
有关更多详细信息, 请点击此处
我的问题是,在httpd.conf DocumentRoot
和<Directory>
条目指向不存在的文件夹。
例如,“原始的”httpd.conf有以下条目:
DocumentRoot "c:/Apache24/htdocs" <Directory "c:/Apache24/htdocs">
如果你已经安装在C:\ xampp那么你需要改变这些条目匹配,即
DocumentRoot "c:/xampp/htdocs" <Directory "c:/xampp/htdocs">
我有同样的问题,事实certificate,我忘了运行setup_xampp.bat
(便携版)。
如果您使用的是Windows 7。 在Windowssearch中searchIIS(单击左下angular的“窗口”图标,然后键入“search程序和文件”)。
打开IIS(Internet信息服务) 。
在动作面板的右侧。 点击停止。
注意:停止链接在屏幕截图中淡入淡出。 我已经停止了。 问题解决了!
我有同样的问题。 我有一台旧笔记本电脑,几乎所有的端口都被阻塞或发生故障。 我就是这么做的
-
打开XAMPP控制面板。
-
点击Config
-
然后,进入Apache httpd.conf文件。 用文本编辑器打开它。
-
search“80” ( 按Ctrl + F并find所有这些,用8080或4040或4000replace)。
-
保存文件。 并重新启动XAMPP。
它对我很好,我希望它也能帮助你。
对我来说,万维网发布服务正在使用端口80.我通过在cmd上运行以下命令来杀死这个:
net stop http
之后,XAMPP运行Apache没有任何问题。
你可以做的简单的事情是检查你的机器是否安装了Skype或VMware 。
Skype使用端口80和443作为传入连接的附加端口。 要更改Skype中的端口号,请转到
工具>连接选项>连接
在Skype窗口中。 现在将默认的80端口号改为其他。
VMware Workstation使用端口443进行共享。 要改变这个,打开VMware Workstation并转到
编辑>首选项>共享Vms
- 点击“更改设置”button
- 然后点击“禁用共享”
- 然后更改正在使用的https端口号(443)
- 然后你可以点击“启用共享”button
这就是你所要做的。 重新启动XAMPP并运行Apache服务器。
当我发现使用命令没有使用端口80的进程
netstat -abno | find ":80"
使用端口80的过程没有问题。
然后我运行命令(以cmd)
C:\xampp\apache\bin\httpd.exe
它在httpd-vhosts.conf
文件中的虚拟主机configuration中显示了一些错误,这个错误最近由我编辑,安装在Eclipse IDE的WordPress PHP环境中。 所以我删除了这些行,Apache开始完美。
发生此错误是因为分配给Apache的端口被另一个程序使用。 要检查使用我们为Apache分配的端口的应用程序,可以通过点击,
Netstatbutton。
这是Netstat文件,
起初,我已经为Apache分配了8080端口,而且我最近安装了Oracle DB.TNSLSNR.exe现在已经使用了8080端口。
所以通过查看这个文件我们可以select一个不与其他应用程序冲突的端口。 在我的情况下,端口8060不与任何应用程序冲突。 通过select我们可以更改httpd.conf文件(XAMPP控制面板 – > configuration )如上所述。
- 下载新的xampp apachefriends
- 安装它
- 删除所有VPN应用程序
- 打开文件夹XAMPP运行setup_xampp.bat
- 运行xampp-control.exe
对我而言,当我在Windows 8计算机上托pipe一个VPN连接时,就出现了这个问题。
简单地从“控制面板\networking和Internet \networking连接”删除连接解决了这个问题。
请注意,无论何时更改默认端口,浏览器都不会知道这一点。 80
和443
在某些方面似乎是标准的,例如,如果您将80
更改为8080
,则必须按以下方式访问您的网站:
localhost:8080/path_to_your_website.php
由于缺省端口80,这种情况会被Apache阻止。 您需要更改端口或使端口可访问。
在Apache安装中转到您的Apacheconfiguration文件(httpd.conf) 。
find这些行:
#
听 192.168.1.2:80
听 80
#
这里192.168.1.2是我的私有IP地址。 改变它根据你的。
更改如下
听192.168.1.2:8081
听8081
现在,当你访问本地主机,你必须明确添加端口为http:// localhost:8081 / …
其中一个原因可能是您没有以pipe理员身份运行XAMPP控制面板。
在我的情况下,这个问题是由于试图下载其他产品bitnami,如WordPress 。 当我们通过XAMPP安装WordPress时,这很常见。 它被放置在可从XAMPP应用程序主页访问的xampp/app
目录中。
作为解决scheme,我从xampp
目录中删除了默认安装的WordPress,并通过下载并在htdoc
文件夹中解压zip文件,在WordPress的htdocs
文件夹中手动安装了WordPress。 您还需要在卸载/删除默认的WordPress后重新启动XAMPP或系统 。 现在一切都好了。
默认情况下,Apache服务器在端口80,443上运行。您的问题是一个或两个端口都忙。 通常Skype或VMware Workstation使用这两个端口。 所以,确保他们没有运行。 确保Windows上的端口免费的最佳方法是:
点击窗口button。
在search栏中键入resmon ,打开资源监视器resmon.exe 。
打开侦听端口 ,这将显示您打开的使用端口。
现在您可以看到哪个进程正在使用端口80和443。
然后,您可以使用其PID(在资源监视器中显示)从CMD中终止进程,也可以直接从任务pipe理器中终止该进程。
要使用PIDtypes
Taskkill /PID 26356 /F
从CMD中Taskkill /PID 26356 /F
进程,其中26356是PID。
我解决了停止服务“Web部署代理服务”的问题。 打开: 系统 – > 计算机pipe理 – > 服务 – > Web部署代理服务 。 停止这项服务,启动XAMPP。 我认为这是由MS Webmatrix提供的服务。
(German: Systemsteuerung – > System und Sicherheit – > Verwaltung – > Dienste – > Webbereitstellungs-Agent-Dienst )
在我的情况下,这发生在安装SQL Server后,解决scheme是在这个答案中描述
Xampp – 安装SQL Server和Visual Studio后无法启动Apache
所以我不得不从Windows服务中禁用“SQL Server Reporting Services”服务
最佳解决scheme
打开XAMPP控制面板,点击config for Apache,然后在文本编辑器中点击Apache(httpd.config).now。 ctrl + f – >find“Listen 80”并用“Listen 8079”replace掉而不用引号:)但现在你必须像这样使用http:// localhost:8079 /
PS,我试图改变Skype的端口设置,停止Web部署代理服务,我无法find在Windows 10中,CMD – >净停止http和其他方法,但没有任何工作,除了这一点。
首先,你应该validation你的httpd-vhosts文件中没有多余的虚拟主机。 我的意思是简单的规则:1项目= 1configuration文件中的虚拟主机。 否则,即使您将更换端口等,您也会遇到错误
我有与OP完全相同的错误消息,但我的问题没有解决任何现有的答案。 许多答案处理80端口的冲突,我知道我没有,因为我最近有80端口的本地主机响应。
事实certificate,当我打算更改DocumentRoot (愚蠢的,我知道)时,我无意中更改了ServerRoot ,尽pipe新的ServerRoot目录已经存在,但它不包含configuration文件和其他apache所需的东西,从而导致它在启动时失败。 该错误消息可能通过措辞“ 缺less依赖关系 ”来解决这种情况。
在我的Windows系统上,将ServerRoot设置回C:/ XAMPP / apache解决了这个问题。
最好的解决scheme为Windows用户是:
- 打开netstat(来自XAMPP控制面板)
- 查找使用端口80的进程的PID。
- 打开CMD与行政。
- 运行
taskkill /pid PID
(而不是PID使用从netstat中find的pid)
Heyy喜欢你完成…..
-
首先确保你的
\xampp
文件夹在根目录下! 这是重要的,因为path是相对的。 -
然后确保使用pipe理员权限运行
xampp_control.exe
。 -
然后更改下面的文件以避免阻塞端口80的问题。
在\xampp\xampp-control.ini
应该设置:
[ServicePorts] Apache=8080 ApacheSSL=4433
find\xampp\apache\conf\httpd.conf
并设置:
Listen 8080 ServerName localhost:8080
find\xampp\apache\conf\extra\httpd-ssl.conf
并设置:
Listen 4433 <VirtualHost _default_:4433> ServerName www.example.com:4433
然后结束所有服务,并用pipe理权限重新启动xampp-control.exe
。 它应该运行!
我试图执行cmd中的httpd.exe,并得到错误,在httpd-vhosts.conf中有语法错误。 我查了一下文件,发现有什么问题,现在工作正常。
所以,如果你面临这个错误,那么可能是因为httpd-vhosts或其他文件。
尝试通过CMD执行该程序,你会得到错误的细节和语法错误的地方。
祝你好运
似乎没有人回答有关执行xampp_start.exe。
我做了所有以前的答案,但没有解决我的问题。 我发现运行xampp_start.exe会给你一个关于这个问题的详细信息。
这是我在我看来:
正如你可以看到我有一个path问题或XAMPP指向不存在的文件夹。
从Windows 8.1的5.6.8安装最新的5.6.12为我工作。