XAMPP - Port 80 wird von "Prozess kann nicht geöffnet werden" mit PID 4 verwendet! 12

181

Ich habe zwei Tage lang versucht, dieses Problem zu beheben. Ich bin neu in dieser Art von Dingen, daher würde ich es begrüßen, wenn mir jemand sagen könnte, wie ich das Problem beheben kann.

Ich habe versucht, Skype zu löschen, aber das hat nicht funktioniert. Ich habe versucht, das World Wide Web auszuschalten. IIS aus. Nichts scheint zu funktionieren.

12:51:22 PM  [Apache]   Problem detected!
12:51:22 PM  [Apache]   Port 80 in use by "Unable to open process" with PID 4!
12:51:22 PM  [Apache]   Apache WILL NOT start without the configured ports free!
12:51:22 PM  [Apache]   You need to uninstall/disable/reconfigure the blocking application
12:51:22 PM  [Apache]   or reconfigure Apache and the Control Panel to listen on a different port
user3097839
quelle
2
Nein, ich möchte es hier eingeben, nicht jeder weiß alles über Computer. Ich habe um Hilfe gebeten, ich habe es gegoogelt und alles, was die Leute sagen, funktioniert nicht.
user3097839
Ah, das macht jetzt mehr Sinn. Versuchen Sie petri.co.il/quickly_find_local_open_ports.htm herauszufinden, wer Port 80 blockiert
Pekka
9
@ Pekka Ich arbeite mit Computern, seit ich nicht lange aufgehört habe, Windeln zu scheißen. Seit fast einem Jahrzehnt bin ich auch Programmierer. Ich habe diese Frage gegoogelt und zum Glück, weil die Personen, die diese Frage stellen und beantworten, diese verwenden Website fand ich schnell die Antwort. Obwohl dies wahrscheinlich auf Superuser migriert werden sollte, widerspricht es der Funktionsweise dieser Community, Menschen zu belästigen und sie dumm zu machen, eine legitime Frage zu stellen. Ich schlage vor, Sie finden einen anderen Sinn im Leben.
3
Nun, ich bin mir nicht sicher, wo dieses Ergebnis während Ihrer Suche erzeugt wurde, aber bei meiner Suche stand dies dank dieses Threads ganz oben auf der Liste. Genau das ist es, was diese Community anstrebt, eine gut sichtbare und bekannte Wissensbasis für diese Art von Dingen. Während ich zu schätzen weiß, was Sie sagen, wurde die Mission in Wirklichkeit dank des OP erfüllt.
@TechnikEmpire, aber die Tatsache, dass diese Frage jetzt ein hochrangiges Google-Ergebnis ist, ist Teil des Problems und nicht der Lösung. Das Google-Ergebnis enthielt bereits gute Antworten, bevor diese Frage gestellt wurde. Ich habe dies vor dem Kommentieren immer überprüft. Diese Antworten könnten jetzt durch diese Frage aufgrund der immensen Schlagkraft von SO bei Google nach unten gedrückt worden sein. Siehe auch Diskussion hier: meta.stackexchange.com/questions/160565/…
Pekka

Antworten:

354
  1. Öffnen Sie eine CMD-Eingabeaufforderung als Administrator und führen Sie den folgenden Befehl aus:

    net stop was /y
    
  2. Öffnen Sie das Dialogfeld Ausführen (drücken Sie Win+ R) und geben Sie Folgendes ein:services.msc

    Suchen Sie dann nach dem World Wide Web Publishing Service (WWW-Publishing Service) und dem Web Deployment Agent Service und beenden Sie diese. Sie sollten sie auch deaktivieren.

  3. Starten Sie Apache erneut mit XAMPP :)

Link Ref: https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Vo Quoc Cuong
quelle
15
Ich kann kein World Wide Web finden
Mohammad Kermani
4
Ein weiterer Weg, um Zugang zu den Diensten zu erhalten - gehen Sie zuControl Panel > System and Security > Administrative tools > Services
Al.G.
28
"SQL Server Reporting Service (MSSQLSERVER)" verwendet ebenfalls Port 80 und sollte daher gestoppt werden, wenn der MS-SQL-Server auf Ihrem Computer installiert ist.
Johnkarka
1
Irgendeine Idee, warum dies auftreten könnte? Ist es Windows douchey oder hackt jemand meinen Computer?
Stan Quinn
5
Ich habe die World Wide Web Publishing Services deaktiviert und das Problem wurde behoben! Danke dir.
Mike Stratton
139

