Nachfolgendes Tutorial beschreibt mögliche Lösungsansätze, wenn sich der Apache über das Control Panel von Xampp nicht starten lässt oder nach Start direkt wieder abschaltet.
Dieses Problem hatte ich selbst, so dass die hier beschriebenen Ansätze ziemlich genau meine Vorgehensweise widerspiegeln. Die hier dargestellten Infos sind aus vielen verschiedenen Foren zusammengetragen. Bei keinem Forum habe ich aber eine zusammenfassende Anleitung gefunden, dieser Beitrag soll das nachholen.
Hintergrund
Der Apache Webserver benutzt voreingestellt die Ports 80 und 443. Jeder Port (Netzwerkadresse, Anschluss) kann nur einmal verwendet werden. Da die Xampp Installation ne runde Sache ist und es dabei erfahrungsgemäß nicht zu Fehlern kommt, ist die Ursache meist darin zu suchen, dass andere Programme (Software) die Ports 80 und/oder 443 bereits verwenden, was den Start des Apache natürlich verhindert.
Programme auf Portverwendung überprüfen
Einige Programme sind bekannt dafür, die von Apache benötigten Ports zu benutzen und damit zu blockieren. Die folgende Liste zeigt Programme die erfahrungsgemäß eine Doppelbelegung der oben genannten Ports verursachen.
- Skype
- Kaspersky AntiVirus
- Zone Alarm Firewall
- manche McAfee Versionen
- Download Programme mit Webfrontend (Emule, Kazaa usw)
- XP Antispy
Dieser Auszug zeigt Programme die sicher auf vielen Rechnern verwendet werden, darüber hinaus lässt sich die Liste bestimmt noch um einige Einträge erweitern. Gehen wir ans Werk.
SKYPE
Skype reserviert standardmäßig nach der Installation die Ports 80 und 443 als Alternative für eingehende Verbindungen. Diese Einstellung lässt sich über Optionen aufheben.
Skype Einstellungen über AKTIONEN / OPTIONEN aufrufen und dann unter der Auswahl ERWEITERT / VERBINDUNG das Häkchen bei „Ports 80 und 443…“ entfernen, als letztes Skype neustarten.
KASPERSKY ANTIVIRUS
Im Hintergrund startet Kaspersky das Programm „Guardian“, welches offensichtlich mit dem Port 443 interagiert. Laut Auskunft von Kaspersky sollte das nicht der Fall sein. Erfahrungen anderer Benutzer zeigen aber, dass eine Deaktivierung des „Guardian“ oft hilfreich ist um den Apache zu starten.
ZONE ALARM
ist ein Firewall Programm, was den Einbruch von außen verhindern soll. Aus diesem Grund macht Zone Alarm auch erstmal so gut wie alle Ports dicht. Das Programm bedarf daher einer sorgfältigen Konfiguration, da es sonst sicher auch über Xampp hinaus bei anderen Programmen (z.B. Dreamweaver) zu Problemen kommen kann. Ich selbst nutze ZoneAlarm nicht, daher kann ich nur aus einer früheren Erfahrung sprechen. Da war es so, dass ZoneAlarm beim Startversuch des Apache direkt mit einem Warnhinweis ansprang. Dort hatte ich die Auswahl dieses Programm auf Vertrauenswürdig zu stellen, was die entsprechenden Ports mit einschließt. Manuell kann man Ports meines Wissens nur bei Zone Alarm Pro freigeben, dort über: ControlCenter — Firewall — Main — Custom
Erfolg gehabt? Am besten nach den einzelnen Versuchen den Rechner neustarten, um sicher zu gehen, dass Änderungen auch übernommen wurden.
Weitere Maßnahmen
Sollten die typischen oben genannten Programme nicht für die Port Blockierung verantwortlich sein, muss der Sache etwas genauer auf den Grund gegangen werden. Schaue wir dazu etwas tiefer ins System.
EINGABEAUFFORDERUNG
Variante 1:
Windows Taste + R / „cmd“ Befehl ausführen
Variante 2:
Start/Programme/Zubehör/Eingabeaufforderung
PORTS ÜBERPRÜFEN
Im nächsten Schritt geht es darum die belegten Ports zu überprüfen. Dazu tippen wir in die Eingabeaufforderung folgenden Befehl ein und bestätigen mit ENTER:
netstat -a -n -o
In meinem Schaubild ist in Zeile 2 der Aktiven Verbindungen zu erkennen das der Port (lokale Adresse) 443 von einem Programm belegt ist. Das Programm selbst ist in der letzten Spalte mit einer ID hinterlegt. In meinem Fall ID 2692.
PROGRAMM IDENTIFIZIEREN
Als nächstes muss das Programm welches meinen Port belegt identifiziert werden. Dazu benötigen wir die PID aus dem Schaubild vorher. Folgende Befehlszeile identifiziert das Programm:
tasklist /fi „PID eq 2692“
Im dritten Schaubild wird das Ergebnis nach bestätigen mit ENTER angezeigt. Mein Port 443 wird also von einem Programm names PMB.exe (Pando Media Booster) blockiert. Das kann bei euch natürlich auch ein ganz anderes Programm sein. Im nächsten Schritt geht es darum dieses Programm zu deaktivieren um für den Apache den entsprechenden Port freizugeben. Hier ist etwas Vorsicht geboten, da es sich um ein laufendes Programm handelt. Das Beenden über den folgend gezeigten Weg führt dazu, dass evtl. nicht gespeicherte Daten des Programms verloren gehen.
TASKMANAGER
Im Taskmanager bekommt man einen Überblick über die laufenden Programme und im Hintergrund laufende Prozesse. Aufruf des Taskmanagers erfolgt über die Tastenkombination STRG + ALT + ENTF. Wechselt in der folgenden Ansicht dann auf das Register Prozesse. Jetzt muss unter Prozesse nur noch das vorhin identifizierte Programm gesucht werden, bei mir ist die PMB.exe direkt ohne zu scrollen zu erkennen.
PROGRAMM DEAKTIVIEREN
Mit der Maus das entsprechende Programm im Taskmanager markieren und dann unten rechts auf PROZESS BEENDEN klicken. Hier ist ein wenig Vorsicht geboten, da die Form der Prozessbeendigung zu Instabilität des Rechners führen kann. In der Regel belegen aber keine wichtigen Systemprogramme die Ports 80/443, so dass es nur in den seltensten Fällen zu Problemen mit Windows kommen wird.
Solltet ihr feststellen, dass sowohl Port 80 als auch Port 443 blockiert sind, müsst ihr die Schritte natürlich für beide Ports durchführen und die entsprechenden Programme beenden. Gleiches gilt für den Standard MySQL Port 3306, falls sich auch MySQL über das Xampp Panel nicht starten lassen will.
Abschließende Maßnahmen
Wenn das Programm eh unnütz ist, dann einfach deinstallieren, somit habt ihr die Ports dauerhaft frei. Wollt ihr das Programm behalten überprüft ob es sich beim Systemstart (Windows) automatisch aktiviert, was im Umkehrschluss bedeutet, dass es vor jedem Apache Start deaktiviert werden muss. Ihr könnt den automatischen Start des Programms auch deaktivieren. Dazu Windows Taste + R aufrufen, msconfig eingeben und mit Enter bestätigen, wählt dann das Register Systemstart und sucht nach dem entsprechenden Programm. Bei mir steht der Pando Media Booster tatsächlich im Systemstart drin. Falls ihr anhand des Programmnamens nichts passendes findet, könnt ihr die Befehl Spalte breiter ziehen, dort findet ihr den Namen der .exe Datei, wie sie auch in der Eingabeaufforderung angezeigt wurde. Aus dem Systemstart entfernt wird das Programm jetzt in dem ich einfach den Haken entferne und mit OK bestätige. Diese Änderung wird erst nach einem Neustart des Rechners gültig.