XAMPP und der geblockte SSL-Port - Der Apache will nicht starten

Man möchte lokal auf einer Windows-Maschine entwickeln. Als erstes downloadet man sich am einfachsten XAMPP, das geht schnell, das ist easy einzurichten, damit macht es einfach Spaß.
Doch dann kommt die Ernüchterung! Es wird das XAMPP Control Panel gestartet, aber der Apache will nicht starten. Prompt teilt und das Log folgendes mit:

Fehler: Apache wurde unerwartet beendet. Ursache könnte ein geblockter Port, fehlende Abhängigkeiten, fehlende Berechtigungen, ein Absturz oder ein Abbruch einer anderen Methode sein. Überprüfe die Datei "/xampp/apache/logs/error.log" und die Windows Ereignisanzeige für weitere Hinweise

xampp_error

XAMPP teilt uns ja glücklicherweise Fehlerquelle mit. Ein Port (oder mehrere) werden geblockt oder sind schon in Verwendung. Zuerst finden wir heraus welche Ports für den Standard-Port und den SSL-Port konfiguriert wurden. In der Regel ist es meist Port 80 und 443. Aber zur Sicherheit schauen wir nochmal nach. Wir gehen dazu in das XAMPP Control Panel und klicken auf Konfig » Apache (httpd.conf) und Konfig » Apache httpd-ssl.conf. In beiden Dateien gibt der Parameter “Listen” den konfigurierten Port an.

Standard-Port:

apache_default_port

SSL-Port:

apache_ssl_port

Wir gehen mal davon aus, das der Port (oder Ports) in Verwendung ist und können zwischen zwei Lösungsarten wählen.

Der einfache Weg

Im XAMPP Control Panel klicken wir auf Netstat und klicken auf Port um die Ports aufsteigend zu sortieren. Im günstigen Fall haben wir den Übeltäter gefunden:

xampp_netstat

Wir haben den Übeltäter gefunden! Die “vmware-hostd.exe” blockiert den SSL-Port. Wie wir dies ändern, erzähl ich euch am Ende des Posts. Wenn ihr es nicht erwarten könnt scrollt einfach nach unten.

Der interessante Weg

Im interessanten Weg gehen über die Kommandozeile um den Übeltäter zu finden. Dazu starten wir die “cmd.exe” (Variante 1: Start » cmd » Enter Variante 2: Windowstaste + R » cmd » Enter).
Im geöffneten Fenster geben wir folgenden Befehl ein:

netstat -a -n -o

Wir erhalten folgendes Ergebnis:

netstat_find_pid

Mit der PID (Indifikationsnummer welches eindeutig einem Programm zugeordnet ist) können wir Übeltäter ausfindig machen. Dazu merken wir uns die PID und geben diese in einem neuem Befehl ein:

tasklist /fi "PID eq 5844"

Jetzt bekommen wir die Anwendung heraus welche den Port blockiert:

netstat_find_process

Es ist wie erwartet wieder die “vmware-hostd.exe”. Wenn einem die exe nichts sagt, kann man per Suchmaschine genaueres erfahren ;) .

Die Lösung – VMware blockiert den Port 443

Wir haben für uns den Übeltäter gefunden und dieser lautet VMware. Da auf dem Entwicklungsrechner VMware Workstation installiert ist, starten wir es und begeben uns in das Menü “Edit » Preferences”. Unter dem Reiter “Shared VMs” finden wir den festgelegten Port 443.

vmware_preferences

Zum ändern des Port brauchen wir nur das Sharing deaktivieren und einen beliebigen Port wählen.

Als letzten Schritt begeben wir uns wieder in das XAMPP Control Panel und versuchen unser Glück erneut. Wir werden mit einem erfolgreich gestarteten Apache belohnt:

xampp_well_done