Eine weitere sehr einfache Option besteht darin, Apache so einzustellen, dass er einen anderen Port überwacht. Klicken Sie dazu in derselben Zeile wie das "Apache" -Modul auf die Schaltfläche "Config", wählen Sie die Datei "httpd.conf" in der Dropdown-Liste aus und ändern Sie die Zeile "Listen 80" in "Listen 8080". Speichern Sie die Datei und schließen Sie sie.

Jetzt wird Port 80 vermieden und stattdessen ohne Probleme Port 8080 verwendet. Das einzige, was Sie zusätzlich tun müssen, ist sicherzustellen, dass Sie localhost:8080den Browser so einstellen, dass der Browser Port 8080 sehen kann. Andernfalls wird standardmäßig Port 80 verwendet und Ihre lokale Site wird nicht gefunden.

Dazu müssen Sie auch Apache neu starten, damit die Änderung wirksam wird.

Voila! Fest.

gtr1971
quelle
Ich habe ein Force-Upgrade auf Windows 10 erhalten und es hat meine XAMP-Installation unterbrochen. Diese Antwort hat es für mich behoben. Vielen Dank!
Ian
Dies funktionierte auch für mich, außer dass ich alles beendet habe, auf xampp_start in geklickt C:/xamppund es dann in Port 81 geändert habe. 8080 hat bei mir nicht funktioniert.
user3553260
1
Ich empfehle Ihre Lösung. In meinem Fall muss ich ASP .NET Application und PHP entwickeln. Wenn ich aufhöre, World Wide Web Publishing Servicekann ich nicht an meiner ASP-Anwendung arbeiten. Das Ändern des Ports ist für mich eine Lösung. Vielen Dank!
Mihkov
3
Zusätzlich zur Datei httpd.conf müssen Sie möglicherweise auch den Port von "Config"> "Service and Port Settings" ändern. Ändern Sie auf der Registerkarte "Apache" den Wert "Hauptport" in den neuen Port
Ian A
42

Ändern Sie in httpd.conf die folgenden Zeilen und starten Sie die Anwendung neu:

  • Listen 80 zu Listen 8080
  • ServerName localhost:80 zu ServerName localhost:8080

Wenn Sie auf "Start" klicken, kann die Anwendung weiterhin sagen, dass ein Fehler wie "Port 80 wird verwendet von" Prozess kann nicht mit PID geöffnet werden ... "verwendet wird, der jedoch weiterhin funktioniert.

Wenn der Fehler "Port 443 wird von" Prozess kann nicht mit PID geöffnet werden "enthält ..." enthält, müssen Sie sowohl httpd.conf als auch httpd-ssl.conf ändern.

In httpd-ssl.conf ändern:

  • Listen 443 zu Listen 4433
  • <VirtualHost _default_:443> zu <VirtualHost _default_:4433>
  • ServerName www.example.com:443 zu ServerName www.example.com:4433
Ogglas
quelle
Ich musste dies bei meinem Problem tun. Güte! Diese PID ist vom System.
Mzimhle
41

Auszug aus diesem Artikel :

  1. Gehen Sie zu Ihrem Ausführungsbefehl und geben Sie Folgendes ein:

    netstat -o -n -a | findstr 0.0:80

Die letzte Nummer hier ist die Prozess-ID, die sie verwendet. Dies ist meistens IIS oder ein anderer webbezogener Dienst und ist leicht zu lösen, aber von Zeit zu Zeit (sehr oft scheint es sich bei Google umzuschauen) scheint es sich um PID 4 zu handeln - was laut Windows Task Manager der NT-Kernel ist und System. Nicht sehr hilfreich, wenn man dies tötet, führt dies zu einem blauen Bildschirm des Todes.

Das Ding, das Port 80 blockiert, hat nichts mit IIS oder Web zu tun, es ist SQL Server Reporting Services. Deaktivieren Sie alles, was einem SQL Server-Dienst ähnelt, und starten Sie Apache erneut, ohne dass ein Neustart erforderlich ist.

Also Probleme mit PID 4 beim Abhören von Port 80? Überprüfen Sie Ihre SQL-Dienste und deaktivieren Sie sie.

UPDATE - Kommentar von @sangam:

Arbeitete auf einen Schuss. In meinem Fall stellte sich heraus, dass es sich um SQL Server-Berichtsdienste handelte. Ich habe den Dienst für alle installierten Instanzen gestoppt und es hat funktioniert (ohne Neustart des Computers).

