xampp中的apache将无法启用 - 之前的工作

时间:2012-02-03 20:31:11

标签: windows apache installation xampp

我最近在我的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 

我怎样才能让它发挥作用?

11 个答案:

答案 0 :(得分:12)

刚刚遇到这个非常好的博客,关于Apache无法正常工作。我认为如果你有apache启动问题,它真的很好引用。

apache friends

以下是我从链接中注意到的步骤:

  • 检查xampp文件夹是否在包含空格或括号的文件夹中,即(Program Files(x86)
  • 确保您已运行\ xampp \ setup_xampp.bat(可能是管理员)
  • 在CMD中运行-netstat -a(或查看Xampp控制beta 3 - 并按下netstat按钮......),确保端口80上没有任何运行(在win 7上很多时候它实际上是skype使用端口80)(退出Skype并重试,如果是这样,在Skype中 - >选项 - >>高级 - >确保“使用端口80作为替代复选框未选中”
  • 如果“system”正在使用端口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,然后再试一次。

如果您认为其他任何步骤也可能导致问题,请发表评论。

答案 1 :(得分:7)

我最终解决了它。 转到Xampp控制面板。选中“服务”复选框。 单击“SCM”按钮。 (或“服务”按钮,在“SCM”按钮上)。
然后我点击了服务列表中的“Apache”。打开它。
现在它在控制面板中标记为“正在运行”,“localhost”正常工作。

答案 2 :(得分:6)

几个月前我遇到过这个问题。您必须通过选中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。

答案 3 :(得分:4)

一:如果它作为服务运行,请检查Windows中的服务并确保它已停止。

二:如果它不是服务,它只是一个过程;进入任务管理器并找到httpd / apache并终止该过程。

三:确保以管理员身份运行xampp_start / xampp_control,在某些系统上这很重要。

我建议总是使用xampp_control,因为它可以快速显示Apache是​​否正在运行,即使最近发生了一些异常事件。

尝试

netstat -aon | more

如果这不起作用,看看是否有其他东西正在侦听该端口,并终止该过程。

您可能还希望编辑Apache的httpd.conf(可能在xamppdir / apache / conf中)以侦听另一个端口并查看它是否会启动。

答案 4 :(得分:2)

步骤:

  1. 更改这些行中的httpd.cong文件:

    Listen 8080

    ServerName localhost:8080 ( port as example, 8080)

  2. 现在,创建一个xampp.ini文件,xampp-control.exe位于该文件中并将代码放入其中:

    [PORTS]

    apache = 8080

  3. 现在重启xampp。

  4. 希望,它可以改变apache端口。但是如果您安装了oracle 10g客户端或安装了perl的任何软件,那么请执行下面的步骤:

    4.改变以下行:

    `# Perl settings`
    
    `Include "conf/extra/httpd-perl.conf"`
    

     `# Perl settings`
    
     `#Include "conf/extra/httpd-perl.conf"`
    

    现在重启xampp,它在8080端口正常工作。

答案 5 :(得分:1)

我在TeamViewer应用程序中发现了问题 - 它默认使用端口80。在高级设置下,我进行了更改,因此应用程序不会使用端口80或443进行传入连接。然后切换xammp并再次运行。它有效!

答案 6 :(得分:1)

我遇到了类似的问题,经过一番研究后发现,我的案例中的罪魁祸首是“万维网发布服务” W3SVC in iissvcs 组)。

在我的情况下停止此服务后,XAMPP中的Apache运行没有问题。

希望这有帮助

答案 7 :(得分:0)

我的XAMPP Apache突然无法启动,而且,虽然我没有特别得到该错误消息,但是因为我安装了Skype升级,而当我的PC启动阻止了Apache时,Skype接管了端口80 。我调整了一个Skype高级设置来解决这个问题。

答案 8 :(得分:0)

如果您的问题仍未解决,请扫描此页面以查看“Windows自动修复”链接。它对我有用:跑完工具,重新启动电脑,所有端口都打开,立即开启。

http://support.microsoft.com/kb/811259/en

GL

答案 9 :(得分:0)

这可能有助于其他人发布我的特定解决方案的原因。我最近交换了Zend Server CE for XAMPP(2.5)。必须使用Include指令为error_log设置VHOSTS文件。我遇到了SVN的问题,所以我擦掉了我正在进行全新安装的项目。但是,我在进行svn结账之前碰巧启动了XAMPP。那时我注意到apache正忙着...... Apache开始[端口80]业务。有人对这个帖子的评论让我想起了Include指令。我爬过目录并添加了一个空白的error_log和blammo! Apache很好地启动了。

这也可以帮助其他人:)

答案 10 :(得分:0)

在我的情况下,我通过打开xampp \ apache \ conf \ http.conf来解决它。

我将Listen 80改为Listen 2337 在那一行之上,我不得不添加Listen 127.0.0.1:80

然后我打开了xampp \ apache \ conf \ httpd-ssl.conf

我将Listen 80改为Listen 7332

然后我可以再次连接到localhost。