Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I was trying to install Zend Server CE on my computer but when I got to the point were I need to choose the port for my Web Server it says: "Web Server Port: 80 Occupied". So I decided to check what is using Port 80 with CMD by typing: "netstat -o -n -a | findstr 0.0:80":

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

I check for PID:4 in Task Manager's Processes and Services. Seems PID 4 is "System".

So, what I want to know is how can I stop "System" (PID:4) from using Port 80?

INFO: I am using: Windows 7 64bit; Zend Server CE 5.5.0

share|improve this question
    
Wouldn't hurt to telnet a "GET / HTTP/1.1" to 127.0.0.1 and see what comes up. –  ultrasawblade Oct 30 '11 at 3:18
    
@ultrasawblade How exactly do I do that? –  CyberOPS Oct 30 '11 at 3:28
1  
Run telnet 127.0.0.1 80 and then past that line in and press enter twice. If you're running Windows 7, you need to install telnet client from "add and remove Windows features" first. –  billc.cn Oct 30 '11 at 22:35
    
World Wide Web Publishing service in Windows 8 64 for me did the trick. –  user187014 Jan 10 '13 at 19:17

4 Answers 4

up vote 29 down vote accepted

Ok, after searching the web for a while I found solution to my problem.

Just follow these steps to diagnose and resolve your issue:

  1. Get pid that is listening port 80: netstat -nao | find “:80″

  2. Open task manager, go to processes tab and check “PID” in Menu/View/Select Columns…, then look for the process using the PID found in last step.

  3. If it is a normal application or IIS, disable it or uninstall. Some programs (such as Skype) have the option to disable its use of port 80.

  4. If it is a System Process—PID 4—you need to disable the HTTP.sys driver which is started on demand by another service, such as Windows Remote Management or Print Spooler on Windows 7 or 2008.

    There is two ways to disable it but the first one is safer:

    1.

    • Go to device manager, select “show hidden devices” from menu/view, go to “Non-Plug and Play Driver”/HTTP, double click it to disable it (or set it to manual, some services depended on it).

    • Reboot and use netstat -nao | find “:80″ to check if 80 is still used.

    2.

    • Launch RegEdit.

    • Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • Change the value of "start" to 4, which means disabled.

    • Reboot your computer.

My solution was step 4.

share|improve this answer
    
After seeing a ton of answers on SO and SU - this is the only one that worked. I disabled everything else, and http.sys was still screwing around, and I didn't really want to make a registry change because I'd probable forget where it lived, so option 1 really helped me out. No reboot necessary. –  AndrewPK Apr 18 '12 at 16:21
    
Without this service I cannot run the printer spooler... However with this service I can not run Apache on port 80!! –  Tobia May 16 '13 at 6:27
    
I know Thank you is not part of commenting but I've been searching for weeks and from hundreds of results, 4.1 above is the ONLY one that worked. Thanks a million. I'd donate all my rep to you if I could –  Onimusha Sep 5 '13 at 8:41
    
Where is the "Non-Plug and Play Driver" tree in the device manager of Windows Server 2012? –  l19 Dec 21 at 19:16

I just had this issue after installing Windows 8 Pro - Build 9200. I tried several methods but couldn't get any of them to work. This one, however, fixed it.

You need to change the binded IP address for HTTP.SYS

netsh http add iplisten ipaddress=::

http://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/

share|improve this answer
    
This solution is great, when you need to both run a server that does not use http.sys, and one that does. –  Thor Jacobsen Feb 11 '13 at 21:29

On my case it was WebMatrix. See possible solutions (including this one) here: http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Basically:

Open Services from Administrative Tools and locate “Web Deployment Agent Service”. Stop the service and set it’s startup type to “Manual”.

The Web Deployment Agent Service is deployed with WebMatrix and was the cause of my woes. It may also be distributed with other applications installed using Microsoft’s Web Platform Installer.

share|improve this answer

PID 4 is hard coded to be the "System" process which is part of the system kernel.

If the port is occupied by the system, you probably had IIS enabled. See http://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-that

share|improve this answer
    
I have uninstalled IIS 7.5 Express thinking that would help. Maybe I have to restart? I am going to try that. –  CyberOPS Oct 30 '11 at 3:05
    
Nope. Problem still persists. –  CyberOPS Oct 30 '11 at 3:19
    
Do you have IIS 7.0 (the one shipped with Windows 7) installed as well? Normally if you just stop w3svc, the port will be closed. –  billc.cn Oct 30 '11 at 13:34
    
Nope. And as far as I know, I shouldn't have any other webservers installed either. –  CyberOPS Oct 30 '11 at 20:52
    
Could you run netstat again but only post the ports that are LISTENING? –  billc.cn Oct 30 '11 at 21:12

protected by Community Jun 24 '13 at 16:47

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.