chridam
quelle
6
Arbeitete auf einen Schuss. In meinem Fall stellte sich heraus, dass es sich um SQL Server-Berichtsdienste handelte. Ich habe den Dienst für alle installierten Instanzen gestoppt und es hat funktioniert (ohne Neustart des Computers). Danke dir.
Sangam
1
Sehr hilfreich. Vorher habe ich den Skype-Port geändert. und das Schließen der SQL-Dienste hat mir sehr geholfen. Vielen Dank
Waqar
2
Schließlich war es in meinem Fall auch MSSQL
Tom Sarduy
1
SQL Server Reporting Services (MSSQLSERVER) Anhalten für mich gearbeitet
Disturb
1
Danke, das war die Antwort für mich.
Balron
33

Möglicherweise müssen Sie den "Web Deployment Agent-Dienst" beenden.

Drücken Sie Win + R und geben Sie services.msc ein

Klicken Sie mit der rechten Maustaste auf Web Deployment Agent Service und wählen Sie "Stop".

Starten Sie XAMPP neu

Auch nach einem Doppelklick auf "Web Deployment Agent Service" können Sie den Starttyp auf "Manuell" setzen, sodass "Web Deployment Agent Service" nicht automatisch gestartet wird

Stephen Burrows
quelle
1
Gibt es möglicherweise ein Problem beim Deaktivieren dieses Dienstes?
Muhammad Muazzam
33

Daher habe ich beim Versuch, den Apache-Dienst zu starten, das gleiche Problem und möchte meine Lösungen mit Ihnen teilen. Hier einige Hinweise zu Diensten oder Programmen, die möglicherweise Port 80 verwenden:

  1. Skype : Skype verwendet standardmäßig Port 80/443. Sie können dies ändern Tools -> Options -> Advanced -> Connectionsund das Kontrollkästchen "Port 80 und 443 für zusätzliche eingehende Verbindungen verwenden" deaktivieren .

  2. IIS : IIS verwendet standardmäßig Port 80, daher müssen Sie ihn herunterfahren. Sie können die folgenden zwei Befehle verwenden: net stop w3svc, net stop iisadmin.

  3. SQL Server-Berichtsdienst : Sie müssen diesen Dienst beenden, da er möglicherweise Port 80 benötigt, wenn IIS nicht ausgeführt wird. Gehen Sie zu den lokalen Diensten und stoppen Sie es.

  4. VMware Workstation : Wenn Sie VMware Workstation ausführen, müssen Sie auch den VMware Workstation-Server - Port 443 - stoppen.

Diese Optionen funktionieren hervorragend bei mir und ich kann den Apache-Dienst ohne Fehler starten.

Die andere Option besteht darin, den Apache-Listen-Port von httpd.conf zu ändern und eine andere Portnummer festzulegen .

Hoffe, diese Lösung hilft jedem, der wieder vor dem gleichen Problem steht.

Peter T.
quelle
4
Meins war der SQL Server-Berichtsdienst. Vielen Dank!
Jayanga Kaushalya
Das Stoppen von w3svc hat mein Problem unter Windows 10 behoben. Tolle Antwort.
Nox
Wie können Sie feststellen, welche Dienste Port 80 verwenden? (Windows 10)
Chris Nielsen
Für mich funktionierte dies "IIS: IIS verwendet Port 80 als Standard, daher müssen Sie ihn herunterfahren. Sie können die folgenden zwei Befehle verwenden: net stop w3svc, net stop iisadmin"
Ravindra Singh
6
  1. Öffnen Sie den Task-Manager (Strg + Alt + Entf).
  2. Gehen Sie zur Registerkarte "Details".
  3. Sortieren nach PID-Nummer.
  4. Beenden Sie den Prozess, bei dem die fehlerhaft angegebene PID-Nummer verwendet wird.
  5. Starten Sie XAMPP neu.
Gnus
quelle
2
In meinem Fall ist es das System, das PID4 verwendet. Daher kann dies gefährlich sein.
Fusion
arbeitete für mich, da der Port von meinem anderen Server verwendet wurde. Und bedenken Sie auch den Kommentar von @ Fusion
Varshaan
6

Da die Frage von @johnkarka kommentiert wird, wird dieser Port auch vom SQL Server-Berichtsdienst verwendet. Nachdem dies gestoppt wurde, startete Apache einwandfrei.

  1. Gehen Sie zu "SQL Server Configuration Manager".
  2. Klicken Sie auf "SQL Server Reporting Service" und beenden Sie ihn

Geben Sie hier die Bildbeschreibung ein

Das Lustige ist, dass IIS in derselben Konfiguration einwandfrei funktionierte, Apache jedoch nicht. Der SQL Reporting-Dienst musste gestoppt werden, damit er auf dem Standardport (80) funktioniert.

Hammad Khan
quelle
4

