萧歌的《天下第一妃》:XAMPP在windows下无法启动Apache一例
来源:百度文库 编辑:九乡新闻网 时间:2024/10/06 01:26:54
Last modified: 二月 23, 2011 周三
为了在本地测试一些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 toaddress 0.0.0.0:443
no listening sockets available, shutting down
Unableto 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: Addressalready 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的问题我不理解,不知道是不是有其他可行的解决方案又不影响这两个程序的使用。
Wu在其msn Spaces中提到:
修改 **\xampp\apache\conf\extra\httpd-ssl.conf ,里面有listen 433 ,将433改成别的。
(对个别文字有修改,引者注)
via http://unaftp.spaces.live.com/blog/cns!759FB653AEBAE1F1!357.entry
但是这样会不会影响Apache的https的使用还不知道,有待进一步验证。
另外,还有其它人提到QQ等程序也会占用443端口,具体问题我没有碰到。但是这说明类似的问题还是会有的,都可以参考这样的解决方法。