XAMPP - Port 80 używany przez „Nie można otworzyć procesu” z PID 4! 12

182

Próbowałem wymyślić, jak rozwiązać ten problem przez dwa dni. Jestem nowy w tego typu sprawach, więc byłbym wdzięczny, gdyby ktoś mógł mi powiedzieć, jak to naprawić.

Próbowałem usunąć skype, ale to nie zadziałało. Próbowałem wyłączyć sieć WWW, usługi IIS są wyłączone.

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
użytkownik3097839
źródło
2
Nie, zamierzam tu wpisać, nie wszyscy wiedzą wszystko o komputerach. Prosiłem o pomoc, przejrzałem go i wszystko, co ludzie mówią, aby robić, nie działa.
user3097839,
Ach, to ma teraz większy sens. Spróbuj petri.co.il/quickly_find_local_open_ports.htm, aby dowiedzieć się, kto blokuje port 80
Pekka,
9
@Pekka Pracuję z komputerami od niedługo po tym, jak przestałem krążyć w pieluchach, jestem programistą od prawie dekady i przejrzałem to pytanie i na szczęście, ponieważ osoby zadające i odpowiadające na to pytanie KORZYSTAJĄ z tego szybko znalazłem odpowiedź. Chociaż prawdopodobnie należy to przenieść do superużytkownika, dręczenie ludzi i powodowanie, że czują się głupio, gdy zadają uzasadnione pytanie, jest sprzeczne z funkcjonowaniem tej społeczności. Proponuję znaleźć inny cel w życiu.
3
Cóż, nie jestem pewien, gdzie ten wynik został wygenerowany podczas twojego wyszukiwania, ale w moim wyszukiwaniu, dzięki temu wątkowi, był on na szczycie listy. Właśnie tym stara się być ta społeczność, dobrze widoczna i dobrze znana baza wiedzy na temat tego rodzaju rzeczy. Tak więc doceniam to, co mówisz, w rzeczywistości misja zrealizowana dzięki PO.
@TechnikEmpire, ale fakt, że to pytanie jest obecnie wynikiem wysokiej rangi Google, jest częścią problemu, a nie rozwiązania. Wynik Google zawierał już świetne odpowiedzi, zanim powstało to pytanie - sprawdziłem przed komentarzem, zawsze tak robię. Te odpowiedzi mogły teraz zostać zepchnięte przez to pytanie z powodu ogromnej siły SO z Google. Zobacz także dyskusję tutaj: meta.stackexchange.com/questions/160565/…
Pekka

Odpowiedzi:

354
  1. Otwórz monit CMD jako administrator i wykonaj następujące polecenie:

    net stop was /y
    
  2. Otwórz okno dialogowe Uruchom (naciśnij Win+ R), a następnie wpisz:services.msc

    Następnie wyszukaj usługę publikowania w sieci WWW ( usługa publikowania w Internecie ) i usługę agenta wdrażania sieci i zatrzymaj je. Powinieneś je również wyłączyć.

  3. Uruchom Apache ponownie za pomocą XAMPP :)

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

Vo Quoc Cuong
źródło
15
Nie mogę znaleźć sieci WWW
Mohammad Kermani
4
Kolejny sposób na uzyskanie dostępu do usług - przejdź doControl Panel > System and Security > Administrative tools > Services
Al.G.
28
„Usługa raportowania programu SQL Server (MSSQLSERVER)” również korzysta z portu 80, dlatego należy go zatrzymać, jeśli serwer MS-SQL zostanie zainstalowany na komputerze.
johnkarka,
1
Masz pojęcie, dlaczego tak się dzieje? Czy to Windows jest niepewny, czy ktoś hakuje moją maszynę?
Stan Quinn
5
Wyłączyłem usługi publikowania w sieci WWW i problem został rozwiązany! Dziękuję Ci.
Mike Stratton
139

Inną bardzo łatwą opcją jest po prostu ustawienie Apache, aby nasłuchiwał na innym porcie. Można to zrobić, klikając przycisk „Config” w tym samym wierszu co moduł „Apache”, z rozwijanego menu wybierz plik „httpd.conf”, a następnie zmień wiersz „Listen 80” na „Listen 8080”. Zapisz plik i zamknij go.

