Je viens de réinstaller XAMPP, et lorsque j'essaie de démarrer mon serveur Apache dans le panneau de configuration de XAMPP, le message d'erreur suivant s'affiche:
16:50:25 [Apache] Status change detected: running
16:50:26 [Apache] Status change detected: stopped
16:50:26 [Apache] Error: Apache shutdown unexpectedly.
16:50:26 [Apache] This may be due to a blocked port, missing dependencies,
16:50:26 [Apache] improper privileges, a crash, or a shutdown by another method.
16:50:26 [Apache] Press the Logs button to view error logs and check
16:50:26 [Apache] the Windows Event Viewer for more clues
16:50:26 [Apache] If you need more help, copy and post this
16:50:26 [Apache] entire log window on the forums
Comment résoudre ce problème?
Ouvrir Skype.
Outils -> Options -> Avancé -> Connexion.
Décochez la case " Utilisez les ports 80 et 443 comme alternative aux connexions entrantes "
Déconnectez-vous et fermez toutes les fenêtres Skype. Essayez de redémarrer votre Apache.
Comme je travaille dans un environnement d'entreprise où les développeurs sont confrontés à des problèmes de pare-feu, aucune autre réponse n'a résolu mon problème.
Comme le port n'est pas utilisé par Skype, mais par d'autres applications internes, J'ai suivi les étapes ci-dessous pour résoudre le problème:
Étape 1 - Dans le panneau de configuration de XAMPP, sous Apache, cliquez sur le bouton Configuration, puis sélectionnez Apache (httpd.conf).
Dans le fichier httpd.conf , j'ai trouvé une ligne qui dit:
Listen 80
Et changez le 80 en n'importe quel nombre/port que vous voulez. Dans mon scénario, j'utilise le port 8080.
Listen 8080
Toujours dans le fichier httpd.conf , j'ai trouvé une autre ligne qui dit:
ServerName localhost:80
Changer 80 à 8080.
ServerName localhost:8080
Étape 2 - Dans le panneau de configuration de XAMPP, sous Apache, cliquez à nouveau sur le bouton Config, mais sélectionnez cette fois Apache ( httpd-ssl.conf ). Dans le fichier httpd-ssl.conf , recherchez la ligne indiquant
Listen 443
Et changez le 443 en n’importe quel numéro/port que vous voulez. Je vais utiliser 4433 comme nouveau numéro de port.
Listen 4433
Toujours dans le fichier httpd-ssl.conf , trouvez une autre ligne qui dit
<VirtualHost _default_:443>
ServerName localhost:443
Et changer 443 en 4433 .
<VirtualHost _default_:4433>
ServerName localhost:4433
N'oubliez pas de sauvegarder les fichiers httpd.conf et httpd-ssl.conf après avoir effectué certaines modifications. Puis redémarrez le service Apache.
Une chose que vous pouvez faire est d’arrêter les services sur le port 80 en émettant
net stop http
dans un cmd. On vous demandera si vous êtes sûr de vouloir arrêter ces services. J'ai découvert que j'avais quelques services que je n'utilisais pas et je les ai désactivés.
Pour voir qui d'autre utilise le type de port 80 dans une cmd
netstat -abno
Je suppose que vous voulez exécuter Apache sur le port 80. Si tel est le cas et que vous souhaitez conserver les services en conflit, vous devrez les associer à un nouveau port.
Si le problème n'est pas un port occupé, vous pouvez également essayer ceci: sélectionnez "afficher les informations de débogage" dans le panneau de configuration XAMPP. Lorsque vous démarrez Apache, vous verrez quelque chose comme "Executing" c:\xampp\Apache\bin\httpd.exe ". Si vous exécutez
c:\xampp\Apache\bin\httpd.exe
dans un cmd, vous obtiendrez plus d'informations (par exemple, une fois, j'ai eu un problème avec mon fichier httpd.conf).
Connexes: Comment libérer mon port 80 sur Windows localhost? et Apache ne fonctionnera pas sous xampp
Dans XAMPP Control Panel V3.2.1, cliquez sur le bouton "NetStat" en haut à droite. Assurez-vous que le port 80 n'est utilisé par aucun autre programme. Cliquez ensuite sur "Shell" juste en dessous. Émettez cette commande "Tapez ap puis TAB deux fois"
Apache_Start.bat
Vous verrez réellement l'erreur exacte pour laquelle Apache a échoué. Il s'agira probablement d'un problème de configuration d'hôte virtuel ou d'un autre problème. Il affichera le numéro de ligne sur lequel l'erreur se produit. Juste réparer cette erreur. Notez que dans RootDocument, un\final peut également être une source d’erreur. Supprimez les "\" suivants.
Pour plus de détails sur la réponse, cochez ici
Suivez ces étapes:
Choisissez le "Apache (httpd.conf)" et trouvez ce code ci-dessous et changez-le en celui-ci:
#Changez ceci pour écouter des adresses IP spécifiques comme indiqué ci-dessous
#pour empêcher Apache de glisser sur toutes les adresses IP liées.
#Listen 0.0.0.0:80
#Listen [::]: 80
Listen 80
# Prise en charge des objets partagés dynamiques (DSO)
# Remarque: les configurations qui utilisent IPv6 mais pas les adresses mappées IPv4 nécessitent deux
# Listen directives: "Listen [::]: 443" et "Listen 0.0.0.0:443"
#
#Écouter 0.0.0.0:443
#Listen [::]: 443
Listen 443
Attendez simplement que votre ordinateur/ordinateur portable soit automatiquement redémarré et essayez d'ouvrir à nouveau votre panneau de configuration XAMPP, puis démarrez votre Apache.
Mon problème était que, dans httpd.conf, les entrées DocumentRoot
et <Directory>
pointaient vers des dossiers non existants.
Par exemple, le fichier httpd.conf "original" comportait les entrées suivantes:
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Si vous avez installé dans C:\xampp, vous devez modifier ces entrées afin qu’elles correspondent, c.-à-d.
DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
Si vous utilisez Windows 7. Recherchez IIS dans la recherche Windows (cliquez sur l'icône de la fenêtre en bas à gauche et tapez où il est indiqué «Rechercher le programme et les fichiers»).
Ouvrez IIS (Internet Information Service).
Dans le panneau de droite dans les actions. Cliquez sur Stop.
Remarque: le lien d'arrêt est estompé dans la capture d'écran. Comme je l'ai arrêté . Problème résolu!
J'ai eu le même problème, et il s'avère que j'ai oublié de courir setup_xampp.bat
(version portable).
J'ai eu le même problème parfois. J'avais un vieil ordinateur portable sur lequel presque tous les ports étaient bloqués ou fonctionnaient mal. Voici comment je l'ai fait.
Ouvrez le panneau de configuration XAMPP.
Cliquez sur Config
Ensuite, allez dans le fichier Apache httpd.conf. Ouvrez-le avec un éditeur de texte.
Rechercher "80" (Do Ctrl + F et trouvez-les tous. Remplacez-le par 8080 ou 4040 ou 40).
Enregistrez le fichier. Et redémarrez XAMPP.
Cela a bien fonctionné pour moi et j'espère que cela vous aidera aussi.
Quand j'ai découvert qu'il n'y avait aucun processus utilisant le port 80 à l'aide de commandes
netstat -abno | find ":80"
il n'y avait pas de problème de processus utilisant le port 80.
Puis j'ai lancé la commande (en cmd)
C:\xampp\Apache\bin\httpd.exe
il y avait une erreur dans la configuration des hôtes virtuels dans le fichier httpd-vhosts.conf
récemment édité par moi pour une installation dans un environnement WordPress PHP dans l'IDE Eclipse J'ai donc supprimé ces lignes et Apache a démarré parfaitement.
La chose simple que vous pouvez faire est de vérifier si Skype ou VMware est installé sur votre ordinateur ou non.
Skype utilise les ports 80 et 443 comme port supplémentaire pour les connexions entrantes. Pour changer le numéro de port dans Skype, allez à
Outils> Options de connexion> Connexion
dans la fenêtre de Skype. Modifiez maintenant le numéro de port par défaut 80 en un autre.
VMware Workstation utilise le port 443 pour le partage. Pour changer cela, ouvrez VMware Workstation et allez à
Édition> Préférences> Vms partagées
C'est tout ce que vous avez à faire. Redémarrez XAMPP et exécutez le serveur Apache.
Pour moi, le service de publication World Wide Web utilisait le port 80. Je l'ai éliminé en exécutant la commande suivante sur cmd:
net stop http
Après cela, XAMPP a exécuté Apache sans aucun problème.
Il semble que personne n’a répondu à l’exécution de xampp_start.exe.
J'ai fait toutes les réponses précédentes mais cela n'a pas résolu mon problème. J'ai découvert que l'exécution de xampp_start.exe vous donnerait des informations détaillées sur le problème.
C'était ce que je vois de mon côté:
Comme vous pouvez le constater, je rencontrais un problème de chemin ou xampp pointe vers un dossier inexistant.
Cette erreur se produit car le port attribué à Apache est utilisé par un autre programme. Pour vérifier l’application qui utilise le port que nous avons attribué à Apache, il suffit de cliquer sur,
Bouton Netstat.
Ceci est le fichier Netstat,
Au début, j'ai alloué le port 8080 à Apache et j'ai récemment installé Oracle. DB.TNSLSNR.exe utilise maintenant le port 8080.
Ainsi, en consultant ce fichier, nous pouvons choisir un port qui ne soit pas en conflit avec d'autres applications. Dans mon cas, le port 8060 ne se heurte à aucune application. En sélectionnant cette option, nous pouvons modifier le fichier httpd.conf (panneau de configuration XAMPP -> Config) comme indiqué ci-dessus.
Dans mon cas, ce problème était dû à une tentative de téléchargement d'un autre produit de bitnami, tel que WordPress . C'est courant lorsque nous installons WordPress via XAMPP. Il est placé dans le répertoire xampp/app
accessible à partir de la page d'accueil de l'application XAMPP.
En guise de solution, j'ai supprimé WordPress du répertoire xampp
par défaut et installé manuellement WordPress dans le dossier htdocs
de WordPress en le téléchargeant et en extrayant les fichiers Zip dans le dossier htdoc
. Vous devez également redémarrer XAMPP ou may system après avoir désinstallé/supprimé WordPress par défaut. Tout va bien pour moi maintenant.
J'avais exactement le même message d'erreur que l'OP, mais aucune des réponses existantes ne résolvait mon problème. Beaucoup de réponses traitent de conflits sur le port 80, ce que je savais que je n'avais pas fait, car localhost m'avait répondu sur le port 80 très récemment.
Il s’est avéré que j’avais changé par inadvertance ServerRoot quand j’avais l’intention de changer DocumentRoot (stupide, je sais), et même si le nouveau répertoire ServerRoot existait, il ne contenait pas les fichiers de configuration ni d’autres éléments. Apache avait besoin, ce qui a causé son échec au démarrage. Le message d'erreur aborde probablement ce scénario en utilisant le libellé 'dépendances manquantes'.
Sur mon système Windows, redéfinir ServerRoot sur C:/XAMPP/Apache a résolu le problème.
Assurez-vous d'abord que votre dossier \xampp
est à la racine! Ceci est important car le chemin est relatif.
Ensuite, assurez-vous d’exécuter le xampp_control.exe
avec les droits d’administrateur.
Modifiez ensuite les fichiers ci-dessous pour éviter les problèmes liés au port 80 bloqué.
Dans \xampp\xampp-control.ini
il devrait être défini:
[ServicePorts]
Apache=8080
ApacheSSL=4433
Trouvez \xampp\Apache\conf\httpd.conf
et définissez:
Listen 8080
ServerName localhost:8080
Trouvez \xampp\Apache\conf\extra\httpd-ssl.conf
et définissez:
Listen 4433
<VirtualHost _default_:4433>
ServerName www.example.com:4433
Terminez ensuite tous les services et redémarrez xampp-control.exe
avec les droits d’administrateur. Il faut courir!
Le serveur Apache s'exécute par défaut sur les ports 80 et 443. Votre problème est qu'un ou les deux ports sont occupés. Habituellement, Skype ou VMware Workstation utilisent ces deux ports. Alors, assurez-vous qu'ils ne fonctionnent pas. La meilleure façon de vous assurer que les ports sont libres sur Windows est la suivante:
Cliquez sur le bouton Windows.
Dans la barre de recherche, tapez resmon , pour ouvrir le moniteur de ressources resmon.exe .
Open Listening Ports , cela vous montrera les ports utilisés ouverts.
Vous pouvez maintenant voir quel processus utilise les ports 80 et 443.
Vous pouvez ensuite supprimer le processus de CMD à l'aide de son PID (indiqué dans le moniteur de ressources) ou directement à partir du Gestionnaire de tâches.
Pour tuer un processus de CMD à l'aide d'un PID, tapez
Taskkill /PID 26356 /F
, où 26356 est le PID.
Ceci est dû au port 80 par défaut qui est bloqué pour Apache. Vous devez changer le port ou le rendre accessible.
Accédez à votre fichier de configuration Apache (httpd.conf) dans l'installation d'Apache.
Trouvez ces lignes:
#
Ecoutez 192.168.1.2:80
Ecoute 80
#
Ici 192.168.1.2 est mon adresse IP privée. Changez-le selon le vôtre.
Changer comme ci-dessous
Listen 192.168.1.2:8081
Ecouter 8081
Maintenant, lorsque vous accédez à localhost, vous devez ajouter explicitement le port sous la forme http: // localhost: 8081 / ...
Une des causes peut être que vous n'exécutez pas le Panneau de configuration XAMPP en tant qu'administrateur.
J'ai résolu le problème lié à l'arrêt du service "Service de l'agent de déploiement Web". Ouvrir: Système -> Gestion de l’ordinateur -> Services -> Service d’agent de déploiement Web . Arrêtez ce service et le démarrage de XAMPP fonctionne ... Je pense qu'il s'agit d'un service de MS Webmatrix.
(Allemand: Systemsteuerung -> System und Sicherheit -> Verwaltung -> Dienste -> Webbereitstellungs-Agent-Dienst )
Dans mon cas, cela s'est produit après l'installation de SQL Server et la solution était telle que décrite dans cette réponse.
Xampp - Impossible de démarrer Apache après l'installation de SQL Server et Visual Studio
j'ai donc juste dû désactiver le service "SQL Server Reporting Services" à partir des services Windows
Notez que chaque fois que vous modifiez les ports par défaut, votre navigateur ne le saura pas. 80
et 443
semblent être en quelque sorte standard. Ainsi, par exemple, si vous avez modifié 80
en 8080
, vous devrez accéder à vos sites Web de cette manière:
localhost:8080/path_to_your_website.php
J'ai essayé d'exécuter httpd.exe dans cmd et j'ai eu l'erreur qu'il y ait une erreur de syntaxe dans httpd-vhosts.conf. J'ai vérifié le fichier et trouvé ce qui ne va pas et ça fonctionne bien maintenant.
Donc, si vous faites face à cette erreur, cela peut être dû à httpd-vhosts ou à tout autre fichier.
Essayez d'exécuter le programme via cmd et vous obtiendrez les détails de l'erreur et la ligne où se trouve une erreur de syntaxe.
Bonne chance
Tout d'abord, vous devez vérifier que votre fichier httpd-vhosts ne contient aucun hôte virtuel en excès. Je veux dire la règle simple suivante: 1 projet = 1 hôte virtuel dans le fichier de configuration. Sinon, vous ferez face à une erreur même si vous changez de port, etc.
La meilleure solution pour l'utilisateur Windows est:
taskkill /pid PID
(à la place, utilisez PID u trouvé dans netstat)J'ai eu le même problème (sous Windows 8.1), mais je l'ai corrigé simplement en extrayant dans C:\
au lieu de C:\somefolder
comme je l'avais fait au début. Ainsi, le chemin d'accès au panneau de contrôle, par exemple, est maintenant C:\xampp\xampp-control.exe
Bon, pas de port 80, pas de blâme sur Skype! Mon problème était en effet assez simple (& idiot), J'avais une barre oblique inverse supplémentaire (\) (sous Windows) après le chemin que j'avais spécifié pour la directive DocumentRoot; une soupe de canard.
Mon index.php était dans le chemin "D:\websites\dummy" et mon httpd.conf était comme ceci:
<VirtualHost 127.0.0.2:80>
ServerName dummy.local
DocumentRoot "D:\websites\dummy\" #mistake here
</VirtualHost>
<Directory "D:\websites\dummy\"> #mistake here
Require all granted
</Directory>
Alors changez simplement ces deux lignes comme ceci:
#first mistake fix:
DocumentRoot "D:\websites\dummy"
#second (similar) mistake fix:
<Directory "D:\websites\dummy">
... et tout va bien maintenant. Pour éviter de telles erreurs à l'avenir, copiez toujours le chemin d'accès au dossier auquel vous souhaitez faire référence au lieu de le saisir vous-même.
Meilleure solution
ouvrez le panneau de configuration XAMPP, cliquez sur config pour Apache, puis cliquez sur Apache (httpd.config) .now dans l'éditeur de texte. ctrl + f -> trouvez "Listen 80" et remplacez-le par "Listen 8079" sans les citations :) mais vous devez maintenant l'utiliser comme ceci http: // localhost: 8079/
P.S, j’ai essayé de modifier les paramètres du port pour Skype, en arrêtant le service Web Deployment Agent que je ne pouvais pas trouver dans Windows 10, cmd -> net stop http et d’autres méthodes, mais rien n’a fonctionné à part cela.
Pour moi, ce problème a commencé lorsque j'ai hébergé une connexion VPN sur mon ordinateur Windows 8.
La suppression de la connexion de "Panneau de configuration\Réseau et Internet\Connexions réseau" a résolu le problème.
Cela a fonctionné pour moi ...
Si vous utilisez Windows ...
Recherchez 'cmd' dans la barre de recherche de Windows.
Entrez ceci: C:\xampp\Apache\bin\httpd.exe
Trouvez quel fichier et quelle ligne l'erreur est survenue.
Par exemple, le mien était dans le fichier ci-dessous à la ligne 37.
httpd-multilang-errordoc.conf
Ouvrez le code et corrigez l'erreur en supprimant la ligne ou en la corrigeant.
Terminé! Je devrais travailler maintenant.
:)
Si le changement de port n'a pas résolu le problème suggéré ci-dessus, et si vous aviez probablement joué avec la structure de répertoires de fichiers (par exemple, modifiez le nom du dossier après l'installation, comme je l'ai fait), vous pouvez essayer ceci,
Par exemple, dans mon cas, j'avais changé le nom du dossier d'installation principal de XAMPP de Xam en Xampp
Donc, dans l'éditeur, changez ceci:
Define SRVROOT "G:/Xam/Apache"
ServerRoot "G:/Xam/Apache"
DocumentRoot "G:/Xam/htdocs"
<Directory "G:/Xam/htdocs">
À
Define SRVROOT "G:/Xampp/Apache"
ServerRoot "G:/Xampp/Apache"
DocumentRoot "G:/Xampps/htdocs"
<Directory "G:/Xampps/htdocs">
Il existe de nombreux autres exemples de ce type dans l'éditeur, il suffit de rechercher et de remplacer chacun d'entre eux.
Faites de même pour, Apache (httpd-ssl.conf) .
Très probablement, vous avez un autre processus "mysqld" en cours d'exécution qui le tue puis relance xampp MySQL sans aucune erreur.
J'ai reçu la même erreur ci-dessus et la cause en était que dans le fichier 'httpd-vhosts.conf', je mettais un commentaire dans les balises <Directory>
comme celle-ci ...
<Directory "*PATH TO MY FOLDER*...">
AllowOverride All
Require all Granted ## This directive could/should be set to denied.
</Directory>
Une fois que j'ai enlevé le commentaire, Apache a commencé. J'imagine que j'aurais dû mettre le commentaire sur sa propre ligne. Je pensais juste que, comme tout autre code Web, il pourrait être là.
Même erreur. Il s'avère que j'ai eu la mauvaise version de l'extension zend xdebug chargée. L’assistant xdebug dit utiliser la version TS (Thread Safe) (c’est-à-dire sans SOUT -NTS-
), mais apparemment j’ai téléchargé la version incorrecte de NonThread Safe. Même si j'avais le chemin d'accès et le nom du fichier précis dans le fichier php.ini, j'entendais toujours l'erreur. Lorsque j'ai téléchargé la version différente et mis à jour le fichier php.ini à nouveau, tout a bien fonctionné.
php_xdebug-2.7.0-7.3-vc15-nts-x86_64.dll
m'a donné une erreur, mais aucune erreur avec php_xdebug-2.7.0-7.3-vc15-x86_64.dll
J'ai suivi les conseils de @ user2314737 (sa answer est à la page 1) et activé "Afficher les informations de débogage" sous "Config" qu'après un redémarrage de xampp, il est apparu que mon chemin d'installation avait un espace "" dans qui n'était pas autorisé.
Mon chemin était D:\Program files (x86)\xampp\et je l’ai donc réinstallé sous D:\xampp \, puis cela a fonctionné.
La solution consiste à désinstaller xampp et à le réinstaller. ce sera un travail
En général, une erreur de port xampp
se produit car le port par défaut 80
xampp
essayant d'accéder est utilisé par une autre application. La plupart du temps, cette application est Skype.
Donc, vous avez 2 méthodes pour résoudre ce problème:
Ces méthodes sont bien expliquées dans cet article Comment déboguer une erreur du port 80 de xampp
L'installation de la dernière 5.6.12 à partir de la version 5.6.8 sur Windows 8.1 a fonctionné pour moi.
Dans mon cas, j'ai modifié le fichier http.conf car je voulais que localhost soit accessible par d'autres ordinateurs du réseau et je n'ai pas défini d'adresse IP statique sur ma carte réseau. J'ai également vérifié netstat et vu que personne n'utilisait le port 80.
J'ai donc ouvert cmd et tapé
ipconfig
J'ai également ouvert le fichier http.conf et recherché (CTRL + F) "Listen 80". La ligne au-dessus de celle-ci, si elle n'est pas commentée, permet à localhost d'être accessible sur le réseau. Ça devrait ressembler a quelque chose comme ca:Listen 192.168.93.3:80
En comparant le résultat de la commande ipconfig, j'ai constaté que mon adresse IP actuelle n'était pas la même que celle du fichier http.conf. J'ai donc changé l'adresse IP sur le fichier http.conf avec celui qui m'est actuellement attribué et cela a fonctionné.
Dans mon cas, le port était déjà utilisé par le service Windows IIS. Vous pouvez vérifier si le port est déjà utilisé à partir de cmd. Ouvrez cmd et lancez cette commande:
netstat -ano
S'il est utilisé par IIS, vous pouvez l'arrêter en suivant la commande. Ouvrez cmd en tant qu'administrateur, puis:
iisreset /stop
Maintenant, essayez de lancer XAMPP, ça devrait marcher.
Même si j'avais ce problème et je l'ai résolu, dans mon cas, c'était différent.
j'ai d'abord essayé de désinstaller Skype mais cela n'a pas fonctionné. mais dans mon ordinateur de bureau Windows 10, j'avais IIS (Internet Information Server) installé par défaut, qui pointait vers le port 80.
Tout ce que j'ai fait, c'est que j'ai changé le numéro de port en 8081 et que je viens de redémarrer XAMPP, et cela a fonctionné pour moi.
cependant, je n'utilisais pas IIS.
voici le lien vers https://support.Microsoft.com/en-in/help/149605/how-to-change-the-tcp-port-for-iis-services
Je viens de rencontrer cette erreur sur mon xampp v3.2.2 [win 10 pro x64],
J'ai d'abord essayé d'exécuter la commande "net stop http" dans une cmd d'administrateur, mais cela n'a pas résolu le problème. Je me suis donc tourné vers l'avant pour essayer la commande "netstat -abno" et j'ai découvert que le port SSL (443) était en utiliser par vmware.
mon conseil: ne cherchez pas simplement ce qui bloque le port 80, mais aussi les programmes potentiels utilisant le port 443. Parce que je n'aime vraiment pas changer mes numéros de port par défaut en 8081 et 4433.
Voici comment vous pouvez résoudre ce problème ...
tout d'abord tapez la commande suivante
net stop http
puis essayez de démarrer Apache, si cela ne fonctionne toujours pas. tapez la commande suivante
netstat -abno
et vous obtiendrez certainement cette application gênante qui utilise votre précieux port.
copier le pid puis utiliser la commande suivante
taskkill /f /pid PID
où PID est le pid que vous avez copié.
Espérons que cela aide quelqu'un.