xampp中的apache无法打开-之前工作过
Posted
技术标签:
【中文标题】xampp中的apache无法打开-之前工作过【英文标题】:apache in xampp won't turn on - after it worked before 【发布时间】:2012-02-26 10:50:54 【问题描述】:我最近在我的 Windows 机器上安装了 Xampp。当我这样做时它起作用了,请参阅here。但是,现在apache不会打开。我意识到我没有正确关闭它(没有使用 xampp_stop),所以这可能是原因。
我得到的错误是:
make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
unable to open logs
我怎样才能让它工作?
【问题讨论】:
刚刚遇到了同样的问题。 Skype 是罪魁祸首。自动更新后,选项再次设置为使用端口 80。不得不再次禁用该选项。 【参考方案1】:刚刚遇到这个关于 Apache 不工作的非常好的文档博客。我认为如果你有 apache 启动问题,它真的很好参考。
apache friends
这是我从链接中记下的步骤:
检查 xampp 文件夹是否不在包含空格或括号的文件夹中,即 (Program Files (x86) 确保您已运行 \xampp\setup_xampp.bat(可能以管理员身份) 在 CMD 中运行 -netstat -a (或查看 Xampp control beta 3 - 并按下 netstat 按钮...),确保端口 80 上没有运行任何东西(在 win 7 上很多时候它实际上是 skype使用端口 80)(退出 Skype 并重试,如果是,请在 Skype --> 选项 ->> 高级 --> 确保未选中“使用端口 80 作为替代复选框” 如果“系统”正在使用端口 80,那么它的窗口正在使用它(我已经读过这是一些 IIS 服务) - 如果您启用 xampp 作为服务并重新启动,那么 xampp 在系统之前获取端口 80。 .. 如果您不想作为服务运行,请打开 xampp\apache\conf\http.conf 并更改 apache 将运行的端口(搜索字符串“Listen 80”和“ServerName localhost:80”并更改 80换成别的东西,例如:“180”) 确保您以管理员身份运行 Xampp control.exe 暂时停止你的防火墙,看看它是否被停止(然后再次尝试启动 apache)如果是,在 windows 防火墙中创建一个例外 检查您的防病毒软件是否没有阻止它。 如果您运行的是 Windows 7 64 位终极版 (sp1)(就像我一样) - 那么您可能仍然遇到问题(就像我一样) 最后一次尝试是删除xampp文件夹,并下载以前版本的xampp,然后再试一次。如果您认为其他任何步骤也可能导致问题,请发表评论。
【讨论】:
这是 Skype(在另一个用户上,所以我最初没有注意到它正在运行)。谢谢@Hightower! 移动 xampp 后,单独运行\xampp\setup_xampp.bat
不是解决方案。在我发现我需要更改DocumentRoot
以指向xampp/apache/conf/extra/httpd-vhosts.conf
中所有虚拟主机定义中的新路径之前,我陷入了类似的情况。我希望它可以帮助某人【参考方案2】:
我最终解决了它。 转到 Xampp 控制面板。选中“服务”复选框。 单击“SCM”按钮。 (或“服务”按钮,有“SCM”按钮)。 然后我点击了服务列表中的“Apache”。打开它。 现在它在控制面板中标记为“正在运行”,并且“本地主机”可以正常工作。
【讨论】:
奇怪的是它不能作为一个进程工作!如果你知道为什么,请告诉我我很好奇。我们在安装 Windows 时遇到了类似的问题,我们的解决方案最终是重新安装 Windows,但原因不是 Xampp 的 apache 运行失败。 不,我不知道为什么,但是我们最终使用的 xampp 似乎有“beta 版 3”控制面板,之后常规控制面板打不开。跨度> 【参考方案3】:几个月前我遇到了这个问题。您必须通过选中 XAMPP 控制面板中的 Svc 复选框将 Apache 设置为自动 Windows 服务。将其设置为服务后,您需要重新启动 Windows,然后才能启动 apache。重新启动 Windows 后,您应该能够通过 XAMPP 控制面板停止和启动 Apache。
来自a blog post about it:
您必须这样做的原因是因为 Windows 7 有一个名为 http.sys 的服务,它会自动启动并使用端口 80。将 Apache 作为自动服务运行会导致 apache 在 http.sys 服务之前启动。这允许 apache 在 http.sys 启动之前获取端口 80。
【讨论】:
【参考方案4】:一:如果它是作为服务运行的,在windows中检查你的服务并确保它已经停止。
二:如果不是服务,就只是一个进程;进入任务管理器,找到httpd/apache,终止进程。
三:确保您以管理员身份运行 xampp_start / xampp_control,在某些系统上这很重要。
我建议始终使用 xampp_control,因为即使最近发生了一些异常事件,它也可以快速了解 Apache 是否正在运行。
试试
netstat -aon | more
如果这不起作用,请查看是否有其他东西正在侦听该端口,然后终止该进程。
您可能还希望编辑 Apache 的 httpd.conf(可能在 xamppdir/apache/conf 中)以监听另一个端口并查看它是否会启动。
【讨论】:
我正在尝试控制面板,但它不允许我启动 Apache。每次我单击“启动”Apache 时,它都会显示“忙碌”(首先显示Apache started [port 80]
,然后立即断开连接并显示busy
)。我如何知道它是服务还是流程?我认为这是一个过程,而不是服务,但我似乎无法在我的任务管理器中找到它......
ps - 如何检查我是否以管理员身份运行?
在控制面板中应该有一个检查,上面写着“svc”或“服务”;如果未选中,则它作为进程运行。要以管理员身份运行,请右键单击可执行文件,如果您拥有这些访问权限,您应该会看到“以管理员身份运行”选项。您需要先关闭面板的当前实例。
此外,最好确保在此期间您没有开始运行侦听端口 80 的其他进程。一种方法是转到您的浏览器并输入“localhost”。
不,没有运行,我检查了浏览器。我将两者都作为服务或进程进行了尝试,但两者都不起作用,因为 svc 问题是相似的 - 它说 Apache server started
然后断开连接。我刚刚尝试run as administrator
并遇到了同样的问题:( 我先关闭了所有相关的...【参考方案5】:
步骤:
在这些行中更改 httpd.cong 文件:
Listen 8080
ServerName localhost:8080 ( port as example, 8080)
现在,在 xampp-control.exe 所在的位置创建一个 xampp.ini 文件并将代码放入其中:
[PORTS]
apache = 8080
现在重新启动 xampp。
希望,它可以改变 apache 端口。但是,如果您已经安装了 oracle 10g 客户端或任何安装了 perl 的软件,请执行以下更多步骤:
4.从以下位置更改行:
`# Perl settings`
`Include "conf/extra/httpd-perl.conf"`
到
`# Perl settings`
`#Include "conf/extra/httpd-perl.conf"`
现在重启xampp,在8080端口就可以正常工作了。
【讨论】:
【参考方案6】:我在 TeamViewer 应用程序中发现了问题 - 它默认使用端口 80。在高级设置下,我进行了更改,因此应用程序不会使用端口 80 或 443 进行传入连接。然后切换 xammp 并再次运行。有效!
【讨论】:
【参考方案7】:我遇到了类似的问题,经过一番研究,发现我的罪魁祸首是“万维网发布服务”(W3SVC in iisvcs 组)。
在我的例子中,停止此服务后,XAMPP 中的 Apache 运行没有问题。
希望对你有帮助
【讨论】:
【参考方案8】:我的 XAMPP Apache 突然无法启动,虽然我没有收到具体的错误消息,但这是因为我安装了 Skype 升级,当我的电脑启动时 Skype 接管了端口 80,阻止了 Apache .我调整了 Skype 高级设置来解决这个问题。
【讨论】:
【参考方案9】:如果您的问题尚未解决,请扫描此页面以查找“Windows 自动修复”链接。它对我有用:运行工具,重新启动 PC,打开所有端口,立即开启。
http://support.microsoft.com/kb/811259/en
GL
【讨论】:
【参考方案10】:这可能对其他人有所帮助,这就是我发布我的特定解决方案的原因。我最近将 Zend Server CE 换成了 XAMPP (2.5)。 VHOSTS 文件必须使用包含指令设置到 error_log。我遇到了 SVN 问题,所以我擦除了我正在处理的项目以重新安装。但是,我碰巧在进行 svn 结帐之前启动了 XAMPP。就在那时,我注意到 apache 正在忙……Apache 开始了 [Port 80] 业务。有人对这个线程的评论让我想起了 Include 指令。我翻阅了目录并添加了一个空白的 error_log 和 blammo! Apache 启动良好。
这也可能对其他人有所帮助:)
【讨论】:
【参考方案11】:在我的情况下,我通过打开 xampp\apache\conf\http.conf 解决了它。
我将聆听 80 更改为聆听 2337 在该行之上,我必须添加 Listen 127.0.0.1:80
然后我打开了 xampp\apache\conf\httpd-ssl.conf
我将 Listen 80 更改为 Listen 7332
然后我可以再次连接到 localhost。
【讨论】:
以上是关于xampp中的apache无法打开-之前工作过的主要内容,如果未能解决你的问题,请参考以下文章
xampp中mysql无法启动, 显示busy.. mysql started [port 3306]
Windows 10、Xampp、Apache 无法启动,端口 80 正在使用中
XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12
XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12