Apache Server (xampp) non funziona su Windows 10 (porta 80)


84

Ho installato il programma Windows 10 Insider. Tutto funziona, tranne Apache. Quando provo ad avviarlo, dice che la porta 80 è bloccata. C'è un modo per sbloccarlo o dire ad Apache di usare invece un'altra porta?

Prima stavo usando Windows 7. Ho avuto problemi con la porta 80 con Skype, ma l'ho disabilitata.


Il PID è 4. Il processo è di sistema (kernel NT e sistema)
Aloso

Attenzione alla marca del tuo computer: ho scoperto che il mio computer ha un servizio personalizzato che bloccava la porta. Ho dovuto disabilitare tutti i servizi uno per uno per capirlo finalmente ...
Jean-François Savard


Risposte:


208

Ho avuto lo stesso problema su Windows 10, IIS / 10.0 utilizzava la porta 80

Per risolverlo:

  • trova il servizio "W3SVC"
  • disabilitalo o impostalo su "manuale"

Il nome francese è: " Servizio di pubblicazione World Wide Web "

Il nome inglese è: " World Wide Web Publishing Service "

il nome tedesco è: "WWW-Publishingdienst" - grazie @fiffy

Il nome polacco è: "Usługa publikowania w sieci WWW" - grazie @KrzysDan

Il nome russo è "Служба веб-публикаций" - grazie @Kreozot

Il nome italiano è "Servizio Pubblicazione sul Web" - grazie @ Claudio-Venturini

Il nome spagnolo è "Servicio de publicación World Wide Web" - grazie @ Daniel-Santarriaga

Il nome portoghese (Brasile) è "Serviço de publicação da World Wide Web" - grazie @ thiago-born


Alternative:


Modifica 07 ott 2015: per ulteriori dettagli, vedere la risposta di Matthew Stumphy Apache Server (xampp) non funziona su Windows 10 (porta 80)


2
Fantastico ... È un problema con Windows 10 per impostazione predefinita
user3658423

3
Il servizio può essere disabilitato all'avvio aprendo Administrative Toolse selezionando Services. Apparirà una finestra intitolata Servizi. Quindi trova World Wide Web Publishing Services, fai clic con il tasto destro e seleziona Properties. Passare Startup Typea Manuale fare clic suApply
zgr024

3
Altri possono trovare il nome visualizzato chiamandosc getdisplayname W3SVC
Honza Kuchař

C'è qualche motivo per cui W3SVC può essere eseguito su un normale computer che non funziona come un server web?
DaedalusAlpha

Non sarebbe meglio rimuovere il servizio di pubblicazione sul Web dall'elenco dei componenti di Windows installati? Quindi non è necessario disabilitare il servizio poiché non dovrebbe più essere installato.
Arnoud Sietsema

31

Questa risposta è intesa come aggiunta alla risposta più votata su questo thread da paaacman. Volevo solo aggiungere alcuni dettagli utili per gli utenti come me che non conoscono bene Windows 10.

Windows 10 esegue IIS (Internet Information Services, il software del server Web di Microsoft) automaticamente durante l'avvio sulla porta 80. Per poter utilizzare Apache Server su quella porta, IIS deve essere arrestato.

La risposta di paaacman si riferisce al server IIS come "W3SVC" o "World Wide Web Publishing Service". Suppongo che sia perché Windows 10 esegue IIS come servizio. Per disabilitarlo o modificare il modo in cui viene eseguito il servizio, è necessario sapere dove trovare i "Servizi" nel sistema.

Ho trovato il modo più semplice per fare clic sul pulsante di ricerca accanto al pulsante del menu Start nella barra delle applicazioni di Windows 10 e digitare "Strumenti di amministrazione" . Puoi premere Invio o fare clic sul collegamento "Strumenti di amministrazione" che Windows trova per te.

Si aprirà una finestra del pannello di controllo con un elenco di strumenti. Quello che vuoi è " Servizi ". Fare doppio clic su di esso.