Teraz unika Port 80 i zamiast tego używa Port 8080 bez problemu. Jedyną dodatkową rzeczą, którą musisz zrobić, to umieścić localhost:8080w przeglądarce, aby przeglądarka wiedziała, że ​​patrzy na Port 8080. W przeciwnym razie domyślnie jest ustawiony Port 80 i nie znajdzie twojej lokalnej strony.

Będzie to również wymagać ponownego uruchomienia Apache, aby zmiana zaczęła obowiązywać.

Voila! Naprawiony.

gtr1971
źródło
Siła została uaktualniona do systemu Windows 10 i to zepsuło moją instalację XAMP, ta odpowiedź naprawiła to dla mnie. Dzięki!
Ian
To zadziałało również dla mnie, tyle że wyszedłem ze wszystkiego, kliknąłem xampp_start w, C:/xamppa następnie zmieniłem go na port 81. 8080 nie działało dla mnie.
user3553260,
1
Polecam twoje rozwiązanie. W moim przypadku muszę opracować aplikację ASP .NET i PHP. Jeśli przestanę, World Wide Web Publishing Servicenie mogę pracować z aplikacją ASP. SO zmiana portu jest dla mnie rozwiązaniem. Dzięki!
mihkov,
3
Dodatkowo plik httpd.conf może wymagać również zmiany portu z „Config”> „Service and Port Settings”. Na karcie „Apache” zmień wartość „Port główny” na nowy port
Ian A
42

W httpd.conf zmień następujące wiersze, a następnie uruchom ponownie aplikację:

  • Listen 80 do Listen 8080
  • ServerName localhost:80 do ServerName localhost:8080

Gdy naciśniesz „Start”, aplikacja może nadal mówić o błędzie „Port 80 w użyciu przez„ Nie można otworzyć procesu ”z PID ...”, ale nadal będzie działać.

Jeśli błąd zawiera „Port 443 w użyciu przez„ Nie można otworzyć procesu ”z PID ...”, musisz zmienić zarówno httpd.conf, jak i httpd-ssl.conf.

W httpd-ssl.conf zmień:

  • Listen 443 do Listen 4433
  • <VirtualHost _default_:443> do <VirtualHost _default_:4433>
  • ServerName www.example.com:443 do ServerName www.example.com:4433
Ogglas
źródło
Skończyło się to na moim problemie. dobroć! ten PID pochodzi z systemu.
mzimhle
42

Wyodrębniono z tego artykułu :

  1. Przejdź do polecenia uruchomienia i wprowadź:

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

Ostatnim numerem jest identyfikator procesu, który go używa. Jest to najczęściej usługa IIS lub inna usługa internetowa i jest łatwa do rozwiązania, ale co jakiś czas (bardzo często wydaje się, że rozgląda się w Google) wydaje się, że jest to PID 4 - który według Menedżera zadań systemu Windows to jądro NT i System. Niezbyt pomocne, biorąc pod uwagę zabicie, spowoduje niebieski ekran śmierci.

Port 80 nie ma nic wspólnego z usługami IIS ani czymkolwiek internetowym, to SQL Server Reporting Services. Wyłącz wszystko, co przypomina usługi SQL Server, i uruchom Apache ponownie, bez potrzeby ponownego uruchamiania.

Więc problemy z PID 4 nasłuchującym na porcie 80? Sprawdź swoje usługi SQL i wyłącz je.

AKTUALIZACJA - Komentarz od @sangam:

Pracowałem przy strzale. W moim przypadku okazało się, że są to usługi raportowania serwera SQL. Zatrzymałem usługę dla wszystkich zainstalowanych instancji i zadziałała (bez ponownego uruchomienia komputera).

