XAMPP - Porta 80 utilizzata da "Impossibile aprire il processo" con PID 4! 12


182

Ho cercato di capire come risolvere questo problema per due giorni. Sono nuovo in questo genere di cose, quindi lo apprezzerei se qualcuno potesse dirmi come risolverlo.

Ho provato a cancellare skype ma non ha funzionato, ho provato a spegnere la cosa del world wide web, IIS off nulla sembra funzionare.

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

2
No, ho intenzione di scriverlo qui, non tutti sanno tutto sui computer. Stavo chiedendo aiuto, l'ho cercato su Google e tutto ciò che la gente dice di fare non funziona.
user3097839

Ah, ora ha più senso. Prova petri.co.il/quickly_find_local_open_ports.htm per scoprire chi sta bloccando la porta 80
Pekka,

9
@Pekka Lavoro con i computer da non molto tempo dopo che ho smesso di fare il pannolino, sono un programmatore da quasi un decennio e ho cercato su Google questa domanda e per fortuna perché le persone che hanno posto e risposto a questa domanda UTILIZZO sito, ho trovato rapidamente la risposta. Anche se questo probabilmente dovrebbe essere migrato a un superutente, i cattivi e farli sentire stupidi per aver posto una domanda legittima sono contrari al funzionamento di questa comunità. Ti suggerisco di trovare qualche altro scopo nella vita.

3
Beh, non sono sicuro di dove sia stato prodotto questo risultato durante la tua ricerca, ma nella mia ricerca, grazie a questa discussione, questo era in cima alla lista. Questo è esattamente ciò che questa comunità si sforza di essere, una base di conoscenza ben visibile e ben nota per questo tipo di cose. Quindi, mentre apprezzo quello che stai dicendo, in realtà, missione compiuta grazie al PO.

@TechnikEmpire, ma il fatto che questa domanda sia ora un risultato di alto livello di Google fa parte del problema, non della soluzione. Il risultato di Google conteneva già ottime risposte prima che sorgesse questa domanda: ho controllato prima di fare il commento, lo faccio sempre. Quelle risposte ora potrebbero essere state spinte giù da questa domanda, a causa dell'enorme influenza di SO con Google. Vedi anche la discussione qui: meta.stackexchange.com/questions/160565/…
Pekka

Risposte:


354
  1. Aprire un prompt CMD come amministratore ed eseguire il comando seguente:

    net stop was /y
    
  2. Apri la finestra di dialogo Esegui (premi Win+ R), quindi digita:services.msc

    Quindi cerca il servizio Pubblicazione sul World Wide Web ( servizio di pubblicazione sul WWW) e il servizio agente di distribuzione Web e fermali. Dovresti anche disabilitarli.

  3. Riavvia Apache con XAMPP :)

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


15
Non riesco a trovare il World Wide Web
Mohammad Kermani il

4
Un altro modo per accedere ai servizi - vai aControl Panel > System and Security > Administrative tools > Services
Al.G.

28
"SQL Server Reporting Service (MSSQLSERVER)" utilizza anche la porta 80 e quindi dovrebbe essere arrestato se il server MS-SQL è installato sul computer.
johnkarka,

1
Qualche idea sul perché ciò possa accadere? Windows sta facendo schifo o qualcuno sta hackerando la mia macchina?
Stan Quinn,

5
Ho disattivato i servizi di pubblicazione sul Web e il problema è stato risolto! Grazie.
Mike Stratton,

139

Un'altra opzione molto semplice è semplicemente impostare Apache per l'ascolto su una porta diversa. Questo può essere fatto facendo clic sul pulsante "Config" sulla stessa riga del modulo "Apache", selezionare il file "httpd.conf" nel menu a discesa, quindi modificare la riga "Listen 80" in "Listen 8080". Salva il file e chiudilo.

Ora evita la porta 80 e utilizza invece la porta 8080 senza problemi. L'unica cosa aggiuntiva che devi fare è assicurarti di inserire localhost:8080il browser in modo che il browser sappia guardare sulla porta 8080. In caso contrario, viene impostato automaticamente sulla porta 80 e non trova il tuo sito locale.

Ciò richiederà anche il riavvio di Apache affinché le modifiche abbiano effetto.

Ecco! Fisso.


Ho ricevuto l'upgrade forzato a Windows 10 e ha rotto l'installazione di XAMP, questa risposta l'ha risolto per me. Grazie!
Ian,

Questo ha funzionato anche per me, tranne per il fatto che sono uscito da tutto, ho cliccato su xampp_start C:/xamppe poi l'ho cambiato sulla porta 81. 8080 non ha funzionato per me.
user3553260

