一:启动Apache,当出现如下报错时:
可以分析得到出错原因是其需要的80端口被占用了
解决方法一:
1、首先cmd,运行netstat -abon这个命令,查看80端口的网络连接情况,可以发现80端口被PID=4的进程占用了
2、接着打开任务管理器,查看PID=4的具体是什么进程
(注:win7系统在进程选项卡里左击”查看“,再点击”选项列“,勾选弹出框中的”PID“,确定即可查看进程PID)
可以看到PID=4的进程描述是NT kernel & system,该进程是Http.sys。它是http API的驱动组件,Http栈服务器。该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行。这就是阻止Apache运行的原因,因为Http.sys占用着80端口。
3、然后用“netsh http show servicestate”命令可以找出是哪个应用程序在使用Http.sys。我的是被“sql server ”的“reportserver”占用了。那么需要到任务管理器找到“reportserver”并结束该进程。这样就可以启动Apache了。成功启动的显示为:
或者用命令禁用它:
运行net stop http
按y 确定
再运行 Sc config http start= disabled
好了,现在启动Apache,可以启动了。
再查看一下netstat -abno
发现pid 4占用了445端口。
解决方法二:
发现出错原因是80端口被占用,那就修改Apache的使用端口,改为81。
步骤:点击Apache的“config”选项,再点击弹出的第一个选项,用“ctr+f”组合键查找80,并把80都改为81。这时启动Apache就可以成功了。
二:当启动mysql时,出现如下错误:
原因是3306端口被占用了,那么用”netstat -abon“查看3306端口被谁占用了,拿到PID后任务管理器找到相应的PID并结束该进程,即可启动mysql。
成功启动mysql的显示如下
但是我的上方显示有点奇怪,虽然mysql启动成功了,还是没能像Apache一样变绿,如下图:
Apache和mysql都成功启动后,当Apache的使用端口为80,443时,网站“http://localhost””https://localhost"都可以访问,缺少443时“https://localhost"会访问不了。不过不碍事。
小结:启动不了Apache是80端口被占用,启动不了mysql是3306端口被占用,怎么看被谁占用呢,用netsh http show servicestate这个命令查看,拿到进程名后就在任务管理器结束它。
具体解决方案的链接是:https://blog.csdn.net/maxsky/article/details/45725109