XAMPP - Port 80 utilisé par «Impossible d'ouvrir le processus» avec PID 4! 12

182

J'essaie de trouver comment résoudre ce problème depuis deux jours. Je suis nouveau dans ce genre de choses, alors j'apprécierais que quelqu'un me dise comment y remédier.

J'ai essayé de supprimer skype mais cela n'a pas fonctionné, j'ai essayé de désactiver le réseau mondial, IIS désactivé, rien ne semble fonctionner.

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
utilisateur3097839
la source
2
Non, je veux le taper ici, tout le monde ne sait pas tout sur les ordinateurs. Je demandais de l'aide, je l'ai recherchée sur Google et tout ce que les gens disent de faire ne fonctionne pas.
user3097839
Ah, cela a plus de sens maintenant. Essayez petri.co.il/quickly_find_local_open_ports.htm pour découvrir qui bloque le port 80
Pekka
9
@Pekka Je travaille avec des ordinateurs depuis peu de temps après avoir arrêté de craquer dans les couches, je suis également programmeur depuis près d'une décennie et j'ai googlé cette question et heureusement parce que les personnes qui posent et répondent à cette question UTILISENT ceci site, j'ai rapidement trouvé la réponse. Bien que cela devrait probablement être migré vers le super-utilisateur, harceler les gens et les faire se sentir stupides pour avoir posé une question légitime est contraire au fonctionnement de cette communauté. Je vous suggère de trouver un autre but dans la vie.
3
Eh bien, je ne sais pas où ce résultat a été produit lors de votre recherche, mais dans ma recherche, grâce à ce fil, c'était en haut de la liste. C'est précisément ce que cette communauté s'efforce d'être, une base de connaissances très visible et bien connue pour ce genre de choses. Alors même si j'apprécie ce que vous dites, en réalité, mission accomplie grâce au PO.
@TechnikEmpire mais le fait que cette question soit désormais un résultat Google de haut niveau fait partie du problème, pas de la solution. Le résultat de Google contenait déjà d'excellentes réponses avant que cette question ne devienne réalité - j'ai vérifié avant de faire le commentaire, je le fais toujours. Ces réponses ont peut-être maintenant été rejetées par cette question, en raison de l'immense influence de SO auprès de Google. Voir aussi la discussion ici: meta.stackexchange.com/questions/160565/…
Pekka

Réponses:

354
  1. Ouvrez une invite CMD en tant qu'administrateur et exécutez la commande suivante:

    net stop was /y
    
  2. Ouvrez la boîte de dialogue Exécuter (appuyez sur Win+R ), puis tapez:services.msc

    Recherchez ensuite le service de publication World Wide Web ( service de publication WWW) et le service d'agent de déploiement Web et arrêtez-les. Vous devez également les désactiver.

  3. Redémarrez Apache avec XAMPP :)

Réf du lien: https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Vo Quoc Cuong
la source
15
Je ne trouve pas le World Wide Web
Mohammad Kermani
4
Une autre façon d'accéder aux services - allez àControl Panel > System and Security > Administrative tools > Services
Al.G.
28
«SQL Server Reporting Service (MSSQLSERVER)» utilise également le port 80 et doit donc être arrêté si le serveur MS-SQL est installé sur votre ordinateur.
johnkarka
1
Une idée de pourquoi cela pourrait se produire? Est-ce que Windows est en train de faire de la douche ou quelqu'un pirate ma machine?
Stan Quinn du
5
J'ai désactivé les services de publication World Wide Web et le problème a été résolu! Je vous remercie.
Mike Stratton
139

Une autre option très simple consiste simplement à configurer Apache pour qu'il écoute sur un autre port. Cela peut être fait en cliquant sur le bouton "Config" sur la même ligne que le module "Apache", sélectionnez le fichier "httpd.conf" dans la liste déroulante, puis changez la ligne "Listen 80" en "Listen 8080". Enregistrez le fichier et fermez-le.

