1.在xampp中启动Apache,发现启动失败
2.使用netstat查看端口,发现80端口被PID为4的进程占用:
3.打开任务管理器,表头右键,勾选PID,会发现PID为4的进程是个SYSTEM进程,描述为NT Kernel & System,尝试用鼠标右键菜单结束此进程,发现结束任务按钮为灰不可用。
4.微软社区提供有这些资料,所以我们的解决思路是禁用http.sys。I work on Http.sys technology at Microsoft and somebody sent me a link to this blog. I am a bit surprised by this behavior you are seeing on Windows7 Beta and with some help from you, I will like to find out the root cause of this issue so that we can take the appropriate action if needed.You are right, Http.sys uses port 80. It is the driver component for httpapi, the server http stack (You can find more info on this technology at http://msdn.microsoft.com/en-us/library/aa364434(VS.85).aspx ). In your case, some application is running which is using http.sys to listen on port 80. This is preventing Apache from using port 80. We offer a mechanism for applications to help control port sharing but I’ll need to look into the specific application that’s causing you this conflict. If you can give us the output of following command “netsh http show servicestate”, then it will allow me to find out which application is using http.sys. Since you have disabled http.sys, please follow these steps listed below before running the command:1. sc config http start= demand2. Reboot3. Run the command (netsh http show servicestate) as administratorAfter you have run this command, you can disable http.sys as follows:1. net stop htt2. Sc config http start= disabledPlease let me know if you face any issues in the process.Thanks,Niranjan
1.以管理员身份运行cmd。
2.运行net stop http
3.按y 确定
4.运行 Sc config http start= disabled
5.再次查netstat –ano发现pid 4的进程占用端口从80端口变为了445端口
6.现在启动Apache,可以成功启动了。到此咱们就解决了80端口被system进程占用的问题。
本示意图为win8.1系统专业版。不同系统版本会有细微区别,原理相同。