Les sous-domaines XAMPP ne fonctionnent pas soudainement

2

OK, j'ai des ennuis ... et ça continue d'empirer!

Je suis sous Windows 7, sous XAMPP. J'avais défini des groupes de sous-domaines sur localhost pour différents projets Web; xyz.localhost, abc.localhost, etc. Ils fonctionnaient bien. J'ajoute chaque sous-domaine en deux étapes:

  1. J'ajoute une section à httpd-vhosts.conf cela ressemble à ceci:

    <VirtualHost *>
        DocumentRoot "path/to/xampp/htdocs/xyz"
        ServerName xyz.localhost
    </VirtualHost>
    
  2. J'ajoute une entrée à mon fichier hosts (C: \ Windows \ System32 \ drivers \ etc \ hosts) qui ressemble à ceci:

    127.0.0.1 xyz.localhost
    

Puis je redémarre Apache. Bam. Cela a toujours fonctionné et je n'ai pas eu à comprendre le fonctionnement profond de ces fichiers.

J'ai allumé l'ordinateur aujourd'hui pour constater que tous mes sous-domaines localhost ne fonctionnaient plus. Chrome et Firefox disent tous deux qu'ils ne peuvent pas les trouver. Cependant, je pouvais toujours accéder http://localhost, et je pouvais aussi accéder aux dossiers des sous-domaines en utilisant http://127.0.0.1/xyz.

Après quelques recherches, j'ai trouvé cette erreur cryptique dans mon journal des erreurs:

VirtualHost _default_:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

J'ai donc fouillé dans les fichiers et découvert que httpd-ssl.conf a une section qui commence par <VirtualHost _default_:443>. Cependant, ce fichier n'a pas été modifié depuis des années, ce n'est donc probablement pas le problème.

J'ai essayé de changer mon httpd-vhosts.conf fichier:

  • de NameVirtualHost * à NameVirtualHost *:80, et
  • <VirtualHost *> à <VirtualHost *:80>

mais ça n'a pas marché.

Alors au hasard, j'ai pensé, peut-être que j'ajouterais un Listen 443 à httpd.conf. Cela a empêché Apache de commencer, alors je l'ai sorti.

Que se passe-t-il?? Qu'est-ce qui aurait pu changer? Je m'empresse d'ajouter que je ne sais même pas quelle est la pertinence du port 443 pour XAMPP. Je n'ai jamais accès à aucun de mes sites locaux à l'aide de SSL et je n'en ai pas besoin. Quelqu'un peut-il m'aider? Je fouille dans le noir.

John Alexander
la source
443 est le port par défaut pour https (SSL). Avez-vous essayé de commenter votre fichier httpd-ssl.conf à des fins de test? Si vous n'utilisez pas ssl, vous pouvez le garder en commentaire (sauf si le serveur est disponible au-delà de votre réseau local)
Wayne
J'ai essayé ça. Même problème ... impossible d'accéder aux sous-domaines (mais sans l'avertissement sur le mélange des ports)
John Alexander
En regardant dans le journal des erreurs, cette erreur est apparue depuis très longtemps, beaucoup plus longtemps que les sous-domaines ne fonctionnaient pas. Donc ce n'est pas ça.
John Alexander
Ok, je viens de télécharger v1.8.3-3 et cela fonctionne. Httpd-vhosts.conf édité. Uncommented NameVirtualHost *: 80 et 4 paramètres d’hôte virtuel ajoutés, 3 l’installation avec les noms de serveur site1.localhost, site2.localhost et site3.localhost, une avec le nom de serveur localhost. Aucune autre modification n'a été apportée à xampp. Le fichier hôtes Windows modifié et tous les sites fonctionnent comme prévu (même le contrôle xampp)
Wayne

Réponses:

2

Pour ceux qui ne veulent pas s'embêter avec la poursuite de l'oie sauvage de ce fil, laissez-moi résumer le problème et sa solution. :)

J'ai soudainement été incapable d'accéder aux sous-domaines que j'avais créés sur localhost avec XAMPP. Je savais qu'ils étaient correctement installés, car ils avaient travaillé longtemps avant le problème.