Was für mich funktioniert hat, war das Stoppen der Internetinformationsdienste (IIS). Wenn Sie Windows 7 verwenden, klicken Sie auf die Schaltfläche Start und geben Sie in Ihr Suchfeld "iis" ein. Klicken Sie auf "Internet Information Services (IIS) Manager". Wenn das Fenster geöffnet wird und Sie davon ausgehen, dass keines der Symbole ausgewählt ist, sollten Sie im rechten Aktionsbereich auf Stopp klicken können. Mein XAMPP Apache wurde sofort gestartet. Hoffe, es hat alles für Sie geklappt.

midoriha_senpai
quelle
3

In Windows 10, um Port 80 freizugeben:

In meinem Fall öffne ich "Dienste" unter "Windows durchsuchen" (in der linken Ecke des Bildschirms), stoppe dann alle SQL Server-Dienste MSSQLSERVER und es funktioniert wieder

NP
quelle
3

Ich hatte auch dieses Problem und das Beenden von Diensten über Port 80 hat nicht geholfen. Ich habe es folgendermaßen gelöst (auf einem französischen Brett ):

  1. Starten Sie RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Ändern Sie den Wert von "start" auf 4 (deaktiviert)
  4. Starte deinen Computer neu

Ich bin mir nicht sicher, wie sich dies auf andere Dienste auswirkt, aber es hat das Problem dauerhaft gelöst, und bisher habe ich kein Problem gesehen.

Verwenden von Windows 10.

vard
quelle
2

Wenn SQLServer Reporting Services lokal ausgeführt wird, müssen Sie dies ebenfalls beenden.

Senthil
quelle
2

Ich hatte das gleiche Problem, aber in meinem Fall lief Apache bereits und aus irgendeinem Grund zeigte das XAMPP-Konfigurationstool dies nicht an. Dies geschah, nachdem ich XAMPP nach der Installation zum ersten Mal gestartet hatte. Nach dem Absturz der anderen Apache-Instanzen war alles in Ordnung und die Ports 80 und 443 waren wieder frei.

Bevor Sie also Änderungen an Ihrem System vornehmen, stellen Sie sicher, dass etwas so Offensichtliches wie das oben Genannte nicht passiert.

magnetronnie
quelle
2

"SQL Server Reporting Service" verursachte Probleme in meinem System. Nach dem Stoppen funktionierte Apache einwandfrei

yadavr
quelle
2

Ich habe das gleiche Problem, ich habe das Problem gelöst, nur deaktiviert

"BranchCache-Dienst" in Diensten.

Irgendwie Windows-Updates, dieser Dienst wird beim Start ausgelöst und verwendet 80 Ports. Wenn Sie über netstat überprüfen, können Sie sehen, dass das System verwendet wird, aber nicht verstehen, welcher Dienst verwendet wird.

Günay Gültekin
quelle
1
Das Deaktivieren dieses Dienstes nach jedem Windows 10-Update behebt das Problem
Matt
2

Nachdem Sie den Hauptport 80 auf 8080 geändert haben, müssen Sie den Port in der Systemsteuerung aktualisieren: Geben Sie hier die Bildbeschreibung ein Klicken Sie hier: Geben Sie hier die Bildbeschreibung ein Und hier: Geben Sie hier die Bildbeschreibung ein Speichern und starten Sie ihn neu.

Zeke
quelle
1

Klicken Sie in der Xampp-Systemsteuerung auf Dienste (Dateiname lautet services.msc, zusätzliche Informationen).

Suchen Sie zunächst nach IIS, falls es ausgeführt wird. Beenden Sie es (beenden Sie diese Dienstoption links, nachdem Sie auf den Dienstnamen geklickt haben.). Dies ist dann das Hauptproblem: Suchen Sie nach dem Webbereitstellungsdienst (nicht der genaue Name, obwohl zu Beginn eine Webbereitstellung vorhanden ist). Beenden Sie auch diesen Dienst. Versuchen Sie es erneut und Apache sollte funktionieren.

Wenn Sie Skype ausführen, beenden Sie dies ebenfalls, führen Sie Apache aus und starten Sie Skype

ytpillai
quelle
Normalerweise blockiert Skype Port 80, ist jedoch intelligenter als XAMPP und verwendet einen anderen Port, sobald festgestellt wird, dass 80 zu Apache Server gehört
ytpillai
1

Ich hatte das gleiche Problem, als ich MS WebMatrix installiert habe, IIS Server wurde der Port 80 blockiert, auf dem XAMPP ausgeführt wurde. Ich habe versucht, den World Wide Web Publishing Service zu finden und zu stoppen, konnte ihn jedoch nicht auf der Liste finden. Der beste Weg ist, einen Port zu ändern.