1
Raccomando la tua soluzione. Nel mio caso ho bisogno di sviluppare applicazioni ASP .NET e PHP. Se mi fermo World Wide Web Publishing Servicenon riesco a lavorare sulla mia applicazione ASP. Quindi cambiare porta è la soluzione per me. Grazie!
mihkov,

3
In aggiunta al file httpd.conf, potrebbe anche essere necessario cambiare la porta da "Config"> "Service and Port Settings". Nella scheda "Apache", modifica il valore "Porta principale" nella nuova porta
Ian A

42

In httpd.conf modificare le seguenti righe e quindi riavviare l'applicazione:

  • Listen 80 per Listen 8080
  • ServerName localhost:80 per ServerName localhost:8080

Quando premi "Avvia", l'applicazione può ancora dire che hai un errore come "Porta 80 in uso da" Impossibile aprire il processo "con PID ..." ma funzionerà comunque.

Se l'errore include "Porta 443 in uso da" Impossibile aprire il processo "con PID ..." è necessario modificare sia httpd.conf che httpd-ssl.conf.

In httpd-ssl.conf modifica:

  • Listen 443 per Listen 4433
  • <VirtualHost _default_:443> per <VirtualHost _default_:4433>
  • ServerName www.example.com:443 per ServerName www.example.com:4433

Ho finito per doverlo fare sul mio problema. bontà! quel PID è dal sistema.
mzimhle,

42

Estratto da questo articolo :

  1. Vai al comando di esecuzione e inserisci:

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

L'ultimo numero qui è l'ID del processo che lo utilizza. Questo è spesso IIS o altri servizi relativi al Web ed è facile da risolvere, ma ogni tanto (molto spesso sembrerebbe guardarsi intorno su google) sembra essere PID 4 - che secondo il Task Manager di Windows è il kernel NT e Sistema. Non molto utile dato che uccidere questo si tradurrà in una schermata blu della morte.

La porta 80 di hogging non ha nulla a che fare con IIS o web, è SQL Server Reporting Services. Disattiva tutto ciò che assomiglia a un SQL Server Services e riavvia Apache, non è necessario riavviare.

Quindi problemi con PID 4 che ascolta la porta 80? Controlla i tuoi servizi SQL e disattivali.

AGGIORNAMENTO - Commento di @sangam:

Ha lavorato in un colpo. Nel mio caso, si è rivelato essere un servizio di reportistica di SQL Server. Ho interrotto il servizio per tutte le istanze installate e ha funzionato (senza riavvio della macchina).


7
Ha lavorato in un colpo. Nel mio caso, si è rivelato essere un servizio di reportistica di SQL Server. Ho interrotto il servizio per tutte le istanze installate e ha funzionato (senza riavvio della macchina). Grazie.
sangam,

1
Molto utile .. prima di questo, ho cambiato la porta skype. e la chiusura dei servizi sql mi ha aiutato molto. Grazie mille
Waqar,

2
infine, nel mio caso era anche MSSQL
Tom Sarduy

1
l'interruzione di SQL Server Reporting Services (MSSQLSERVER) ha funzionato per me
Disturb

1
Grazie questa è stata la risposta per me.
balron

34

Quindi ho riscontrato lo stesso problema quando provavo ad avviare il servizio Apache e vorrei condividere le mie soluzioni con te. Ecco alcune note su servizi o programmi che possono usare la porta 80:

  1. Skype : Skype utilizza la porta 80/443 per impostazione predefinita. Puoi cambiarlo Tools -> Options -> Advanced -> Connectionse disabilitare la casella di controllo "usa le porte 80 e 443 per le connessioni in entrata addizionali" .

  2. IIS : IIS utilizza la porta 80 come impostazione predefinita, quindi è necessario chiuderla. È possibile utilizzare i seguenti due comandi: net stop w3svc, net stop iisadmin.

  3. Servizio di report di SQL Server : è necessario interrompere questo servizio perché potrebbe richiedere la porta 80 se IIS non è in esecuzione. Vai ai servizi locali e fermalo.

  4. VMware Workstation : se si esegue VMware Workstation, è necessario arrestare anche il server VMware Workstation - porta 443.

Queste opzioni funzionano perfettamente con me e posso avviare il servizio Apache senza errori.

L'altra opzione è cambiare la porta di ascolto di Apache da httpd.conf e impostare un altro numero di porta.

Spero che questa soluzione sia di aiuto a chiunque debba affrontare nuovamente lo stesso problema.


4
Il mio era il servizio di reportistica di SQL Server. Grazie!
Jayanga Kaushalya,