Si aprirà un'altra finestra chiamata "Servizi". Individuare quello denominato " Servizio di pubblicazione sul Web ". Alcuni altri utenti in questo thread hanno elencato come viene chiamato in altre lingue, se l'elenco non è in inglese.

Se si desidera solo disattivare il server IIS per questa sessione di Windows, ma si desidera che venga eseguito di nuovo automaticamente al successivo avvio di Windows, fare clic con il pulsante destro del mouse su "World Wide Web Publishing Service" e scegliere " Stop ". Il server si fermerà e la porta 80 verrà liberata per Apache (o per qualsiasi altra cosa tu voglia usarla).

Se si desidera impedire l'esecuzione automatica del server IIS all'avvio di Windows in futuro, fare clic con il pulsante destro del mouse su "World Wide Web Publishing Serivce" e selezionare " Proprietà ". Nella finestra visualizzata, individua il menu a discesa "Tipo di avvio" e impostalo su "Manuale". Fare clic su "Applica" o "OK" per salvare le modifiche. Dovresti essere pronto.


15

Con Windows 10 IIS viene eseguito sulla porta 80 per impostazione predefinita che può essere modificata:

Eseguire l' appwiz.cpl uso Turn Windows features on or offe installare la console di gestione IIS.

Attiva o disattiva le funzionalità di Windows -> Internet Information Services -> Strumenti di gestione Web -> Console di gestione IIS

Esegui InetMgr.exee vai su "Connessioni -> Siti" e apri con il tasto destro del mouse il menu contestuale sulla voce predefinita "Sito Web predefinito". Nel menu contestuale selezionare "Bindings" per aprire l'indirizzo del server e la configurazione della porta.

"Connessioni -> Siti" -> "Associazioni sito web predefinite"

Indirizzo del server e configurazione della porta

Modifica della porta predefinita su 8080

https://technet.microsoft.com/library/hh831681.aspx#Site_Bingings


14

Ho avuto lo stesso identico problema e l'ho risolto eseguendo il seguente comando dalla riga di comando come amministratore:

1) prima interrompere il servizio con quanto segue

net stop http / y

2) quindi disabilitare l'avvio (opzionale)

sc config http start = disabilitato


Questo è il modo più semplice per rilasciare la porta 80. La sto usando per una macchina vagabonda.
Mārtiņš Briedis

9

Digita nella riga di comando

netstat -aon | findstr :80

Vedrai il PID del processo che usa la porta 80. Quindi prova a configurare questa app per usare un'altra porta, o semplicemente uccidila

AGGIORNAMENTO: Scriverò qui il mio commento per essere più chiaro: secondo questo link, in Windows 10, è il servizio MsDepSvc che occupa la porta 80. È per IIS o Web Matrix 2. Se non userete IIS o Web Matrix 2 per qualsiasi sviluppo web, puoi provare a chiudere il servizio

E per la seconda parte della tua domanda, puoi dire ad Apache di usare un'altra porta modificando [cartella Apache] /conf/httpd.conf. Ha la stringa "Listen 80". Cambia 80 in qualsiasi porta gratuita desideri e ricarica Apache


È il sistema. Non posso ucciderlo, posso?
Aloso

Dopo una rapida ricerca su Google, trovo questo collegamento nextofwindows.com/… . "..., hai questo servizio MsDepSvc in esecuzione in background che occupa la porta 80. Una soluzione rapida sarebbe interrompere il servizio, quando non prevedi di utilizzare IIS o Web Matrix 2 per alcuno sviluppo web. Avvia i servizi quando necessario, spero che risolva alcuni misteri che potresti avere quando passi dall'uso di Web Matrix allo sviluppo tradizionale di Apache ".
Sergey Maksimenko,

Mi dispiace ma non ho questa procedura.
Aloso

8

Potrebbe essere necessario terminare anche SQL Server Reporting Services.


5