chridam
źródło
7
Pracowałem przy strzale. W moim przypadku okazało się, że są to usługi raportowania serwera SQL. Zatrzymałem usługę dla wszystkich zainstalowanych instancji i zadziałała (bez ponownego uruchomienia komputera). Dziękuję Ci.
sangam
1
Bardzo pomocny .. wcześniej zmieniłem port skype. i zamknięcie usług sql pomogło mi dużo. Wielkie dzięki
Waqar,
2
wreszcie w moim przypadku był to również MSSQL
Tom Sarduy
1
zatrzymanie SQL Server Reporting Services (MSSQLSERVER) działało dla mnie
Disturb
1
Dzięki, to była dla mnie odpowiedź.
balron
34

Tak więc napotkałem ten sam problem podczas próby uruchomienia usługi Apache i chciałbym podzielić się z Wami moimi rozwiązaniami. Oto kilka uwag na temat usług lub programów, które mogą korzystać z portu 80:

  1. Skype : Skype domyślnie korzysta z portu 80/443. Możesz to zmienić Tools -> Options -> Advanced -> Connectionsi wyłączyć pole wyboru „użyj portów 80 i 443 dla dodatkowych połączeń przychodzących” .

  2. IIS : IIS używa portu 80 jako domyślnego, więc musisz go zamknąć. Możesz użyć następujących dwóch poleceń: net stop w3svc, net stop iisadmin.

  3. SQL Server Reporting Service : Musisz zatrzymać tę usługę, ponieważ może zająć port 80, jeśli IIS nie jest uruchomiony. Przejdź do lokalnych usług i przestań.

  4. VMware Workstation : Jeśli korzystasz z VMware Workstation, musisz zatrzymać serwer VMware Workstation - również port 443.

Te opcje działają świetnie ze mną i mogę uruchomić usługę Apache bez błędów.

Inną opcją jest zmiana portu nasłuchiwania Apache z httpd.conf i ustawienie innego numeru portu.

Mam nadzieję, że to rozwiązanie pomoże każdemu, kto ponownie napotka ten sam problem.

Peter T.
źródło
4
Moja była usługa raportowania programu SQL Server. Dzięki!
Jayanga Kaushalya,
zatrzymanie w3svc naprawiło mój problem w Windows 10. Świetna odpowiedź.
Nox
Jak rozpoznać, które usługi korzystają z portu 80? (Windows 10)
Chris Nielsen
Dla mnie to działało: „IIS: IIS używa domyślnie portu 80, więc musisz go zamknąć. Możesz użyć następujących dwóch poleceń: net stop w3svc, net stop iisadmin”
Ravindra Singh
33

Może być konieczne zatrzymanie „Usługi agenta wdrażania sieci”

Naciśnij Win + R i wpisz services.msc

Kliknij prawym przyciskiem myszy usługę agenta wdrażania sieci i wybierz „Zatrzymaj”

Uruchom ponownie XAMPP

Również po dwukrotnym kliknięciu „Usługa agenta wdrażania sieci” możesz ustawić Typ uruchomienia na Ręczny, aby „Usługa agenta wdrażania sieci” nie uruchomiła się automatycznie

Stephen Burrows
źródło
1
Czy może wystąpić problem z wyłączeniem tej usługi?
Muhammad Muazzam
6
  1. Otwórz Menedżera zadań (Ctrl + Alt + Delete).
  2. Przejdź do zakładki „Szczegóły”.
  3. Sortuj według numeru PID.
  4. Zakończ proces wykorzystujący wskazany błąd numer PID.
  5. Uruchom ponownie XAMPP.
wmcnally
źródło
2
W moim przypadku to system używa PID4. Dlatego może to być niebezpieczne.
Fusion
pracował dla mnie, ponieważ port był używany przez mój inny serwer. Rozważ też komentarz @ Fusion
Varshaan,
6

Ponieważ na pytanie znajduje się komentarz @johnkarka, ten port jest również używany przez usługę raportowania programu SQL Server. Po zatrzymaniu tego Apache zaczął działać poprawnie.

  1. Przejdź do „SQL Server Configuration Manager”
  2. Kliknij „SQL Server Reporting Service” i zatrzymaj go

wprowadź opis zdjęcia tutaj

Zabawne jest to, że IIS działał dobrze w tej samej konfiguracji, ale nie Apache, musiał zatrzymać usługę raportowania SQL, aby działała na domyślnym porcie (80).