Maintenant, il évite le port 80 et utilise le port 8080 à la place sans problème. La seule chose supplémentaire que vous devez faire est de vous assurer de mettre localhost:8080dans le navigateur afin que le navigateur sache regarder sur le port 8080. Sinon, il est par défaut sur le port 80 et ne trouvera pas votre site local.

Cela vous demandera également de redémarrer Apache pour que la modification prenne effet.

Voila! Fixé.

gtr1971
la source
J'ai été mis à niveau vers Windows 10 et cela a cassé mon installation XAMP, cette réponse l'a corrigé pour moi. Merci!
Ian
Cela a fonctionné pour moi aussi, sauf que je suis sorti de tout, j'ai cliqué sur xampp_start C:/xampp, puis je l'ai changé en port 81. 8080 n'a pas fonctionné pour moi.
user3553260
1
Je recommande votre solution. Dans mon cas, j'ai besoin de développer une application ASP .NET et PHP. Si j'arrête, World Wide Web Publishing Serviceje ne peux pas travailler sur mon application ASP. Donc changer le port est une solution pour moi. Merci!
mihkov
3
En plus du fichier httpd.conf, vous devrez peut-être également changer le port de "Config"> "Service and Port Settings". Dans l'onglet "Apache", remplacez la valeur "Main Port" par le nouveau port
Ian A
42

Dans httpd.conf, modifiez les lignes suivantes, puis redémarrez l'application:

  • Listen 80 à Listen 8080
  • ServerName localhost:80 à ServerName localhost:8080

Lorsque vous appuyez sur "Démarrer", l'application peut toujours dire que vous avez une erreur du type "Port 80 utilisé par" Impossible d'ouvrir le processus "avec PID ..." mais cela fonctionnera toujours.

Si l'erreur inclut "Port 443 utilisé par" Impossible d'ouvrir le processus "avec PID ...", vous devez modifier à la fois httpd.conf et httpd-ssl.conf.

Dans le changement de httpd-ssl.conf:

  • Listen 443 à Listen 4433
  • <VirtualHost _default_:443> à <VirtualHost _default_:4433>
  • ServerName www.example.com:443 à ServerName www.example.com:4433
Ogglas
la source
J'ai fini par devoir le faire sur mon problème. la bonté! ce PID est par le système.
mzimhle
42

Extrait de cet article :

  1. Accédez à votre commande d'exécution et entrez:

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

Le dernier numéro ici est l'ID de processus qui l'utilise. Il s'agit le plus souvent d'IIS ou d'un autre service Web et est facile à résoudre, mais de temps en temps (très souvent, il semblerait que vous regardiez autour de Google), il semble être PID 4 - qui, selon le gestionnaire de tâches Windows, est le noyau NT et Système. Pas très utile étant donné que le meurtre, cela entraînera un écran bleu de la mort.

La chose qui monopolise le port 80 n'a rien à voir avec IIS ou le Web, c'est SQL Server Reporting Services. Désactivez tout ce qui ressemble à un service SQL Server et redémarrez Apache, pas besoin de redémarrer.

Alors des problèmes avec le PID 4 écoutant le port 80? Vérifiez vos services SQL et désactivez-les.

UPDATE - Commentaire de @sangam:

A travaillé sur un coup. Dans mon cas, il s'est avéré qu'il s'agissait de services de rapports de serveur SQL. J'ai arrêté le service pour toutes les instances installées et cela a fonctionné (sans redémarrage de la machine).

Chridam
la source
7
A travaillé sur un coup. Dans mon cas, il s'est avéré qu'il s'agissait de services de rapports de serveur SQL. J'ai arrêté le service pour toutes les instances installées et cela a fonctionné (sans redémarrage de la machine). Je vous remercie.
sangam
1
Très utile .. avant cela, j'ai changé de port skype. et la fermeture des services SQL m'a beaucoup aidé. Merci beaucoup
Waqar
2
enfin, dans mon cas, c'était MSSQL aussi
Tom Sarduy
1
l'arrêt de SQL Server Reporting Services (MSSQLSERVER) a fonctionné pour moi
Disturb
1
Merci, c'était la réponse pour moi.
balron le
34

