web-dev-qa-db-fra.com

Apache Server (xampp) ne s'exécute pas sous Windows 10 (port 80)

J'ai installé le programme Windows 10 Insider. Tout fonctionne, sauf Apache. Lorsque j'essaie de le démarrer, il est indiqué que le port 80 est bloqué. Est-il possible de le débloquer ou dites à Apache d’utiliser un autre port à la place?

J'utilisais Windows 7 avant. J'ai eu des problèmes avec le port 80 avec Skype, mais je l'ai désactivé.

81
Aloso

J'ai eu le même problème sur Windows 10, IIS/10.0 utilisait le port 80

Pour résoudre cela:

  • trouver le service "W3SVC"
  • le désactiver ou le régler sur "manuel"

Le nom français est: " Service de publication sur le World Wide Web "

Le nom anglais est: " service de publication World Wide Web "

nom allemand est: "WWW-Publishingdienst" - merci @fiffy

Le nom polonais est: "Usługa publikowania w sieci WWW" - merci @KrzysDan

Le nom russe est "Служба веб-публикаций" - merci @Kreozot

Le nom italien est "Servizio Pubblicazione sul Web" - merci @ Claudio-Venturini

Le nom espagnol est "Servicio de publication World Wide Web" - merci @ Daniel-Santarriaga

Le nom portugais (Brésil) est "Adresse de publication du World Wide Web" - merci @ thiago-born


Alternatives:


Edit 07 oct 2015: Pour plus de détails, voir la réponse de Matthew Stumphy Le serveur Apache (xampp) ne fonctionne pas sous Windows 10 (port 80)

204
paaacman

Cette réponse est conçue comme un additif à la réponse la mieux notée sur ce fil par paaacman. Je voulais simplement ajouter quelques détails utiles aux utilisateurs comme moi qui ne connaissent pas bien Windows 10.

Windows 10 exécute automatiquement IIS (Internet Information Services, le logiciel de serveur Web de Microsoft) lors du démarrage sur le port 80. Pour utiliser Apache Server sur ce port, il est nécessaire d'arrêter IIS.

la réponse de paaacman fait référence au serveur IIS en tant que "W3SVC" ou au "service de publication World Wide Web". Je suppose que c'est parce que Windows 10 exécute IIS en tant que service. Pour le désactiver ou modifier le fonctionnement du service, vous devez savoir où trouver les "Services" sur votre système.

J'ai trouvé le moyen le plus simple de cliquer sur le bouton bouton de recherche situé à côté du bouton du menu Démarrer dans la barre des tâches de Windows 10 et tapez "Outils d'administration". Vous pouvez appuyer sur Entrée ou cliquer sur le lien "Outils d'administration" que Windows trouve pour vous.

Une fenêtre du panneau de configuration s'ouvrira avec une liste d'outils. Celui que vous voulez est "Services". Double-cliquez dessus.

Une autre fenêtre s'ouvrira appelée "Services". Recherchez celui nommé "service de publication World Wide Web". Certains autres utilisateurs de ce fil de discussion ont indiqué comment il est appelé dans d’autres langues, si votre liste n’est pas en anglais.

Si vous souhaitez uniquement désactiver le serveur IIS pour cette session Windows, mais souhaitez le réactiver automatiquement au prochain démarrage de Windows, cliquez avec le bouton droit de la souris sur "Service de publication World Wide Web"). et choisissez "Stop". Le serveur s'arrêtera et le port 80 sera libéré pour Apache (ou tout autre objet pour lequel vous souhaitez l'utiliser).

Si vous souhaitez empêcher le serveur IIS de s'exécuter automatiquement lors du prochain démarrage de Windows, cliquez avec le bouton droit de la souris sur "Service de publication World Wide Web" et sélectionnez "Propriétés. " Dans la fenêtre qui apparaît, localisez le menu déroulant "Type de démarrage", et définissez-le sur "Manuel" Cliquez sur "Appliquer" ou sur "OK" pour enregistrer vos modifications. Vous devriez être tous ensemble.

31
Matthew Stumphy

Avec Windows 10, IIS s'exécute sur le port 80 par défaut, ce qui peut être modifié:

Exécutez appwiz.cpl utilisez _Turn Windows features on or off_ et installez la console IIS Manager.

Turn Windows features on or off -> Internet Information Services -> Web Management Tools -> IIS Management Console