Hammad Khan
źródło
4

Dla mnie zadziałało zatrzymanie Internetowych usług informacyjnych (IIS). Jeśli używasz systemu Windows 7, kliknij przycisk Start, aw polu wyszukiwania wpisz „iis”. Kliknij „Menedżer internetowych usług informacyjnych (IIS)”. Kiedy pojawi się okno i zakładając, że nie masz żadnej wybranej ikony, powinieneś być w stanie kliknąć Zatrzymaj w prawym panelu akcji. Mój XAMPP Apache zaczął się od razu. Mam nadzieję, że wszystko się ułożyło.

midoriha_senpai
źródło
3

W Windows 10, aby zwolnić port 80:

w moim przypadku otwieram „Usługi” z „Wyszukaj Windows” (w lewym rogu ekranu), a następnie zatrzymuję wszystkie usługi serwera SQL MSSQLSERVER i to znowu działa

NP
źródło
3

Też miałem ten problem i zatrzymanie usług korzystających z portu 80 nie pomogło. Rozwiązałem go, wykonując tę ​​procedurę (znalezioną na tablicy francuskiej ):

  1. Uruchom RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Zmień wartość „start” na 4 (wyłączone)
  4. Zrestartuj swój komputer

Nie jestem pewien, jak to wpływa na inne usługi, ale rozwiązało to na stałe problem i do tej pory nie widziałem żadnego problemu.

W systemie Windows 10.

vard
źródło
2

Jeśli masz SQLServer Reporting Services działające lokalnie, musisz to również zatrzymać ...

Senthil
źródło
2

Miałem ten sam problem, ale w moim przypadku Apache już działał iz jakiegoś powodu narzędzie konfiguracyjne XAMPP tego nie pokazało. Stało się to po pierwszym uruchomieniu XAMPP po instalacji. Po awarii innych instancji Apache wszystko było w porządku, a porty 80 i 443 były znowu wolne.

Dlatego przed wprowadzeniem zmian do swojego systemu upewnij się, że nie dzieje się coś tak oczywistego, jak powyższe.

magnetronnie
źródło
2

„Usługa raportowania programu SQL Server” powodowała problemy w moim systemie, po zatrzymaniu Apache zaczął działać poprawnie

yadavr
źródło
2

Mam ten sam problem, rozwiązałem problem, po prostu wyłączyłem

„Usługa BranchCache” w usługach.

Jakoś Windows się aktualizuje, ta usługa jest uruchamiana podczas uruchamiania i używa 80 portów. Podczas sprawdzania za pomocą netstat widać, że system jest używany, ale nie można zrozumieć, która usługa jest używana.

Günay Gültekin
źródło
1
Wyłączenie tej usługi po każdej aktualizacji systemu Windows 10 rozwiązuje problem
Matt
2

Po zmianie głównego portu 80 na 8080 musisz zaktualizować port w panelu sterowania: wprowadź opis zdjęcia tutaj Następnie kliknij tutaj: wprowadź opis zdjęcia tutaj I tutaj: wprowadź opis zdjęcia tutaj Następnie zapisz i uruchom ponownie.

Zeke
źródło
1

Kliknij usługi w panelu sterowania Xampp (nazwa pliku to services.msc, dodatkowe informacje).

Najpierw poszukaj IIS, jeśli jest uruchomiony. Zatrzymaj go (zatrzymaj tę opcję usługi po lewej stronie po kliknięciu nazwy usługi). Jest to główny problem: poszukaj usługi wdrażania w sieci (nie jest to dokładna nazwa, chociaż na początku ma ona wdrażanie w sieci). Zatrzymaj także tę usługę. Spróbuj ponownie, a Apache powinien działać.

Jeśli korzystasz ze Skype'a, wyjdź z tego, uruchom Apache, a następnie uruchom Skype

ytpillai
źródło
Zwykle Skype przechwytuje port 80, ale jest mądrzejszy niż XAMPP i użyje innego portu, gdy zorientuje się, że 80 należy do serwera Apache
ytpillai
1