l'arresto di w3svc ha risolto il mio problema su Windows 10. Ottima risposta.
Nox,

Come si può sapere quali servizi stanno usando la porta 80? (Windows 10)
Chris Nielsen,

Per me questo ha funzionato "IIS: IIS utilizza la porta 80 come impostazione predefinita, quindi è necessario chiuderla. È possibile utilizzare i due comandi seguenti: net stop w3svc, net stop iisadmin"
Ravindra Singh

33

Potrebbe essere necessario interrompere il "Servizio agente di distribuzione Web"

Premi Win + R e digita services.msc

Fare clic con il tasto destro su Web Deployment Agent Service e selezionare "Stop"

Riavvia XAMPP

Inoltre, facendo doppio clic su "Servizio agente di distribuzione Web" è possibile impostare il tipo di avvio su Manuale, in modo che "Servizio agente di distribuzione Web" non si avvii automaticamente


1
Potrebbe esserci qualche problema disabilitando quel servizio?
Muhammad Muazzam,

6
  1. Apri Task Manager (Ctrl + Alt + Canc).
  2. Vai alla scheda "Dettagli".
  3. Ordina per numero PID.
  4. Termina il processo che utilizza il numero PID indicato per errore.
  5. Riavvia XAMPP.

2
Nel mio caso, è il sistema che utilizza PID4. Pertanto questo può essere pericoloso.
Fusion

ha funzionato per me poiché la porta è stata utilizzata dall'altro mio server. E considera anche il commento di @ Fusion
Varshaan,

6

Poiché esiste un commento di @johnkarka sulla domanda, questa porta viene utilizzata anche dal servizio di report di SQL Server. Dopo averlo interrotto, Apache ha iniziato bene.

  1. Vai a "Gestione configurazione SQL Server"
  2. Fare clic su "SQL Server Reporting Service" e interromperlo

inserisci qui la descrizione dell'immagine

La cosa divertente è che IIS funzionava bene nella stessa configurazione ma non Apache, ha dovuto interrompere il servizio di reportistica SQL per farlo funzionare sulla porta predefinita (80).


4

Ciò che ha funzionato per me è stato l'arresto di Internet Information Services (IIS). Se stai utilizzando Windows 7, fai clic sul pulsante Start e nella casella di ricerca, digita "iis". Fai clic su "Gestione Internet Information Services (IIS)". Quando viene visualizzata la finestra e supponendo che nessuna delle icone sia selezionata, dovresti essere in grado di fare clic su Stop nel riquadro azioni giusto. Il mio XAMPP Apache è iniziato subito. Spero che tutto abbia funzionato per te.


3

In Windows 10, per liberare la porta 80:

nel mio caso, apro "Servizi" da "Cerca in Windows" (nell'angolo sinistro dello schermo), quindi interrompo tutti i servizi del server SQL MSSQLSERVER e funziona di nuovo


3

Ho avuto anche questo problema e l'interruzione dei servizi utilizzando la porta 80 non ha aiutato. L'ho risolto seguendo questa procedura (trovata su una scheda francese ):

  1. Avvia RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Cambia il valore di "start" in 4 (disabilitato)
  4. Riavvia il tuo computer

Non sono sicuro di come questo influisca su altri servizi, ma ha risolto definitivamente il problema e finora non ho riscontrato alcun problema.

Utilizzando Windows 10.


2

Se hai SQLServer Reporting Services in esecuzione localmente, devi interrompere anche quello.


2

Ho avuto lo stesso problema, ma nel mio caso Apache era già in esecuzione e per qualche motivo lo strumento di configurazione XAMPP non lo ha mostrato. È successo dopo che ho avviato XAMPP per la prima volta dopo l'installazione. Dopo l'arresto anomalo delle altre istanze di Apache tutto andava bene e le porte 80 e 443 erano di nuovo libere.

Quindi, prima di apportare modifiche al tuo sistema, assicurati che non accada qualcosa di ovvio come sopra.


2

"SQL Server Reporting Service" stava causando problemi nel mio sistema, dopo averlo interrotto, Apache ha iniziato a funzionare correttamente


2

Ho lo stesso problema, ho risolto il problema, appena disabilitato

"Servizio BranchCache" nei servizi.

In qualche modo aggiornamenti di Windows, questo servizio viene attivato all'avvio e utilizza 80 porte. Quando controlli tramite netstat potresti vedere che il sistema viene utilizzato ma non puoi capire quale servizio viene utilizzato.


1
La disabilitazione di questo servizio dopo ogni aggiornamento di Windows 10 risolve il problema
Matt,

2

Dopo aver modificato la porta principale da 80 a 8080, è necessario aggiornare la porta nel pannello di controllo: inserisci qui la descrizione dell'immagine Quindi fare clic qui: inserisci qui la descrizione dell'immagine E qui: inserisci qui la descrizione dell'immagine Quindi salvare e riavviare.


1

Fai clic su servizi nel pannello di controllo di Xampp (il nome del file è services.msc, informazioni extra).

Innanzitutto, cerca IIS, se è in esecuzione. Interrompi (interrompi questa opzione di servizio a sinistra dopo aver fatto clic sul nome del servizio). Quindi, questo è il problema principale, cercare il servizio di distribuzione Web (non il nome esatto sebbene abbia la distribuzione Web all'inizio). Ferma anche questo servizio. Riprova e Apache dovrebbe funzionare.

Se stai eseguendo Skype, esci anche da quello, esegui Apache, quindi avvia Skype


Normalmente, Skype porta la porta 80 ma è più intelligente di XAMPP e utilizzerà una porta diversa una volta che si rende conto che 80 appartiene ad Apache Server
ytpillai,

1

Ho avuto lo stesso problema, quando mi è stato installato MS WebMatrix, IIS Server ha bloccato la porta 80 su cui era in esecuzione XAMPP. Ho cercato di trovare il servizio di pubblicazione sul World Wide Web e di interromperlo, ma non sono riuscito a trovarlo nell'elenco. Il modo migliore è cambiare una porta.

Si prega di fare riferimento con questo
link rif.


1

Per quelli con ASP.NET, C # o con utenti di SQL Server, se si utilizza SQlServer o Visual Studio, è possibile che si verifichi la porta. la cosa più semplice che potresti voler fare è su Comando> servies.msc e quindi trovare SQl Server Reporting Service e quindi arrestarlo.


0

se il servizio è http.sys

È necessario modificare l'indirizzo IP associato per http.sys

netsh http add iplisten ipaddress = ::

Funziona bene senza riavviare il sistema operativo.


0

Il servizio Web Deployment Agent è distribuito con WebMatrix ed è stata la causa dei miei guai. Può anche essere distribuito con altre applicazioni installate utilizzando il programma di installazione della piattaforma Web di Microsoft.

Disinstallalo ha risolto i miei problemi!


No, basta cambiare la porta su cui il server è in ascolto.
Rango,

0

Per me di solito funziona: - Disattiva Skype - Disattiva tutti i processi di SQL Server visualizzati in services.msc - Disattiva Pubblicazione World Wide Web in services.msc


0

Di solito funziona dopo aver interrotto IIS Server e Skype


0

XAMPP - Porta 80 utilizzata da "Impossibile aprire il processo" con PID 4! 12

eseguire il commento nell'elenco delle attività cmd

e trova il PID e il nome del processo relativi a questo task manager della finestra ora aperta

puoi anche aprire il task manager della finestra usando CTRL + ALT + CANC

ora fai clic sulla scheda del processo e trova il nome che utilizza PID e fai clic con il tasto destro su quello e termina il processo

ora riavvia nuovamente xampp


0

Ho avuto lo stesso problema. Dopo alcuni googling è arrivato a questa pagina. Poiché suppongo che questo errore possa avere vari motivi, quindi ascolta la mia esperienza:

Xampp red line log:

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

Alla fine si è scoperto che avevo questa riga di codice nei miei codici php:

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

Lo scopo di questo pezzo di codice era ottenere un mirror del risultato php da qualche parte nel mio server. Ma è solo bloccato in un ciclo che ottiene il suo contenuto!

Ho riparato il codice:

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

Quindi ho riavviato Apache ... e quell'errore di Apache non si è mai più verificato.

Quindi a volte la ricerca di probabili punti di arresto nel codice è un buon approccio.


0

In Ubuntu di default, il sistema non ti permetterà di occupare porte privilegiate [da 0 a 1023], oltre a specificare la porta come 80, devi eseguire XAMP con sudo.


-1

Scrivo questo, perché non trovo risposte per la stessa domanda. Nel mio caso il PID era 2484.

  1. devi trovare un processo o un servizio con questo PID: apri cmd (in Windows) e scrivi:

    tasklist
    
  2. Trova il tuo PID in questo elenco e leggi il nome del processo o del servizio.

  3. Ora puoi ucciderlo usando Task Manager

  4. trova questo nome nell'elenco dei processi

  5. fai clic su Termina processo.

Questo è il mio caso. Forse devi aprire services.msc e interrompere il servizio con il tuo PID.

Sul mio computer xampp ha funzionato bene :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.