J'ai donc rencontré le même problème en essayant de démarrer le service Apache et j'aimerais partager mes solutions avec vous. Voici quelques notes sur les services ou programmes pouvant utiliser le port 80:

  1. Skype : Skype utilise le port 80/443 par défaut. Vous pouvez changer cela Tools -> Options -> Advanced -> Connectionset désactiver la case à cocher "utiliser les ports 80 et 443 pour les connexions entrantes supplémentaires" .

  2. IIS : IIS utilise le port 80 par défaut, vous devez donc l'arrêter. Vous pouvez utiliser les deux commandes suivantes: net stop w3svc, net stop iisadmin.

  3. Service de rapports SQL Server : vous devez arrêter ce service car il peut prendre le port 80 si IIS n'est pas en cours d'exécution. Accédez aux services locaux et arrêtez-le.

  4. VMware Workstation : si vous exécutez VMware Workstation, vous devez également arrêter le serveur VMware Workstation - port 443.

Ces options fonctionnent très bien avec moi et je peux démarrer le service Apache sans erreur.

L'autre option est de changer le port d'écoute Apache de httpd.conf et de définir un autre numéro de port.

J'espère que cette solution aidera quiconque est à nouveau confronté au même problème.

Peter T.
la source
4
Le mien était le service de reporting SQL Server. Merci!
Jayanga Kaushalya
l'arrêt de w3svc a résolu mon problème sur Windows 10. Excellente réponse.
Nox
Comment savoir quels services utilisent le port 80? (Windows 10)
Chris Nielsen
Pour moi, cela a fonctionné "IIS: IIS utilise le port 80 par défaut, vous devez donc l'arrêter. Vous pouvez utiliser les deux commandes suivantes: net stop w3svc, net stop iisadmin"
Ravindra Singh
33

Vous devrez peut-être arrêter le «service d’agent de déploiement Web»

Appuyez sur Win + R et tapez services.msc

Faites un clic droit sur le service de l'agent de déploiement Web et sélectionnez "Arrêter"

Redémarrez XAMPP

De plus, après avoir double-cliqué sur "Service d'agent de déploiement Web", vous pouvez définir le type de démarrage sur Manuel, de sorte que "Service d'agent de déploiement Web" ne démarre pas automatiquement

Stephen Burrows
la source
1
Y a-t-il un problème en désactivant ce service?
Muhammad Muazzam
6
  1. Ouvrez le Gestionnaire des tâches (Ctrl + Alt + Suppr).
  2. Allez dans l'onglet "Détails".
  3. Trier par numéro PID.
  4. Terminer le processus qui utilise le numéro PID indiqué par erreur.
  5. Redémarrez XAMPP.
wmcnally
la source
2
Dans mon cas, c'est le système qui utilise PID4. Cela peut donc être dangereux.
Fusion
a fonctionné pour moi car le port a été utilisé par mon autre serveur. Et considérez aussi le commentaire de @ Fusion
Varshaan
6

Comme il y a un commentaire de @johnkarka sur la question, ce port est également utilisé par le service de reporting SQL Server. Après avoir arrêté cela, Apache a bien démarré.

  1. Allez dans "SQL Server Configuration Manager"
  2. Cliquez sur "SQL Server Reporting Service" et arrêtez-le

entrez la description de l'image ici

Le plus drôle, c'est que IIS fonctionnait bien dans la même configuration mais pas Apache, a dû arrêter le service SQL Reporting pour le faire fonctionner sur le port par défaut (80).

Hammad Khan
la source
4

