很多人遇到过appache启动时报端口占用而不能启动的问题,这个解决办法我想大家都清楚了,这里就不说这种情况了。现在要谈到的是你并没有其它程序占用你的端口,而且httpd.conf配置也没啥错的情况下,有时appache却没法正常启动。
先讲一下场景吧:在上次关机前,apache是正常的,并且没改过httpd.conf文件,同时也没新装过软件。本次开机启动时却发现apache不能正常启动了。关机再重启,问题仍旧,再重启,问题又没了。以此反复多次,时有时无。
于是先查占用端口 cmd /c netstat -ao ,从列表中看,80端口显示 TCP    0.0.0.0:80             qbin:0                 LISTENING       4 
而PID为4的进程并不是一个应用程序,而是系统在监听,这是正常的(你也没法结束进程)。因此查看IIS并没有启动,而且IIS很早前就是禁掉的了,那为什么还是报系统占用的80呢?
最后查到这不是什么端口占用,而是microsoft一向的作风,你禁了IIS,它平常听话,但有的时候却出来捣乱,这个捣蛋鬼正是“World Wide Web Publishing Service”,进serveces将它结束掉,并且别忘记了将它设成手工启动。
现在重新打开apache就不会出错了。
小结: 在windows系统下,经常由于系统更新等原因而自动会开出一些后台的服务,如果这个服务和你将的应用程序占用了相同的资源,就看谁先启动完成,后者就会出现启动不了(或改用其它资源后者也启动成功了)。除了禁用掉“World Wide Web Publishing Service”服务外,你还可将该service的启动设成delay模式,这样它就在apache之后才开始启动了,就不会影响到你的apache了。
说真的,要不是好多公司和ZF都用windows操作系统的话,我们还是用linux省事多了,那样就不是电脑驾驶你了