J'ai enfin réussi à configurer correctement httpd.conf pour mes besoins en virtualhost. Ceci est la partie pertinente du fichier httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
DocumentRoot /Applications/XAMPP/htdocs/
</VirtualHost>
<VirtualHost *:80>
ServerName test.local
DocumentRoot /Applications/XAMPP/htdocs/test/
</VirtualHost>
<VirtualHost *:80>
ServerName work.local
DocumentRoot /Applications/XAMPP/htdocs/work/
</VirtualHost>
Lorsque j'accède à n'importe quoi sur localhost (c'est-à-dire http: // localhost/phpmyadmin ) tout est très rapide . Chaque fois que j'accède à test.local ou work.local (ou à d'autres que j'ai configurés), il prend 10 à 15 secondes. sur la recherche. Les demandes suivantes sont gérées correctement et c'est très rapide, mais après une minute d'inactivité environ, il doit rechercher à nouveau.
Ceci est mon fichier/etc/hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
#::1 localhost
fe80::1%lo0 localhost
# Virtualhosts
127.0.0.1 test.local work.local yii.local
Comment puis-je résoudre ce problème ennuyeux?
Ajoutez vos hôtes virtuels à la première ligne:
127.0.0.1 localhost test.local work.local yii.local
Et supprimez la dernière ligne.
Cela devrait faire l'affaire. Vos hôtes virtuels sont maintenant un alias pour localhost. Ce n'est pas une bonne idée d'avoir la même adresse IP sur plusieurs lignes. Cela confond simplement le cache DNS.
Si vous utilisez Chrome et que la recherche d'hôte virtuel est lente, vous devez remplacer le nom d'hôte virtuel par un autre nom que .local
, par exemple. remplacez test.local
par test.dev
.
Explication et source ici: http://bencrowder.net/blog/2012/10/slow-localhost-in-chrome/
Ce qui a réglé le problème pour moi, c’est la modification de httpd-vhosts.conf et la modification de toutes les instances de:
<VirtualHost *:80>
à:
<VirtualHost 0.0.0.0:80>
Cela prenait environ 2 à 5 secondes pour résoudre l’hôte, c’est maintenant instantané. Je n'ai pas eu à modifier l'ordre de mes sites dans mon fichier hosts. Cela le fait simplement utiliser ipv4 au lieu de ipv6 que je parie que vous n'utilisez pas de toute façon.
Définir également l'adresse IP pour ServerName dans le fichier httpd.conf a fonctionné pour moi
ServerName 127.0.0.1:80
Vous devriez également implémenter d’autres paramètres dans votre fichier vhosts, comme des journaux d’erreurs séparés et un alias de serveur.
DocumentRoot "D:/xampp/htdocs/asd"
Nom du serveur asd.com.br
ServerAlias asd.com.br
ErrorLog "logs/asd.log"
CustomLog "logs/asd.log" combinés