Nel mio caso ho bisogno sia di XAMPP per lo sviluppo di Apache che di IIS Express per lo sviluppo di .Net 2013; quindi faccio quanto segue:

  1. Nel prompt dei comandi digitato services.msc, questo carica "Windows Services" dove ho individuato "World Wide Web Publishing Service" e lo interrompe. Servizio di pubblicazione sul World Wide Web STOP

  2. Il pannello di controllo di XAMPP avvio fare clic su "Config", quindi scegliere "Apache httpd.conf". Cerca "80" quindi cambialo in "8080" sia in "Listen 80" che in "ServerName localhost: 80". Salva il file da "Salva con nome" e scegli "Tutti i file" per non salvarlo come testo da "Salva con nome" e la "Codifica" dovrebbe essere "UTF-8". Apache httpd.conf

  3. Esci dal pannello di controllo XAMPP, quindi riavvialo e da "Azione" avvia Apache e MySQL. Ora vedrai la porta cambiata. Come ora sai, devi accedere al tuo server Apache utilizzando "localhost: 8080" invece di "localhost". Inoltre hai sia Apache che IIS Express in esecuzione sullo stesso PC Windows 10.

Ho letto un post in cui lo scrittore suggeriva di usare la porta "9080" ma non ha funzionato per me.


3

Il problema si verifica ogni volta che un processo utilizza la porta 80.

Puoi eseguire Netstat, disponibile nel pannello di controllo XAMPP, e controllare quale processo utilizza la porta 80 nel tuo sistema.

Per me non era IIS , ma Skype .

Disattiva quel processo / applicazione e quindi avvia i servizi Apache.


Questo sembra solo un duplicato di una serie di risposte precedenti, forse è meglio solo come commento che Skype era il processo problematico per te.
blm

"Era skype" suona come una risposta per me! Potrebbe non essere stata la risposta a risolverlo per OP, ma lo ha fatto per me, e sono grato che sia stata una risposta e non un commento, o potrei non averlo visto.
arichards

1

So che forse questo problema è stato risolto ma ho avuto lo stesso problema con una soluzione diversa. Per questo, spiegherò un'altra possibile soluzione. Nel mio caso, la porta 80 era occupata da Skype (pid: 25252) e non sapevo quale programma fosse.

Per vedere il pid del programma che sta usando la porta 80 puoi usare il comando che altre persone hanno detto prima:

netstat -aon | findstr 0.0:80

Per terminare il processo usando il pid (nel caso in cui non conosci il programma) devi aprire il CMD con il permesso di amministratore e utilizzare il comando successivo:

taskkill /pid 25252

Altre opzioni con questo comando sono qui .


Questo non è lo stesso problema perché puoi disabilitare la porta 80 nelle impostazioni di skype. Non è necessario uccidere Skype!
Aloso

Hai ragione. Ho visto ora l'opzione. Quando ho avuto il problema non l'ho visto.
CGG

1

So che POTREBBE non essere la causa del tuo problema, ma ho passato alcune ore a sbattere la testa contro il muro per risolvere il problema e questa è la mia soluzione.

(con Windows 10 x32)

Quindi avevo installato XAMPP in una directory profondamente nidificata e tutti i file di configurazione fanno riferimento a root \xampp\apache, mentre i miei file lo eranosome_dir\another_dir\whatthehelliswrongwithme\finally\xampp\apache

quindi le mie opzioni erano di esaminare e modificare tutti i \xampp\apacheriferimenti e indirizzarli nel posto giusto, OPPURE, l'opzione molto più semplice ... reinstallare XAMPP alla radice, quindi i riferimenti puntano tutti al posto giusto.

Un po 'fastidioso, ma immagino che sia quello che otteniamo quando Mac e Windows cercano di essere amici ..

Spero che aiuti alcuni di voi.



1

Penso che sia semplice cambiare la porta del tuo server Apache

  1. Vai a C: \ xampplite \ apache \ conf
  2. Apri i file httpd.conf
  3. Cerca Listen 80
  4. Cambia 80 in qualsiasi altro come 9080
  5. Ora il riavvio di XAMPP prova ad avviare il server

NB Sto usando la versione Server: 5.1.41 con Windows 10


0