Ce qui a fonctionné pour moi, c'est l'arrêt des services Internet (IIS). Si vous utilisez Windows 7, cliquez sur votre bouton Démarrer et dans votre champ de recherche, tapez "iis". Cliquez sur "Gestionnaire des services Internet (IIS)". Lorsque la fenêtre apparaît et en supposant qu'aucune des icônes n'est sélectionnée, vous devriez simplement pouvoir cliquer sur Arrêter dans le volet d'action de droite. Mon XAMPP Apache a démarré. J'espère que tout a fonctionné pour vous.

midoriha_senpai
la source
3

Dans Windows 10, pour libérer le port 80:

dans mon cas, j'ouvre "Services" depuis "Rechercher Windows" (dans le coin gauche de l'écran), puis j'arrête tous les services du serveur SQL MSSQLSERVER et cela fonctionne à nouveau

NP
la source
3

J'ai également eu ce problème et l'arrêt des services utilisant le port 80 n'a pas aidé. Je l'ai résolu en suivant cette procédure (trouvée sur un tableau français ):

  1. Lancez RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. Changez la valeur de "start" sur 4 (désactivé)
  4. Redémarrez votre ordinateur

Je ne sais pas comment cela affecte les autres services, mais cela a résolu définitivement le problème et jusqu'à présent, je n'ai vu aucun problème.

Utilisation de Windows 10.

vard
la source
2

Si vous utilisez SQLServer Reporting Services localement, vous devez également arrêter cela.

Senthil
la source
2

J'ai eu le même problème, mais dans mon cas, Apache était déjà en cours d'exécution et pour une raison quelconque, l'outil de configuration XAMPP ne l'a pas montré. Cela s'est produit après avoir démarré XAMPP pour la première fois après l'installation. Après avoir planté les autres instances Apache, tout allait bien et les ports 80 et 443 étaient à nouveau libres.

Donc, avant d'apporter des modifications à votre système, assurez-vous que quelque chose d'aussi évident que ce qui précède ne se produit pas.

magnétronnie
la source
2

"SQL Server Reporting Service" causait des problèmes dans mon système, après l'avoir arrêté, Apache a commencé à fonctionner correctement

yadavr
la source
2

J'ai le même problème, j'ai résolu le problème, juste désactivé

"Service BranchCache" dans les services.

D'une manière ou d'une autre, Windows se met à jour, ce service est déclenché au démarrage et utilise 80 ports. Lorsque vous vérifiez via netstat, vous pouvez voir que le système est utilisé, mais vous ne comprenez pas quel service est utilisé.

Günay Gültekin
la source
1
La désactivation de ce service après chaque mise à jour de Windows 10 résout le problème
Matt
2

Après avoir changé le port principal 80 en 8080, vous devez mettre à jour le port dans le panneau de contrôle: entrez la description de l'image ici Cliquez ensuite ici: entrez la description de l'image ici Et ici: entrez la description de l'image ici puis enregistrez et redémarrez.

Zeke
la source
1

Cliquez sur services dans le panneau de configuration Xampp (le nom de fichier est services.msc, informations supplémentaires).

