Apache port 80 in use: Windows 10 Solution

In XAMPP, the error "port 80 is already in use" or "port 80 in use by "unable to open process" with pid 4" usually occurs because some other app is using the port 80. In case there is some other port like 443 in this error, the issue is the same, the port in question is being used by some other application and one port cannot be used by two applications or software at the same time.
So in this port we will see how we can quickly fix this issue in windows 10.
You can check out video tutorial here:



Possible Quick Fix

First of all, I'll tell you some common apps that cause this issue, so you can close them and your issue might be fixed.
Some apps that have given be problems are:
  • Skype
  • VMWare
  • IIS
So, in case you have any of there running, end these and try again. Process from these might be running in background and not clearly visible in any window. To check, you can use task manager. Shortcut to open task manager is Ctrl + Shift + ESC.

task-manager-windows-10
Task Manager

Press those buttons simultaneously and you will see task manager open up. Find the process for the apps above by scrolling and checking the name and end those processes.
Check if you can start apache now, if you are still unable to start apache, let's move on to the next step with a sure shot solution.

Finding process that's using Port 80

If the quick fix didn't work for you or you don't have skype, IIS or VMWare open, then we'll use some commands to find the process that is using port 80.
Type CMD in start bar and right click on it to open it with Administrator privileges.
Command to Find a Process ID:

netstat -aon | findstr "80"

Once you run the command you'll see something like this:


As you can see in the highlighted part, that's the second column. The port in use is after the colon. So in that row, we find the details about the process that's using port 80, and in the last column, we can see that the process ID is 14276. Now in the following steps we'll see how we can kill that process


Finding service name for the process

You might want to know which service or application is using this process before killing it. So you can check the service name like this:

tasklist | findstr '"PID"

In the command, you need to replace PID with the process ID that is relevant to you. In our case the actual command is : tasklist | findstr "14276" as the process ID of process using port 80 was 14276.

Killing Process to Free Port 80

Now finally, we will kill the task that's using the port 80. You can kill the task with the following command:

taskkill /F /PID pid_number

Again, replace the pid_number with the porcessId relevant for you, in case of this example the command becomes: taskkill /F /PID 14276

That's it, now you should be able to run apache without any issues as the port 80 is freed now.

Comments