1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

XAMPP kann nicht starten - an Port 80 wird vom System gelauscht.

Discussion in 'Software allgemein' started by Skywalker309, Jun 19, 2009.

Thread Status:
Not open for further replies.
  1. Hallo zusammen,
    ich habe seit kurzem das Problem, dass wenn ich nach http://localhost surfe, mir nur eine weiße Seite dargestellt wird. Sprich mein lokaler XAMPP will nicht mehr funktionieren. Ich habe festgestellt, dass XAMPP nicht starten kann, da ein anderes Programm schon auf Port 80 läuft. Also habe ich mir mal netstat angeschaut und folgendes ist dabei rausgekommen:

    Port 80 wird also von PID 4 gebraucht, was nach dem Taskmanager "System" ist. Also hab ich mal Google bemüht und etwa 3 Stunden lang recherchiert. Viele hatten ein ähnliches Problem wie ich, aber keine der vorgeschlagenen Lösungen funktionierte bei mir.

    1. In der Registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
      den DWORD(32) NORUN mit dem Hexwert 1 versehen.
      Quelle: Thought Patterns
    2. XAMPP als Admin ausgeführt und versucht Apache zu starten.
      Quelle: Apache Friends
    3. Apache in der httpd.conf auf Port 8080 laufen lassen. Ergebnis: funktioniert einwandfrei bei http://localhost:8080/, wonach das Problem nicht Apache-intern liegen kann. Allerdings habe ich keine Lust hinter meine URL's jedesmal 8080 hintendranzuschreiben, bloß weil ein Programm, welches ich nicht brauche, meinen Port 80 blockiert.
    4. IIS deaktivieren. Unter Systemsteuerung -> Programme und Funktionen -> Windowsfunktionen ein- und ausschalten alle IIS-bezogenen Programme und Dienste deaktiviert.
    5. Unter Verwaltung -> Dienste geschaut: Ich kann spontan kein Dienst erkennen, der im leisesten Port 80 blockieren könnte. Ich kann bei Bedarf eine Liste aller aktiven Dienste posten, ist aber recht lang, weshalb ich sie vorerst mal nicht poste.
    6. Im Ereignisprotokoll geschaut und folgende Fehlermeldungen entdeckt, die jedesmal auftreten, wenn ich versuche Apache zu starten (chronologisch gelistet):
    7. Die Fehlermeldungen aus dem Ereignisprotokoll gegoogelt, wobei mir die gezeigten Lösungen nicht weitergeholfen haben.
      --> Google-Suche nach der ersten Fehlermeldung

    Zu meinem System:
    Windows Vista Home Premium 64bit
    Mittlerweile bin ich auch recht verzweifelt, da nach dem Neustarten der Apache unter Umständen läuft. Jedoch nicht immer. Da ich den Apache aber ******** benötige, frage ich nun hier nach, in der Hoffnung, dass mich jemand auf den richtigen Weg lenken kann.

    Gruß
    Skywalker
     
  2. kalweit

    kalweit Hüter der Glaskugel

    Versuch mal "netstat -ab", das versucht dir die auslösenden Programme aufzudröseln. Damit kommst du auch an Prozesse in Containern wie svchost.sys.
     
  3. derblöde

    derblöde Megabyte

    Versuch mit Process Explorer bzw. Process Monitor herauszufinden, was den Port blockiert.
    Dass XAMPP als Testsytem gedacht und unter Sicherheitsaspekten nicht zu empfehlen ist, ist schon klar?
     
  4. Ich hatte mal das problem das wenn ich Skype an hatte das er den port 80 belegte... wenn du skype an hast schließ es mal und versuch es erneut
     
  5. Ok, ich konnte mein Problem jetzt hoffentlich lösen. An Skype lag es nicht.

    Was ich gemacht hab, für alle die das gleiche Problem haben:
    cmd.exe starten und folgendes eingeben
    Code:
    net stop http
    sc config http start= delayed-auto
    
    Jetzt XAMPP starten, falls man den Computer nicht neustarten will... und folgendes wieder in die cmd.exe eingeben:
    Code:
    net start http
    net start xxxxxxx
    
    Anstelle der xxxxxx kommen alle Dienste, die ihr vorher durch net stop http angehalten habt (die werden in der cmd angezeigt) hin. Sonst werden zum Beispiel keine Drucker angezeigt (dadurch, dass der Dienst Druckwarteschlange von http abhängt, wird dieser natürlich auch noch beendet.) Alternativ zum Starten aller Dienste von Hand kann an dieser Stelle neu gestartet werden.

    Erklärung:
    Mit net stop http wird der http Dienst (und alle die von diesem abhängig sind) angehalten. Da einer dieser Dienste (ich vermute schwer http selber) den Port 80 belegt hat, ist dieser nun freigegeben, weshalb XAMPP jetzt gestartet werden kann. Solange die Dienste angehalten sind, kann man bei dem Dienst http den Startmodus auf automatisch-verzögert stellen, sodass dieser theoretisch beim Booten nach dem Autostart von XAMPP gestartet werden sollte. Dadurch, dass XAMPP immer schon Port 80 belegt, wenn http versucht zu starten, wird es diesem nicht gelingen, den Port 80 von XAMPP zu klauen. Problem gelöst.

    Allerdings wüsste ich mal gerne, warum der Dienst http Port 80 braucht? Und ob man das auch irgendwie abschalten kann, denn eine optimale Lösung stellt der eben vorgestellte Weg nicht dar.

    Gruß Skywalker
     
Thread Status:
Not open for further replies.

Share This Page