Exécutez _InetMgr.exe_ et allez dans "Connexions -> Sites" et ouvrez-le en cliquant avec le bouton droit de la souris sur le menu contextuel de l'entrée par défaut "Site Web par défaut". Dans le menu contextuel, sélectionnez "Liaisons" pour ouvrir l'adresse du serveur et la configuration du port.

"Connections -> Sites" -> "Default Website Bindings"

Server address and port configuration

Chaning Default Port to 8080

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

13
Tobias Hochgürtel

J'ai eu exactement le même problème et je l'ai résolu en exécutant la commande suivante à partir de la ligne de commande en tant qu'administrateur:

1) d'abord arrêter le service avec ce qui suit

net stop http/y

2) puis désactivez le démarrage (facultatif)

sc config http start = désactivé

11
Jan Naj

Vous devrez peut-être également arrêter SQL Server Reporting Services.

8
bjorkblom

Tapez en ligne de commande

netstat -aon | findstr :80

Vous verrez le PID du processus qui utilise le port 80. Ensuite, essayez de configurer cette application pour qu'elle utilise un autre port, ou simplement la tuer.

UPDATE: J'écrirai mon commentaire ici pour être plus clair: selon this link, sous Windows 10, il est le service MsDepSvc qui occupe le port 80. C'est pour IIS ou Web Matrix 2. Si vous n'utilisez pas IIS ou Web Matrix 2 pour aucun développement Web, vous pouvez essayer d'arrêter le service.

Et pour la deuxième partie de votre question, vous pouvez indiquer à Apache d'utiliser un autre port en modifiant [dossier Apache] /conf/httpd.conf. Il a la chaîne "Listen 80". Remplacez 80 par le port libre de votre choix et rechargez Apache

8
Sergey Maksimenko

Dans mon cas, j'ai besoin à la fois de développement XAMPP pour Apache et de IIS Express for .Net 2013; alors je fais ce qui suit:

  1. Dans l'invite de commande, tapez services.msc, cela charge "Services Windows" où je trouve "Service de publication World Wide Web" et l'arrête. STOP du service de publication World Wide Web

  2. Je lance le panneau de configuration XAMPP en cliquant sur "Config", puis choisissez "Apache httpd.conf". Recherchez "80", puis remplacez-le par "8080" dans "Listen 80" et "ServerName localhost: 80". Enregistrez le fichier à partir de "Enregistrer sous" et choisissez "Tous les fichiers" pour ne pas l'enregistrer en tant que texte à partir de "Type de fichier" et le "Codage" doit être "UTF-8". Apache httpd.conf

  3. Quittez le panneau de configuration XAMPP, puis redémarrez-le et lancez "Action" dans Apache & MySQL. Maintenant, vous verrez le port modifié. Comme vous le savez maintenant, vous devez accéder à votre serveur Apache en utilisant "localhost: 8080" au lieu de "localhost". Aussi, vous avez à la fois Apache et IIS Express s'exécutant sur le même PC Windows 10.

J'ai lu un article où l'auteur a suggéré d'utiliser le port "9080" mais cela n'a pas fonctionné pour moi.

5
alhaythum

Le problème se produit chaque fois qu'un processus utilise le port 80.

Vous pouvez exécuter Netstat qui est disponible dans Panneau de configuration XAMPP et vérifier quel processus utilise le port 80 de votre système.

Pour moi, ce n'était pas IIS, mais Skype.

Désactivez ce processus/cette application, puis démarrez les services Apache.

3
armsdev

Si vous devez exécuter IIS sur le port 80/443 mais sur une adresse IP différente, vous pouvez utiliser netsh http add iplisten xxx.xxx.xxx.xxx comme décrit ici: https://support.Microsoft.com/ en-us/help/954874/iis-binds-à-toutes-adresses-IP-sur-un-serveur-lorsque-vous-installez-iis-7-0-on

Vous trouverez plus de détails sur netsh http add iplisten ici: https://msdn.Microsoft.com/en-us/library/windows/desktop/cc307219.aspx

1
TN.

Je sais que peut-être ce problème a été résolu, mais le même problème se posait avec une solution différente. Pour cela, je vais expliquer une autre solution possible. Dans mon cas, le port 80 était occupé par Skype (pid: 25252) et je ne savais pas quel programme il était.

Pour voir le pid du programme qui utilise le port 80, vous pouvez utiliser la commande que d'autres personnes ont dite auparavant:

netstat -aon | findstr 0.0:80