Bitte beziehen Sie sich auf diesen
Link ref.

Rango
quelle
1

Für Benutzer mit ASP.NET, C # oder SQL Server-Benutzern: Wenn Sie SQlServer ODER Visual Studio verwenden, tritt möglicherweise Ihr Port auf. Am einfachsten ist es, wenn Sie Befehl> servies.msc verwenden, den SQl Server Reporting Service suchen und dann beenden.

Sumanstm21
quelle
0

wenn der Dienst http.sys ist

Sie müssen die gebundene IP-Adresse für http.sys ändern

netsh http add iplisten ipaddress = ::

Funktionieren Sie einwandfrei, ohne das Betriebssystem neu zu starten.

mik3fly-4steri5k
quelle
0

Der Web Deployment Agent Service wird mit WebMatrix bereitgestellt und war die Ursache meiner Probleme. Es kann auch mit anderen Anwendungen verteilt werden, die mit dem Web Platform Installer von Microsoft installiert wurden.

Deinstallieren löste meine Probleme!

brunodotcom
quelle
Nein, ändern Sie einfach den Port, den der Server abhört.
Rango
0

Für mich funktioniert normalerweise: - Skype deaktivieren - Alle in services.msc angezeigten SQL Server-Prozesse deaktivieren - World Wide Web Publishing in services.msc deaktivieren

Iwona Kubowicz
quelle
0

Dies funktioniert normalerweise, nachdem Sie IIS Server und Skype gestoppt haben

N / A
quelle
0

XAMPP - Port 80 wird von "Prozess kann nicht geöffnet werden" mit PID 4 verwendet! 12

Führen Sie den Kommentar in der cmd-Aufgabenliste aus

und finden Sie heraus, welche PID und welcher Prozessname sich auf diesen jetzt geöffneten Fenster-Task-Manager beziehen

Sie können den Fenster-Task-Manager auch mit STRG + ALT + ENTF öffnen

Klicken Sie nun auf die Registerkarte Prozess und suchen Sie den Namen, der PID verwendet. Klicken Sie mit der rechten Maustaste darauf und beenden Sie den Prozess

Starten Sie jetzt die xampp erneut

Surendra Kumar Ahir
quelle
0

Ich hatte das gleiche Problem. Nach einigem googeln ist diese Seite angekommen. Da ich vermute, dass dieser Fehler verschiedene Gründe haben kann, hören Sie sich meine Erfahrungen an:

Xampp-Protokoll für rote Linien:

12:53:54 PM  [Apache] Problem detected!
12:53:54 PM  [Apache]   Port 443 in use by "Unable to open process" with PID 3908!
...

Schließlich stellte sich heraus, dass ich diese Codezeile in meinen PHP-Codes hatte:

$res = file_get_contents("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

Der Zweck dieses Codes war es, einen Spiegel des PHP-Ergebnisses von irgendwo auf meinem Server zu erhalten. Aber es steckt einfach in einer Schleife, die ihren eigenen Inhalt bekommt!

Ich habe Code repariert:

$res = file_get_contents(str_replace("my_uri.php" , "mirror_uri.php" , "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));

Dann habe ich Apache neu gestartet ... und dieser Apache-Fehler ist nie wieder aufgetreten.

Manchmal ist es daher ein guter Ansatz, nach wahrscheinlichen Haltepunkten in Ihrem Code zu suchen .

Hossein Khalesi
quelle
0

In Ubuntu können Sie standardmäßig keine privilegierten Ports [0 bis 1023] belegen. Abgesehen von der Angabe des Ports als 80 müssen Sie XAMP mit sudo ausführen.

Arun Joshla
quelle
-1

Ich schreibe das, weil ich keine Antwort auf die gleiche Frage finden konnte. In meinem Fall war die PID 2484.

  1. Sie müssen einen Prozess oder Dienst mit dieser PID finden: Öffnen Sie cmd (in Windows) und schreiben Sie:

    tasklist
    
  2. Suchen Sie Ihre PID in dieser Liste und lesen Sie den Namen des Prozesses oder der Dienstleistung.

  3. Jetzt können Sie dies mit dem Task-Manager beenden

  4. Finden Sie diesen Namen in der Prozessliste

  5. Klicken Sie auf Prozess beenden.

Das ist mein Fall. Möglicherweise müssen Sie services.msc öffnen und Service mit Ihrer PID beenden.

Auf meinem Computer xampp hat es gut funktioniert :)

Marcin Bąk
quelle