Tout d'abord, recherchez IIS, s'il est en cours d'exécution. Arrêtez-le (arrêtez cette option de service sur la gauche après avoir cliqué sur le nom du service.). Ensuite, c'est le problème principal, recherchez le service de déploiement Web (pas le nom exact bien qu'il ait un déploiement Web au début). Arrêtez ce service aussi. Réessayez et Apache devrait fonctionner.

Si vous utilisez Skype, quittez-le également, exécutez Apache, puis lancez Skype

ytpillai
la source
Normalement, Skype accapare le port 80 mais est plus intelligent que XAMPP et utilisera un port différent une fois qu'il se rendra compte que 80 appartient à Apache Server
ytpillai
1

J'ai eu le même problème, quand j'ai été installé MS WebMatrix, IIS Server a été bloqué le port 80 sur lequel XAMPP fonctionnait. J'ai essayé de trouver le service de publication du World Wide Web et de l'arrêter, mais je ne l'ai pas trouvé dans la liste. Le meilleur moyen est de changer un port.

Veuillez vous référer à ce
lien réf.

Rango
la source
1

Pour ceux avec ASP.NET, C # ou ayant des utilisateurs SQL Server, Si vous utilisez SQlServer OU Visual Studio, votre port peut rencontrer. La chose la plus simple à faire est de cliquer sur Commande> servies.msc, puis de trouver SQl Server Reporting Service, puis de l'arrêter.

SumansTM21
la source
0

si le service est http.sys

Vous devez changer l'adresse IP liée pour http.sys

netsh http ajouter iplisten ipaddress = ::

Fonctionne correctement sans redémarrer le système d'exploitation.

mik3fly-4steri5k
la source
0

Le service de l'agent de déploiement Web est déployé avec WebMatrix et a été la cause de mes problèmes. Il peut également être distribué avec d'autres applications installées à l'aide du programme d'installation de la plate-forme Web de Microsoft.

Le désinstaller a résolu mes problèmes!

brunodotcom
la source
Non, changez simplement le port sur lequel le serveur écoute.
rango
0

Pour moi fonctionne généralement: - Désactiver Skype - Désactiver tous les processus SQL Server affichés dans services.msc - Désactiver la publication World Wide Web dans services.msc

Iwona Kubowicz
la source
0

Cela fonctionne généralement après l'arrêt du serveur IIS et de Skype

N / A
la source
0

XAMPP - Port 80 utilisé par «Impossible d'ouvrir le processus» avec PID 4! 12

exécuter le commentaire dans la liste des tâches cmd

et trouvez le PID et le nom de processus liés à ce gestionnaire de tâches de fenêtre maintenant ouvert

vous pouvez également ouvrir le gestionnaire de tâches de la fenêtre en utilisant CTRL + ALT + SUPPR

maintenant cliquez sur l'onglet processus et trouvez le nom qui utilise le PID et faites un clic droit dessus et terminez le processus

maintenant redémarrez le xampp

Surendra Kumar Ahir
la source
0

J'ai eu le même problème. Après quelques recherches sur Google, nous sommes arrivés à cette page. Puisque je suppose que cette erreur peut avoir diverses raisons, alors écoutez mon expérience:

Journal de ligne rouge 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!
...

Finalement, il s'est avéré que j'avais cette ligne de code dans mes codes php:

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

Le but de ce morceau de code était d'obtenir un miroir du résultat php de quelque part dans mon serveur. Mais il est juste coincé dans une boucle qui obtient son propre contenu!

J'ai réparé le code:

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

Ensuite, j'ai redémarré apache ... et cette erreur apache ne s'est plus jamais reproduite.

Donc, parfois, la recherche de points d'arrêt probables dans votre code est une bonne approche.

Hossein Khalesi
la source
0

Dans Ubuntu par défaut, le système ne vous permettra pas d'occuper les ports privilégiés [0 à 1023], à part spécifier le port comme 80, vous devez exécuter XAMP avec sudo.

Arun Joshla
la source
-1

J'écris ceci, parce que je ne trouve pas de vêtements pour la même question. Dans mon cas, le PID était de 2484.

  1. vous devez trouver un processus ou un service avec ce PID: ouvrez cmd (sous Windows) et écrivez:

    tasklist
    
  2. Trouvez votre PID dans cette liste et lisez le nom du processus ou du service.

  3. Maintenant, vous pouvez tuer cela en utilisant le Gestionnaire des tâches

  4. trouver ce nom dans la liste des processus

  5. cliquez sur Terminer le processus.

C'est mon cas. Vous devez éventuellement ouvrir services.msc et arrêter le service avec votre PID.

Sur mon ordinateur xampp, cela a bien fonctionné :)

Marcin Bąk
la source