安装完后apache可以正常启动,后来不知道什么原因,重启电脑后apache无法启动。
查看系统日志里的应用程序,发现很多apache service 错误,点开看,里面是一些诸如:
Unable to open logs
no listening sockets available, shutting down
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : make_sock: could not bind to address 0.0.0.0:80
看第三个错误日志,貌似是说80端口被占用了。
打开cmd命令窗口,使用如下命令查看系统网络:
>netstat -ano
------------------------
说明
a:显示所有连接和监听的端口
n:用ip地址的形式显示地址和端口
o:显示和连接想关的进程id。
找到占用80端口进程的pid,我的电脑上为324.
然后打开任务管理器,点开进程,找到pid为324的进程,发现是一个叫inetinfo.exe的进程。
这是iis进程。原来是不知道什么时候又安装并启动了IIS服务,IIS服务默认也是使用80端口,冲突了。
网上有说直接kill掉这个进程,但是明显太粗暴。
可以这样:
进入计算机管理-->服务,
找到iis服务,
停止iis服务,
点右键-->属性,修改“启动类型”为“手动”,这样以后要用到IIS服务的时候可以再手工启动。
另外一个解决端口冲突的方法就是修改httpd.conf,把apache的监听端口改为其他的。