Chiudere "alcuni processi di sistema" può essere complicato ... dovresti piuttosto modificare la [cartella Apache] /conf/httpd.conf come indicato da @Sergey Maksimenko e se vuoi configurare l'host virtuale, usa la nuova porta in [Apache cartella] /conf/extra/httpd-vhosts.conf (ho usato 4900 invece di 80 e 4901 invece di 443 in [cartella Apache] /conf/httpd-ssl.conf). E ricorda di usare la porta quando accedi alla pagina su localhost (o sul tuo virtualhost), ad esempio: localhost: 4900 / index.html


0

Questo fisso node.js non funzionava anche sulla porta 80 sotto Windows 10, stavo ricevendo un listen eacceserrore. Start> Servizi, trova "World Wide Web Publish Service" e disabilitalo, esattamente come descritto da paaacman.


0

Ho avuto lo stesso problema e nessuna delle soluzioni di cui sopra ha funzionato per me.

Apache utilizza entrambe le porte 80 e 443 (per HTTPS) ed entrambe devono essere pronte per essere utilizzate affinché Apache possa avviarsi correttamente. Solo la porta 80 potrebbe non essere sufficiente.

Nel mio caso ho scoperto che durante l'esecuzione di VMWare Workstation avevo la porta 443 utilizzata dalla condivisione VMware.

È necessario disabilitare la condivisione nelle Preferenze principali di VMware o modificare la porta in questa sezione.

Dopodiché, finché non hai altri server agganciati alla porta 80 (vedi soluzioni sopra), dovresti essere in grado di avviare Apache o NGinx su XAMPP o qualsiasi altra applicazione stack di Windows.

Spero che questo possa aiutare altri utenti.


0

Mentre molti stanno adottando l'approccio per arrestare / disabilitare IIS, potrebbe essere utile sapere che puoi semplicemente modificare la porta XAMPP, a cui è stata data risposta qui . Questo è il percorso che ho dovuto prendere perché ho bisogno di entrambi.


0

Oltre al motivo abbastanza ovvio (IIS), c'è un altro motivo abbastanza comune per questo problema. Vale la pena citare questa domanda e la sua risposta qui:

http://stackoverflow.com/questions/22994888/why-skype-using-http-or-https-ports-80-and-443 

Quindi, se hai Skype installato nel computer, assicurati di controllare anche questo. La soluzione è citata qui:

Per disattivare e disabilitare l'utilizzo e l'ascolto di Skype sulla porta 80 e sulla porta 443, apri la finestra di Skype, quindi fai clic sul menu Strumenti e seleziona Opzioni. Fare clic sulla scheda Avanzate e andare alla sottoscheda Connessione. Deselezionare o deselezionare la casella di controllo per l'opzione Usa le porte 80 e 443 come alternative per le connessioni in entrata. Fare clic sul pulsante Salva e quindi riavviare Skype per rendere effettiva la modifica.


Tutti dicono di spegnere e disabilitare Skype, ma che impatto ha su Skype? Dobbiamo modificare le impostazioni di configurazione in Skype?
luisdev

@luisdev Segui i passaggi descritti nella citazione sopra. Ti dice come modificare le impostazioni di configurazione in Skype.
Earth Engine

Ok, so come modificare le impostazioni di configurazione in Skype, ma che impatto ha la modifica delle impostazioni di Skype sulla funzionalità Skype? Influirà sulla mia capacità di effettuare o ricevere chiamate su Skype? Se Skype non è più in ascolto sulle porte 80 e 443, le persone potranno ancora chiamarmi?
luisdev

1
@luisdev Non ho problemi a disabilitare quelle porte in Skype. Sembra che sia utile solo quando sei dietro alcuni firewall specifici. Quindi, se questo non funziona per te, dovrai riaccenderlo. Sfortunatamente, Skype ha fatto ciò nel modo sbagliato in cui è in ascolto su TUTTI gli indirizzi anziché solo sugli indirizzi ESTERNI, rendendo impossibile l'ascolto solo su localhost.
Earth Engine

-1

Innanzitutto, apri regedit esegui come amministratore vedi immagine aperta HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentCurrentControlSet \ Services \ HTTP apri Start, cambia il valore da 3 a 4 vedi immagine quindi riavvia il computer

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.