Le problème a fini par être mon fichier hosts (C: \ Windows \ System32 \ drivers \ etc \ hosts). Ce fichier sert à entrer manuellement les paires adresse IP / nom d'hôte, en contournant le serveur DNS, et doit être modifié lors de l'ajout d'un sous-domaine à localhost (voir ma question pour savoir comment procéder). Le fichier hosts est assez difficile quant à la façon dont il est formaté, et je me suis rendu compte que quelque chose avait changé les fins de ligne de ce fichier. CRLF (Windows standard) à CRCR. J'avais remarqué visuellement que le fichier paraissait à double interligne, mais je n'ai pas cerné la raison avant de regarder l'hexagone et de voir 0d0d partout. J'ai pu corriger les fins de ligne dans Sublime Text et tout était à nouveau heureux.

Je soupçonne que le fichier a été bâclé par le client Cisco AnyConnect Secure Mobility. Il s'agit de la dernière itération du client VPN AnyConnect de Cisco que j'ai récemment installée pour accéder au VPN d'un client. J'ai remarqué une nouvelle ligne dans mon fichier hosts qui spécifiait l'adresse IP de ce VPN, et je pense que lorsque l'application Cisco a ajouté cette ligne, elle a mutilé les fins de ligne du fichier entier. Ma théorie

Merci, Wayne, pour votre aide dans la recherche du problème.

John Alexander
la source
0

Selon mes commentaires ci-dessus.

  1. Téléchargé xampp v1.8.3-3 et installé dans C: \ XAMPP
  2. Création de 3 dossiers dans C: \ XAMPP \ htdocs \ xampp (site1, site2, site3).
  3. Créé un fichier index.htm factice dans les trois dossiers avec juste un titre du site
  4. Édité C: \ XAMPP \ Apache \ conf \ extra \ httpd-vhosts.conf et créé comme tel

NomVirtualHost *: 80

& lt; VirtualHost *: 80 & gt;
DocumentRoot "C: / xampp / htdocs / xampp"
Nom_serveur localhost
& lt; / VirtualHost & gt;

& lt; VirtualHost *: 80 & gt;
DocumentRoot "C: / xampp / htdocs / xampp / site1"
NomServeur site1.localhost
& lt; / VirtualHost & gt;

& lt; VirtualHost *: 80 & gt;
DocumentRoot "C: / xampp / htdocs / xampp / site2"
NomServeur site2.localhost
& lt; / VirtualHost & gt;

& lt; VirtualHost *: 80 & gt;
DocumentRoot "C: / xampp / htdocs / xampp / site3"
NomServeur site3.localhost
& lt; / VirtualHost & gt;

  1. Commandes lancées en tant qu'administrateur
  2. Hôtes modifiés via: le bloc-notes c: \ windows \ system32 \ drivers \ etc \ hosts
  3. Ajout des lignes suivantes

127.0.0.1 site1.localhost
127.0.0.1 site2.localhost
127.0.0.1 site3.localhost

  1. Démarrage d'apache via le panneau de configuration XAMPP
  2. Vérifié les 4 sites de travail: site1.localhost, site2.localhost, site3.localhost et tout simplement localhost (page d'accueil xampp)

Pour diagnostiquer les problèmes d'hôte virtuel

  1. Vérifiez le fichier journal Apache
  2. Essayez de faire un ping sur le site et assurez-vous que l'adresse IP correcte est renvoyée. Si la commande ping échoue, il s'agit généralement d'un problème d'entrée de fichier DNS / hôte.
  3. Utilisez quelque chose comme montre http vérifier que l'en-tête http Host xxxx.xxxx est défini pour le site
Wayne
la source
Oui, cela le fait généralement pour moi aussi! Mais pas depuis 8h00 ce matin. Y a-t-il autre chose que je puisse vérifier?
John Alexander
Essayez un autre navigateur. Ce qui devrait arriver, c'est que le navigateur envoie les en-têtes de l'hôte, apache interroge ces en-têtes pour afficher le site approprié. Si les en-têtes ne sont pas correctement formés, cela peut poser problème. Est-ce que ping xyz.localhost fonctionne? Je suppose que sinon, vous obtiendrez une erreur de serveur non trouvé
Wayne
Les autres navigateurs ne fonctionnent pas et la commande ping ne fonctionne pas. Impossible de trouver l'hôte.
John Alexander
génial! vérifiez votre fichier hosts. On dirait que ça ne fonctionne pas correctement
Wayne
Tu veux savoir ce que c'était? Les fins de ligne dans le fichier hosts! Ils doivent être CRLF (style Windows); le mien s'est en quelque sorte changé en CR seulement. Je pense que c'est la faute de Cisco AnyConnect Secure Mobility Client. Je l'ai récemment installé pour accéder à un VPN et il a ajouté une ligne au fichier hosts, probablement en le ratant. Peut-être que je devrais leur faire savoir à ce sujet.
John Alexander