XAMPP und der geblockte Port 80 - Der Apache will wieder nicht starten

In meinem Artikel über den geblockten SSL-Port habe ich zwei Varianten aufgezeigt, wie man den Apache zum Laufen bringt, wenn der Port 443 blockiert.
Bei den Kommentaren wurde mehrfach berichtet, dass auch der Port 80 klemmen kann und der Apache nicht starten will. Das Problem tritt sowohl unter Windows 7 als auch unter Windows 8 / 8.1 auf. Wenn man nach meinen Methoden den Prozess untersucht, welcher den Port 80 belegt, stoßt man auf einen System-Dienst, welcher nicht sehr aussagekräftig ist. Um dieses Problem nachzustellen wurde ein Windows 8.1 als virtuelle Maschine aufgesetzt und das Rätsel reproduziert.
Wenn man jetzt nach Installation den Apache von XAMPP startet und die Firewall-Regeln akzeptiert funktioniert der Apache reibungslos!

win8_firewall

xampp_apache_starts_1

Doch wer kann noch den Port 80 blockieren? Mit höchstwahrscheinlich werden es die Internetinformationsdienste (IIS) sein, denn diese beinhalten auch einen Webserver. Unter Systemsteuerung » Programme und Features » Windows-Features aktivieren oder deaktivieren …

win8_win_features_1

…kann man nachschauen ob die Internetinformationsdienste installiert sind.

win8_win_features_2

Diese werden beispielsweise installiert / aktiviert, wenn man mittels Visual Studio ASP.NET Seiten programmieren möchte.

Wenn der IIS aktiv ist, lässt sich der Apache nicht starten. Denn Port 80 belegt ja schon der IIS.

00:00:00  [Apache]  Problem detected!
00:00:00  [Apache]  Port 80 in use by "Unable to open process" with PID 4!
00:00:00  [Apache]  Apache WILL NOT start without the configured ports free!
00:00:00  [Apache]  You need to uninstall/disable/reconfigure the blocking application
00:00:00  [Apache]  or reconfigure Apache and the Control Panel to listen on a different port

Das Netstat-Tool von XAMPP zeigt uns an, dass Port 80 durch System blockiert ist. Standardmäßig startet der IIS den Webserver unter der PID 4.

win8_netstat_xampp

Wir könnten jetzt einfach den Dienst (WWW-Publishingdienst) deaktivieren, wenn jedoch der Dienst gebraucht wird, wie beispielsweise Visual Studio, ist das eine sehr schlechte Idee. Die bessere Lösung ist einen anderen Port für den IIS festzulegen.
Im Internetinformationsdienste (IIS) – Manager (Windowstaste » Internetinformationsdienste (IIS)-Manager eingeben; oder Systemsteuerung » Verwaltung » Internetinformationsdienste (IIS)-Manager) befindet sich unter [Rechnername] » Sites die Standardwebseite. Mit Rechtsklick auf “Default Web Site”

iis_settings_1

…kann man die Portbindung ändern.

iis_settings_2

Ein Klick auf Bearbeiten von der Sitebindung und wir können den Port beispielsweise auf 8080 ändern.

iis_settings_3

Jetzt wird der Port 80 nicht mehr blockiert und wir können den Apache mit dem XAMPP Control Panel starten.

xampp_apache_starts

Durch diese Port-Einstellung ist der Apache unter http://localhost erreichbar.

firefox_apache

Aber auch der IIS ist erreichbar und zwar unter http://localhost:8080.

firefox_iis