Pour tuer le processus à l'aide du pid (dans le cas où vous ne connaissez pas le programme), vous devez ouvrir le CMD avec l'autorisation de l'administrateur et utiliser la commande suivante:

taskkill /pid 25252

Les autres options avec cette commande sont ici .

1
CGG

Je sais que cela n’EST peut-être pas la cause de votre problème, mais j’ai passé quelques heures à me cogner la tête contre le mur pour résoudre ce problème et c’est ma solution.

(sous Windows 10 x32)

J'ai donc installé XAMPP dans un répertoire profondément imbriqué et tous les fichiers de configuration font référence à root\xampp\Apache alors que mes fichiers étaient some_dir\another_dir\whatthehelliswrongwithme\finally\xampp\Apache

mes options étaient donc de parcourir et de modifier toutes les références \xampp\Apache et de les orienter au bon endroit, OU, l'option beaucoup plus simple ... réinstallez XAMPP à la racine, de sorte que toutes les références pointent au bon endroit.

Un peu énervant, mais je suppose que c’est ce que nous obtenons lorsque Mac et Windows essaient d’être des amis.

J'espère que cela aide quelques-uns d'entre vous.

1
Nathaniel Rogers

Je pense qu'il est simple de changer le port de votre serveur Apache

  1. Allez à C:\xampplite\Apache\conf
  2. Ouvrir les fichiers httpd.conf
  3. Rechercher Listen 8
  4. Changer 8 en un autre comme 9080
  5. Maintenant, redémarrer XAMPP essayer de démarrer le serveur

NB J'utilise version du serveur: 5.1.41 avec Windows 1

1
reza.cse08

Ce fichier node.js corrigé ne fonctionnant pas sur le port 80 sous Windows 10, je recevais également une erreur listen eacces. Démarrer> Services, recherchez "Service de publication sur le World Wide Web" et désactivez-le, exactement comme décrit par paaacman.

0
blented

Tandis que beaucoup prennent l’approche pour arrêter/désactiver IIS, il peut être utile de savoir que vous pouvez simplement modifier le port XAMPP auquel il a été répondu ici . C’est la voie que je devais prendre car j’avais besoin de courir tous les deux.

0
MackAltman

J'ai eu le même problème et aucune des solutions ci-dessus n'a fonctionné pour moi.

Apache utilise les ports 80 et 443 (pour HTTPS) et les deux doivent être prêts à être utilisés pour qu'Apache puisse démarrer correctement. Seul le port 80 pourrait ne pas suffire.

J'ai découvert dans mon cas que, lors de l'exécution de VMWare Workstation, le port 443 était utilisé par le partage VMware.

Vous devez désactiver le partage dans les préférences principales de VMware ou modifier le port dans cette section.

Après cela, tant que vous n'avez aucun autre serveur connecté au port 80 (voir les solutions ci-dessus), vous devriez pouvoir démarrer Apache ou NGinx sur XAMPP ou toute autre application de pile Windows.

J'espère que cela aidera d'autres utilisateurs.

0
Marc Quattrini

Outre la raison tout à fait évidente (IIS), il existe une autre raison assez commune pour ce problème. Il convient de citer cette question et sa réponse ici:

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

Donc, si Skype est installé sur votre ordinateur, assurez-vous également de vérifier cela. La solution est citée ici:

Pour désactiver et désactiver l'utilisation et l'écoute par Skype des ports 80 et 443, ouvrez la fenêtre Skype, puis cliquez sur le menu Outils et sélectionnez Options. Cliquez sur l'onglet Avancé et accédez au sous-onglet Connexion. Décochez ou décochez la case à cocher pour l'option Utiliser les ports 80 et 443 comme alternative aux connexions entrantes. Cliquez sur le bouton Enregistrer, puis redémarrez Skype pour que le changement soit effectif.

0
Earth Engine

Arrêter "certains processus système" peut être délicat ... vous devriez plutôt éditer le [dossier Apache] /conf/httpd.conf comme mentionné par @Sergey Maksimenko et si vous voulez configurer un hôte virtuel, utilisez le nouveau port dans [Apache dossier] /conf/extra/httpd-vhosts.conf (j'ai utilisé 4900 au lieu de 80 et 4901 au lieu de 443 dans [dossier Apache] /conf/httpd-ssl.conf). Et n'oubliez pas d'utiliser le port pour accéder à la page sur localhost (ou votre virtualhost), par exemple: localhost: 4900/index.html

0
Jarda