J'essaie de trouver une solution à ce problème depuis deux jours. Je suis nouveau dans ce genre de chose, alors je vous serais reconnaissant de bien vouloir me dire comment résoudre ce problème.
J'ai essayé de supprimer Skype, mais cela n'a pas fonctionné. J'ai essayé de désactiver le Web, IIS 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
Ouvrez une invite CMD en tant qu'administrateur et exécutez la commande suivante:
net stop was /y
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 de l'agent de déploiement Web et arrêtez-les. Vous devriez également les désactiver.
Redémarrez Apache avec XAMPP :)
Lien de référence: https://www.sitepoint.com/unblock-port-80-on-windows-run-Apache/
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 modifiez 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 à faire est de mettre localhost:8080
dans le navigateur pour que celui-ci sache qu'il cherche le port 8080. Sinon, le port 80 est utilisé par défaut et ne trouve pas votre site local.
Cela nécessitera également de redémarrer Apache pour que la modification soit prise en compte.
Voila! Fixé.
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 indiquer 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 "Le port 443 utilisé par" Impossible d'ouvrir le processus "avec PID ...", vous devez modifier httpd.conf et httpd-ssl.conf.
Dans httpd-ssl.conf, changez:
Listen 443
à Listen 4433
<VirtualHost _default_:443>
à <VirtualHost _default_:4433>
ServerName www.example.com:443
à ServerName www.example.com:4433
Extrait de ceci article :
Accédez à votre commande d'exécution et entrez:
netstat -o -n -a | findstr 0.0:80
Le dernier numéro ici est l'identifiant du processus l'utilisant. Ceci est le plus souvent IIS ou un autre service de relations Web et est facile à résoudre, mais de temps en temps (très souvent, il semblerait qu’on regarde sur Google), il semble s’agir du PID 4 - qui, selon la tâche Windows Manager est le noyau et le système NT. Pas très utile étant donné que tuer cela entraînera un écran bleu de la mort.
Le port d'accostage 80 n'a rien à voir avec IIS ni avec le Web, il s'agit de SQL Server Reporting Services. Désactivez tout ce qui ressemble à un service SQL Server et redémarrez Apache. Aucun redémarrage n'est nécessaire.
Donc, des problèmes avec PID 4 en écoutant le port 80? Vérifiez vos services SQL et désactivez-les.
UPDATE - Commentaire de @sangam:
Travaillé d'un coup. Dans mon cas, il s’est avéré qu’il s’agissait de rapports SQL Server. J'ai arrêté le service pour toutes les instances installées et cela a fonctionné (sans redémarrage de la machine).
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:
Skype: Skype utilise le port 80/443 par défaut. Vous pouvez changer ceci de Tools -> Options -> Advanced -> Connections
et désactiver la case "utiliser les ports 80 et 443 pour les connexions entrantes supplémentaires".
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
.
SQL Server Reporting Service: Vous devez arrêter ce service car le port 80 peut être utilisé si IIS n'est pas en cours d'exécution. Allez aux services locaux et arrêtez-le.
VMware Workstation: Si vous exécutez VMware Workstation, vous devez également arrêter le serveur VMware Workstation - port 443.
Ces options fonctionnent parfaitement avec moi et je peux démarrer le service Apache sans erreur.
L'autre option consiste à changer le port d'écoute Apache à partir de httpd.conf et à définir un autre numéro de port.
J'espère que cette solution aidera tous ceux qui font face au même problème.
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 d'agent de déploiement Web et sélectionnez "Arrêter"
Redémarrer XAMPP
De même, après avoir double-cliqué sur "Service de l'agent de déploiement Web", vous pouvez définir le type de démarrage sur Manuel, afin que le "Service de l'agent de déploiement Web" ne démarre pas automatiquement.
Comme @johnkarka a commenté la question, ce port est également utilisé par le service de génération de rapports de SQL Server. Après avoir arrêté cela, Apache a bien commencé.
La chose amusante est que IIS fonctionnait correctement dans la même configuration, mais pas avec Apache; il a dû arrêter le service de génération de rapports SQL pour le faire fonctionner sur le port par défaut (80).
Ce qui a fonctionné pour moi, c’est d’arrêter Internet Information Services (IIS). Si vous utilisez Windows 7, cliquez sur le bouton Démarrer, puis dans la zone 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 ne soit sélectionnée, vous devriez simplement pouvoir cliquer sur Arrêter dans le volet de droite. Mon XAMPP Apache a démarré comme prévu. J'espère que tout a fonctionné pour vous.
Sous Windows 10, pour libérer le port 80:
dans mon cas, j'ouvre "Services" à partir de "Rechercher Windows" (dans le coin gauche de l'écran), puis arrête tous les services du serveur SQL MSSQLSERVER et cela fonctionne à nouveau
J'ai eu le même problème, mais dans mon cas, Apache fonctionnait déjà et pour une raison quelconque, l'outil de configuration XAMPP ne l'a pas montré. C'est arrivé après que j'ai lancé XAMPP pour la première fois après l'installation. Après le crash des 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.
J'ai eu ce problème aussi 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 français ):
Je ne sais pas comment cela affecte d'autres services, mais cela a résolu le problème de façon permanente et jusqu'à présent, je n'ai vu aucun problème.
Utiliser Windows 10.
Si SQLServer Reporting Services s'exécute localement, vous devez également arrêter cela.
"SQL Server Reporting Service" posait problème dans mon système. Après l'avoir arrêté, Apache a commencé à fonctionner correctement.
J'ai le même problème, j'ai résolu le problème, juste désactivé
"Service BranchCache" dans les services.
D'une certaine manière, Windows 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 ne peut pas savoir quel service est utilisé.
Cliquez sur services dans le panneau de configuration de Xampp (le nom du 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 à gauche après avoir cliqué sur le nom du service.). Il s’agit ensuite du 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, lancez Apache, puis lancez Skype
Pour ceux avec ASP.NET, C # ou ayant des utilisateurs de SQL Server, Si vous utilisez SQlServer OR Visual Studio, votre port peut rencontrer. La meilleure chose à faire est de cliquer sur Command> servies.msc puis de rechercher SQl Server Reporting Service, puis de l'arrêter.
J'ai eu le même problème lorsque, lors de l'installation de MS WebMatrix, IIS Le serveur a été bloqué sur le port 80 sur lequel XAMPP s'exécutait. J'ai essayé de trouver le service de publication 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.
S'il vous plaît se référer avec cette
référence du lien
XAMPP - Port 80 utilisé par "Processus impossible à ouvrir" avec le PID 4! 12
exécuter le commentaire dans la liste des tâches de cmd
et trouvez le nom du PID et du processus associé à ce gestionnaire de tâches maintenant ouvert
vous pouvez également ouvrir le gestionnaire de tâches de fenêtre en utilisant CTRL + ALT + SUPPR
maintenant, cliquez sur l'onglet Processus et trouvez le nom avec l'aide de PID, cliquez dessus avec le bouton droit et terminez le processus.
maintenant à nouveau redémarrer le xampp
Le service d'agent de déploiement Web est déployé avec WebMatrix et a été la cause de mes malheurs. Il peut également être distribué avec d’autres applications installées à l’aide de programme d’installation Web de Microsoft.
La désinstallation a résolu mes problèmes!
J'ai eu le même problème. Après quelques googles sont arrivés à cette page. Puisque je suppose que cette erreur peut avoir plusieurs raisons, é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 est apparu 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 quelque part sur mon serveur. Mais c'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 produite.
Donc, parfois, la recherche de probables points d'arrêt dans votre code est une bonne approche.
si le service est http.sys
Vous devez modifier l'adresse IP liée pour http.sys.
netsh http add iplisten ipaddress = ::
Fonctionne bien sans redémarrer l'OS.
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
Cela fonctionne généralement lorsque vous arrêtez IIS Server et Skype