XAMPP / Apache : comment résoudre l'erreur de fermeture inopinée d'Apache ?

Quand vous utilisez XAMPP, le serveur Apache peut subitement s'arrêter. Voici comment éviter le problème.

Quand vous utilisez XAMPP, le serveur Apache peut subitement s'arrêter à cause d'un problème alors qu'il était en train de démarrer. Le message Error: Apache shutdown unexpectedly. s'affiche alors sur le panneau de contrôle de XAMPP. La raison la plus courante pour expliquer cette erreur est l'impossibilité pour Apache d'utiliser les ports 80 et/ou 443. Si un autre programme utilise l'un des 2 ports, celui-ci est bloqué, et Apache ne peut pas l'utiliser. Il existe alors 2 solutions : faire en sorte qu'Apache soit le seul programme à utiliser les ports 80 et 443, ou bien configurer le serveur Apache pour qu'il utilise un autre port.

Si vous souhaitez faire en sorte que seul Apache utilise les ports 80 et 443, il faut d'abord détecter quelles applications utilisent ces ports. Avec l'outil en ligne de commande (exécuté en mode administrateur), la commande netstat -abno va afficher la liste des processus sur la plateforme ainsi que le ou les port(s) utilisé(s). Si le nom du processus ne vous permet pas d'identifier l'application, relevez le PID du processus. Ouvrez ensuite le gestionnaire des tâches (touches ctrl+alt+suppr). Dans la liste des programmes en cours, vous pouvez ajouter la colonne PID (clic droit sur les en-têtes de colonnes) et ainsi repérer le programme fautif.

Le programme le plus courant qui entre en conflit avec Apache est Skype, qui utilise par défaut les ports 80 et 443 pour fonctionner. Pour modifier le comportement de Skype, allez dans les options, onglet Avancées, option Connexion, puis décochez la case Utiliser les ports 80 et 443 pour les connexions entrantes supplémentaires, et pour finir cliquez sur Enregistrer.

Un autre processus qui bloque couramment le port 80 est l'API HTTP service. Pour libérer alors le port 80, il faut ouvrir l'invite de commande en mode administrateur et taper la commande suivante : net stop http. L'API va s'arrêter, et Apache pourra utiliser le port 80.

Si vous souhaitez laisser le port 80 occupé et exécuter le serveur Apache sur un autre port, il faut modifier les fichiers de configuration. Utilisez le panneau de contrôle de XAMPP, et cliquez sur le bouton config situé sur la ligne d'Apache. Choisissez l'option Apache (httpd.conf). Dans le fichier, modifiez la liste Listen 80 pour changer le port utilisé, et sauvegardez les changements. Si c'est le port 443 qui pose problème, choisissez l'option Apache (httpd-ssl.conf), puis dans le fichier, modifiez la ligne Listen 443 pour utiliser un port libre, et sauvegardez les changements. Une fois les modifications dans les fichiers effectuées, cliquez sur le bouton config situé en haut du panneau de contrôle, au-dessus du bouton netstat. Dans la partie Configuration des ports et services, indiquez les nouveaux ports que vous avez renseignés dans les fichiers, puis sauvegardez les changements. Vous n'avez plus qu'à redémarrer Apache et à vérifier qu'il démarre sans message d'erreur.

Divers