我刚刚重新安装了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
我该如何解决这个问题?
答案 0 :(得分:643)
由于我在开发人员面临防火墙问题的企业环境中工作,所以其他答案都没有解决我的问题。
由于该端口不是由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下,再次单击“配置”按钮,但这次选择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服务。
答案 1 :(得分:408)
打开Skype。
工具 - &gt;选项 - &gt;高级 - &gt;连接。
取消选中“使用端口80和443替代传入连接”复选框
退出并关闭所有Skype窗口。尝试重新启动Apache。
答案 2 :(得分:82)
您可以做的一件事是通过发出
来停止端口80上的服务net stop http
在一个cmd中。系统会询问您是否确定要停止这些服务。我发现我有一些我没有使用的服务并禁用它们。
查看还有哪些人在cmd中使用端口80类型
netstat -abno
我假设您要在端口80上运行Apache。如果是这种情况,并且您希望保留冲突的服务,则需要将它们与新端口关联。
如果问题不是繁忙端口,您还可以尝试以下操作:在XAMPP配置面板中选择“show debug information”。启动Apache时,您将显示“执行”c:\ xampp \ apache \ bin \ httpd.exe“。如果您运行
c:\xampp\apache\bin\httpd.exe
在cmd中,您将获得更多信息(例如,我的httpd.conf文件存在一些问题)。
相关:How do I free my port 80 on localhost Windows?和Apache won't run in xampp
答案 3 :(得分:54)
在XAMPP控制面板V3.2.1中,单击&#34; NetStat&#34;右上角的按钮。确保任何其他程序不使用端口80。然后点击&#34; Shell&#34;在它下面。发出此命令&#34;键入ap然后选择TAB两次&#34;
Apache_Start.bat
您实际上会看到Apache失败的确切错误。它很可能是虚拟主机配置问题,或者可能是其他问题。它将显示发生错误的行号。只需修复该错误。请注意,在RootDocument中,尾随\也可能是错误的来源。删除所有尾随&#34; \&#34;。
有关详细解答,请check here
答案 4 :(得分:33)
请按照以下步骤操作:
选择“Apache(httpd.conf)”并在下面找到此代码并将其更改为此代码:
#Change this to Listen on specific IP address,如下所示
#阻止Apache冒成所有绑定的IP地址。
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80
#动态共享对象(DSO)支持
#注意:使用IPv6而不是IPv4映射地址的配置需要两个
#Listen指令:“Listen [::]:443”和“Listen 0.0.0.0:443”
#
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 443
等待它,您的计算机/笔记本电脑将自动重启,并尝试再次打开您的XAMPP控制面板,然后启动您的Apache。
答案 5 :(得分:23)
我的问题是在httpd.conf中DocumentRoot
和<Directory>
条目指向不存在的文件夹。
例如,'原始'httpd.conf包含以下条目:
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
如果您已安装在C:\ xampp中,则需要更改这些条目以匹配,即
DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
答案 6 :(得分:16)
如果您使用的是Windows 7。在Windows搜索中搜索IIS(单击左下角的“窗口”图标,然后键入“搜索程序和文件”的位置。)
打开 IIS(互联网信息服务)。
在动作面板的右侧。点击停止。
答案 7 :(得分:13)
我遇到了同样的问题,事实证明我忘记了setup_xampp.bat
(便携版)。
答案 8 :(得分:9)
我有时会遇到同样的问题。我有一台旧笔记本电脑,几乎所有端口都被堵塞或出现故障。这就是我做到的。
打开XAMPP控制面板。
点击配置
然后,进入 Apache httpd.conf 文件。用文本编辑器打开它。
搜索&#34; 80&#34; (执行 Ctrl + F 并找到所有这些内容。替换它 8080或4040或4000 )。
保存文件。然后重启XAMPP。
它对我有用,我希望它对你也有帮助。
答案 9 :(得分:8)
当我发现使用命令
时没有使用端口80的进程netstat -abno | find ":80"
使用端口80没有任何进程的问题。
然后我跑了命令(在cmd中)
C:\xampp\apache\bin\httpd.exe
它在httpd-vhosts.conf
文件中的虚拟主机配置中显示了一些错误,该文件最近由我编辑,用于在Eclipse IDE中的WordPress PHP环境中安装。所以我删除了那些行,Apache开始完美。
答案 10 :(得分:7)
您可以做的简单事情是检查机器中是否安装了Skype或VMware。
Skype使用端口80和443作为传入连接的附加端口。要更改Skype中的端口号,请转到
在Skype窗口中工具&gt;连接选项&gt;连接
。现在将默认的80端口号更改为其他端口号。
VMware Workstation使用端口443进行共享。要更改此设置,请打开VMware Workstation并转到
编辑&gt;偏好&gt;共享Vms
这就是你要做的一切。重新启动XAMPP并运行Apache服务器。
答案 11 :(得分:5)
对我来说,万维网发布服务正在使用端口80.我通过在cmd上运行以下命令来杀死它:
net stop http
之后,XAMPP毫无问题地运行Apache。
答案 12 :(得分:5)
似乎没有人回答有关执行xampp_start.exe的问题。
我做了以前的所有答案,但没有解决我的问题。我发现运行xampp_start.exe会给你一个关于这个问题的详细信息。
这是我在最后看到的:
正如您所看到的,我遇到了路径问题,或者xampp指向不存在的文件夹。
答案 13 :(得分:4)
发生此错误的原因是为其他程序使用为Apache分配的端口。要检查使用我们为Apache分配的端口的应用程序,可以单击
Netstat 按钮。
这是Netstat文件,
首先,我为Apache分配了端口8080,最近我安装了Oracle DB.TNSLSNR.exe现在使用了8080端口。
因此,通过查看此文件,我们可以选择一个不与其他应用程序冲突的端口。就我而言,端口8060与任何应用程序都没有冲突。选择我们可以更改 httpd.conf 文件(XAMPP控制面板 - &gt; 配置),如上所述。
答案 14 :(得分:3)
您可以从XAMPP目录运行apache_start.bat文件,以查看有关错误详细信息的详细信息。
答案 15 :(得分:3)
答案 16 :(得分:3)
这对我有用...
如果您使用的是Windows ...
在Windows搜索栏中搜索“ cmd”。
输入以下内容:C:\xampp\apache\bin\httpd.exe
查找发生错误的文件和行。
例如,我的在以下文件中 在第37行。
httpd-multilang-errordoc.conf
打开代码并通过删除行或修复错误来纠正错误。
完成!我现在应该工作。
:)
答案 17 :(得分:2)
默认情况下,Apache服务器在端口80,443上运行。您的问题是两个端口中的一个或两个都忙。通常Skype或VMware Workstation使用这两个端口。因此,请确保它们没有运行。确保端口在Windows上免费的最佳方法是:
点击“Windows”按钮。
在搜索栏中输入 resmon ,打开资源监视器 resmon.exe 。
打开收听端口,这将显示已打开的已用端口。
现在您可以看到哪个进程正在使用端口80和443。
然后,您可以使用其PID(显示在资源监视器中)或直接从任务管理器终止CMD进程。
使用PID类型
Taskkill /PID 26356 /F
从CMD终止进程,其中26356是PID。
答案 18 :(得分:2)
尝试以下方法,以上都没有为我解决
<块引用>选择“以管理员身份运行”
<块引用>然后点击Apache旁边的大左框
<块引用>并选择卸载Apache
<块引用>我不知道为什么会这样,但它直接解决了我的问题!
答案 19 :(得分:2)
我有与OP相同的错误消息,但我的问题没有得到任何现有答案的解决。许多答案都涉及端口80上的冲突,我知道我没有,因为我最近在端口80上有localhost响应。
当我打算更改 DocumentRoot (愚蠢,我知道),以及新的 ServerRoot 目录时,我无意中更改了 ServerRoot 存在,它不包含配置文件和其他需要的apache,这导致它在启动时失败。错误消息可能通过措辞“缺少依赖性”来解决此问题。
在我的Windows系统上,将ServerRoot设置回 C:/ XAMPP / apache 解决了这个问题。
答案 20 :(得分:2)
首先确保您的\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
然后结束所有服务并使用管理员权限重新启动xampp-control.exe
。它应该运行!
答案 21 :(得分:2)
有时该问题不是端口问题,而可能是由于您的配置错误导致 Apache 未在 Windows 的事件查看器上记录错误。要解决这个问题,只需
cd C:\xampp\apache\bin
然后运行
httpd.exe
Apache 然后会为您吐出错误,例如如下
AH00526: Syntax error on line 2 of C:/xampp/apache/conf/httpd.conf: Invalid command 'This', perhaps misspelled or defined by a module not included in the server configuration
我希望能帮助一些可怜的人:)
答案 22 :(得分:2)
在我的情况下,此问题是由尝试下载bitnami的其他产品引起的,例如WordPress。当我们通过XAMPP安装WordPress时,这很常见。它位于xampp/app
目录中,可以从XAMPP应用程序主页访问。
作为解决方案,我从xampp
目录中删除了默认安装的WordPress,并通过下载并将zip文件解压缩到htdocs
文件夹中,在WordPress的htdoc
文件夹中手动安装了WordPress 。 卸载/删除默认WordPress后,您还需要重新启动XAMPP或系统。现在一切都好了。
答案 23 :(得分:2)
我通过停止服务&#34; Web部署代理服务&#34;解决了这个问题。打开:系统 - &gt; 计算机管理 - &gt; 服务 - &gt; Web部署代理服务。停止此服务并启动XAMPP工作。 我认为这是MS Webmatrix提供的服务。
(德语: Systemsteuerung - &gt; System und Sicherheit - &gt; Verwaltung - &gt; Dienste - &gt; Webbereitstellungs-Agent-Dienst )
答案 24 :(得分:2)
其中一个原因可能是您没有以管理员身份运行XAMPP控制面板。
答案 25 :(得分:2)
由于默认端口80因Apache而被阻止。您需要更改端口或使端口可访问。
转到Apache安装中的 Apache配置(httpd.conf)文件。
找到这些行:
#
收听 192.168.1.2:80
收听 80
#
这里192.168.1.2是我的私有IP地址。根据你的情况改变它。
更改如下
收听192.168.1.2:8081
收听8081
现在,当您访问localhost时,您必须将该端口显式添加为 http://localhost:8081/ ...
答案 26 :(得分:1)
我尝试在cmd中执行httpd.exe,并且在httpd-vhosts.conf中出现了语法错误。 我检查了文件,发现了什么错,现在工作正常。
因此,如果您遇到此错误,则可能是因为httpd-vhosts或任何其他文件。
尝试通过cmd执行程序,您将获得错误详细信息以及语法错误的行。
祝你好运
答案 27 :(得分:1)
好的,没有端口80,没有Skype的责备!我的问题确实很简单(傻), 在为DocumentRoot指令指定的路径之后,我在Windows上有一个额外的反斜杠(\),因此我进行了这样的更改,问题就象鸭子汤一样消失了。
我的index.php位于路径“ D:\ websites \ 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">
...现在一切都很好。为了避免将来出现此类错误,请始终复制要引用的任何文件夹的路径,而不要自己输入。
答案 28 :(得分:1)
解决方案是卸载xampp并重新安装。会的
答案 29 :(得分:1)
最佳解决方案
打开XAMPP控制面板,单击Apache的配置,然后在文本编辑器中单击Apache(httpd.config).now。 ctrl + f - &gt;找到“Listen 80”并用“Listen 8079”替换它,而不是引用:) 但现在你必须像http://localhost:8079/
一样使用它P.S,我试图更改Skype的端口设置,停止在Windows 10中找不到的Web部署代理服务,cmd - &gt; net stop http和其他方法但除此之外没有任何效果。
答案 30 :(得分:1)
Windows用户的最佳解决方案是:
taskkill /pid PID
(而不是PID使用从netstat找到的pid u)
Heyy喜欢你完成..... 答案 31 :(得分:1)
首先,您应该验证httpd-vhosts文件中没有多余的虚拟主机。我的意思是遵循简单的规则:1个项目=配置文件中的1个虚拟主机。否则,即使您要更改端口等,也会遇到错误。
答案 32 :(得分:1)
在我的情况下,这是在安装sql server之后发生的,解决方案如本回答所述
Xampp - Can't start Apache after install SQL Server and Visual Studio
所以我不得不从Windows服务中禁用“SQL Server Reporting Services”服务
答案 33 :(得分:1)
请注意,无论何时更改默认端口,您的浏览器都不会知道。 80
和443
似乎在某种程度上是标准的,例如,如果您将80
更改为8080
,则必须以这种方式访问您的网站:
localhost:8080/path_to_your_website.php
答案 34 :(得分:1)
我遇到了同样的问题(在Windows 8.1上),但我只是通过提取到C:\
而不是C:\somefolder
来修复它,就像我最初做的那样。因此,控制面板的路径现在是C:\xampp\xampp-control.exe
答案 35 :(得分:1)
对我来说,当我在Windows 8计算机上托管VPN连接时,这个问题就开始了。
只需从“控制面板\网络和Internet \网络连接”中删除连接即可解决问题。
答案 36 :(得分:0)
答案 37 :(得分:0)
我也遇到了同样的错误,我正在卸载 vmware 以修复该错误。
答案 38 :(得分:0)
对我有用的技巧是,
<块引用>以管理员身份启动 XAMPP
我尝试使用 httpd.config 和 httpd-ssl.config 更改端口。它结束了我将它保存在 .txt 文件中。还使用了右上角的配置。没有工作
我正在使用 VMworkstation。
答案 39 :(得分:0)
好吧,就我而言,这真的很简单。
我在以太网端口设置了本地 IP 地址。
然后出现这个错误。原来我没有连接 连接到它的电缆,因此 IP 不会解析为 Apache 中设置的 IP。
解决方案是将电缆连接到交换机或路由器。然后就可以启动Apache了。
答案 40 :(得分:0)
我尝试了所有解决方案,但问题仍然存在。事实证明,安装 Visual Studio 2019 后,我的 C++ Redistributables 发生了很多变化。
我真的跑了
test_php.bat
这向我展示了错误
<块引用>C:\Windows\SYSTEM32\VCRUNTIME140.dll' 14.0 与此 PHP 版本不兼容,该 PHP 版本与第 0 行未知中的 14.28 链接
因此我继续:
<块引用>Microsoft Visual Studio 网站 --> 其他工具、框架和 Redistributables --> Microsoft Visual C++ Redistributable for Visual 工作室 2019
并下载。安装文件并重新启动我的电脑后,问题解决了。 Apache 现在可以正常运行了
答案 41 :(得分:0)
就我而言,我遇到了这个问题,因为Bitnami Wordpress处于活动状态。
file://
http://
和Manage Servers
答案 42 :(得分:0)
就我而言,这要容易得多。我关闭了本地Windows防火墙。然后重新加载comp,启动xampp并再次启动apache。然后打开防火墙。
答案 43 :(得分:0)
您可以采用上述解决方案。通过在您的“ httpd.conf”(C:\ xampp \ apache \ conf \ httpd.conf)文件和“ httpd-ssl.conf”(C:\ xampp \ apache \ conf \ extra \ httpd-ssl.conf)文件。 如果问题仍然存在,则可以使用Skype端口进行检查。
但是在我看来,这是不同的。我必须在“ server.crt”(C:\ xampp \ apache \ conf \ ssl.crt \ server.crt)文件中进行更改。尝试在管理模式下从命令行运行xammp apache。 “ C:\ xampp \ apache \ bin \ httpd.exe” 这将给您错误-在哪个文件和-哪一行。同样,server.crt文件中有一个错误,为空白。 如果您在其他任何系统上都运行过xammp,只需复制此文件(C:\ xampp \ apache \ conf \ ssl.crt \ server.crt)的内容,然后粘贴到server.crt文件中,即可完成!>
感谢和问候 阿卡纳语
答案 44 :(得分:0)
如果以上所有答案均无效,请执行此操作。注释掉php.ini文件中的所有扩展名。
通过添加;注释每个活动的扩展名;在每条延长线的开头。例子
;;; extension = bz2
我放了3 ;;;因为我想知道我已经注释掉的那些,所以当我回到德堡时,哪个有问题,对我来说很容易看到我注释了哪些。
确保所有扩展名=所有注释都被注释掉。
运行您的apache服务器。
要获取问题所在的扩展名,请在重新启动服务器时一一取消对扩展名的注释,直到您发现问题所在为止。
答案 45 :(得分:0)
在我的情况下,Windows IIS服务已经使用了端口。 您可以从cmd检查端口是否已被使用。打开cmd并运行以下命令:
netstat -ano
如果IIS正在使用它,则可以通过以下命令将其停止。以管理员身份打开cmd,然后:
iisreset /stop
现在尝试运行XAMPP,它应该可以工作。
答案 46 :(得分:0)
如果更改端口不能解决以上建议的问题,并且如果您可能已经在使用文件目录结构(例如,像我一样在安装后更改文件夹的名称),则可以尝试以下操作,
例如,就我而言,我已将XAMPP的主安装文件夹名称从 Xam 更改为 Xampp
因此在编辑器中更改此内容:
Define SRVROOT "G:/Xam/apache"
ServerRoot "G:/Xam/apache"
DocumentRoot "G:/Xam/htdocs"
<Directory "G:/Xam/htdocs">
收件人
Define SRVROOT "G:/Xampp/apache"
ServerRoot "G:/Xampp/apache"
DocumentRoot "G:/Xampps/htdocs"
<Directory "G:/Xampps/htdocs">
编辑器中还有许多其他这样的实例,只需查找并替换其中的每个实例即可。
对于 Apache(httpd-ssl.conf)也是如此。
答案 47 :(得分:0)
我遵循了 @ user2314737 的建议(他的answer在第1页上),并启用了“配置”下的“显示调试信息”,该选项在重启xampp后向我显示< strong>我的安装路径中不允许有空格“” 。
我的路径是D:\ Program Files(x86)\ xampp \,所以我将其重新安装到D:\ xampp \,然后它起作用了。
答案 48 :(得分:0)
我刚在xampp v3.2.2 [win 10 pro x64]上遇到此错误,
我首先尝试在admin cmd中运行“ net stop http”命令,但是它没有解决问题,所以我继续尝试“ netstat -abno”命令,然后发现ssl端口(443 )被vmware使用。
因此,我的建议不仅是寻找阻塞端口80的端口,还寻找使用端口443的潜在程序。因为我真的不喜欢将默认端口号更改为8081和4433。
所以这是解决此问题的方法...
首先键入以下命令
net stop http
然后尝试启动apache(如果仍然无法运行)。输入以下命令
netstat -abno
,您肯定会得到那个麻烦的应用程序,它耗尽了您宝贵的端口。
复制pid,然后使用以下命令
taskkill /f /pid PID
其中PID是您复制的pid。
希望这对某人有帮助。
答案 49 :(得分:0)
就算我遇到了这个问题,我也解决了它。
首先,我尝试卸载Skype,但这没有用。但是在Windows 10桌面上,默认情况下我安装了IIS(Internet信息服务器),它指向端口80。
我所做的就是将端口号更改为8081,然后重新启动XAMPP,这对我有用。
但是我没有使用IIS。
这是指向https://support.microsoft.com/en-in/help/149605/how-to-change-the-tcp-port-for-iis-services
的链接答案 50 :(得分:0)
在我的情况下,我编辑了http.conf文件,因为我希望localhost可以被网络上的其他计算机访问,并且没有在我的网络适配器上设置静态IP。我还检查了netstat,发现没有人使用80端口
所以我打开了cmd并键入了
ipconfig
我还打开了http.conf并搜索(CTRL + F)for&#34; Listen 80&#34;。如果没有注释,它上面的行使localhost可以通过网络访问。它看起来应该是这样的:
Listen 192.168.93.3:80
比较ipconfig命令的结果,我看到我当前的ip地址不同于http.conf文件中的那个。所以我将http.conf文件中的ip地址更改为当前分配给我的IP地址并且有效。
答案 51 :(得分:0)
很可能你有另一个正在运行的“mysqld”进程杀死它然后重新运行xampp MySQL你没有得到任何错误。
答案 52 :(得分:0)
通常会发生xampp
端口错误,因为尝试访问的默认端口80
xampp
正在被另一个应用程序使用。大多数时候,这个应用程序是Skype
所以,你有两种方法来解决这个问题:
答案 53 :(得分:0)
在Windows 8.1上从5.6.8安装最新的5.6.12对我有用。
答案 54 :(得分:0)
我上面收到了同样的错误,导致它的原因是在'httpd-vhosts.conf'文件中我在<Directory>
标签内添加了评论......
<Directory "*PATH TO MY FOLDER*...">
AllowOverride All
Require all Granted ## This directive could/should be set to denied.
</Directory>
一旦我删除了评论,Apache就开始了。我想我应该把评论放在自己的路线上。我只是想,就像其他网络代码一样,它可能就在那里。
答案 55 :(得分:-1)
如果您使用Skype,则会收到此错误。
只需按Ctrl + Alt + Del goto 任务管理器选择Skype并单击结束任务,然后在Apache启动后返回并启动 Apache 成功。然后再打开Skype,现在两者都能正常运行。
无需更改任何端口。