XAMPP 在windows 下无法启动 Apache 一例

为了在本地测试一些PHP程序,今天安装了XAMPP。XAMPP(apache+mysql+php+perl)是一个功能强大的建站集成软件包。但是安装之后却无法正常启动Apache,而别的如mysql却可以正常运行。后来发现是因为443端口被Vidalia(Tor组件)占用。退出Vidalia之后Apache就能够正常启动了。

症状

反复点击Start却始终显示:

Busy…

Apache started

Busy…

Apache started

然而就是不见那个绿底黑字的“running”字样。

排查问题

先上网搜索,大部分都是因为80端口被迅雷等程序占用而提示:

busy…
apache started [port 80]

via 解决Xampp中Apache无法启动的终极方法

但是回过头来查看本地Apache的事件日志,(X):\xampp\apache\logs下的error.log文件中显示:

(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。  : make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs

说明是与0.0.0.0:443端口绑定时出现问题。

问题解决

用到443端口的程序本来就不多,我这里最可疑的就是Tor了。退出Tor后,Apache就可以正常启动了。

这时再启动Vidalia就报错了:

十二月 27 15:34:04.703 [Warning] Could not bind to 0.0.0.0:443: Address already in use [WSAEADDRINUSE ]. Is Tor already running?

当然还可以通过cmd命令行直接查看有无程序占用0.0.0.0:443:

1、运行cmd,然后输入netstat -ano,回车;
2、查看开头几行包含0.0.0.0:443的那一行最后的pid,为几个数字,把这几个数字记下来;
3、启动“任务管理器”——“进程”,在“工具栏”——“选择列”前面的框里打上勾;
4、然后找到与刚才那个pid对应的是哪个程序,很容易就会找到,就是它与0.0.0.0:443进行了绑定(bind);

延伸

显然这样的解决办法不够好,如果我非要同时运行Vidalia和XAMPP怎么办?

对于绑定0.0.0.0:443的问题我不理解,不知道是不是有其他可行的解决方案又不影响这两个程序的使用。

另外,还有其它人提到QQ等程序也会占用443端口,具体问题我没有碰到。但是这说明类似的问题还是会有的,都可以参考这样的解决方法。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/xampp-windows-apache-start/>。转载请保留此信息及相应链接。

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>