Miałem ten sam problem, kiedy zainstalowałem MS WebMatrix, serwer IIS został zablokowany na porcie 80, na którym działał XAMPP. Próbowałem znaleźć usługę publikowania w sieci WWW i zatrzymać ją, ale nie mogłem znaleźć jej na liście. Najlepszym sposobem jest zmiana portu.

Proszę odnieść się do tego
linku ref.

rango
źródło
1

Dla osób z ASP.NET, C # lub posiadających użytkowników SQL Server, jeśli używasz SQlServer LUB Visual Studio Twój port może napotkać. najłatwiejszą rzeczą, którą możesz zrobić, jest polecenie Command> servies.msc, a następnie znaleźć SQl Server Reporting Service, a następnie zatrzymać ją.

Sumanstm21
źródło
0

jeśli usługa to http.sys

Musisz zmienić powiązany adres IP dla http.sys

netsh http dodaj iplisten ipaddress = ::

Działa dobrze bez ponownego uruchamiania systemu operacyjnego.

mik3fly-4steri5k
źródło
0

Usługa Web Deployment Agent została wdrożona z WebMatrix i była przyczyną moich nieszczęść. Może być również rozpowszechniany z innymi aplikacjami instalowanymi za pomocą Instalatora platformy internetowej Microsoft.

Odinstaluj rozwiązało moje problemy!

brunodotcom
źródło
Nie, po prostu zmień port, na którym nasłuchuje serwer.
rango
0

Dla mnie zwykle działa: - Wyłącz Skype - Wyłącz wszystkie procesy SQL Server wyświetlane w services.msc - Wyłącz publikowanie w sieci WWW w services.msc

Iwona Kubowicz
źródło
0

Zwykle działa po zatrzymaniu serwera IIS i Skype

NA
źródło
0

XAMPP - Port 80 używany przez „Nie można otworzyć procesu” z PID 4! 12

uruchom komentarz w tasklist cmd

i znajdź PID i nazwę procesu związaną z tym teraz menedżerem zadań okna

możesz także otworzyć menedżera zadań okna za pomocą CTRL + ALT + DEL

teraz kliknij kartę procesu i znajdź nazwę używającą PID, kliknij prawym przyciskiem myszy i zakończ proces

teraz ponownie uruchom XAMPP

Surendra Kumar Ahir
źródło
0

Miałem ten sam problem. Po kilku googlingach przybył na tę stronę. Ponieważ przypuszczam, że ten błąd może mieć różne przyczyny, posłuchaj mojego doświadczenia:

Dziennik czerwonej linii Xampp:

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

W końcu okazało się, że mam ten wiersz kodu w moich kodach php:

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

Celem tego fragmentu kodu było uzyskanie kopii lustrzanej wyniku php gdzieś na moim serwerze. Ale utknął w pętli, która ma własną zawartość!

Naprawiłem kod:

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

Potem zrestartowałem apache ... i ten błąd apache nigdy się nie powtórzył.

Dlatego czasem dobrym rozwiązaniem jest poszukiwanie prawdopodobnych punktów zatrzymania w kodzie .

Hossein Khalesi
źródło
0

W Ubuntu domyślnie system nie pozwoli ci zajmować uprzywilejowanych portów [0 do 1023], poza określeniem portu jako 80, musisz uruchomić XAMP z sudo.

Arun Joshla
źródło
-1

Piszę to, ponieważ nie mogę znaleźć odpowiedzi na to samo pytanie. W moim przypadku PID wynosił 2484.

  1. musisz znaleźć proces lub usługę z tym PID: otwórz cmd (w Windows) i napisz:

    tasklist
    
  2. Znajdź swój PID na tej liście i przeczytaj nazwę procesu lub usługi.

  3. Teraz możesz to zabić za pomocą Menedżera zadań

  4. znajdź tę nazwę na liście procesów

  5. kliknij Zakończ proces.

To moja sprawa. Być może musisz otworzyć services.msc i zatrzymać usługę za pomocą swojego PID.

Na moim komputerze xampp działało dobrze :)

Marcin Bąk
źródło