Vous devez d'abord supprimer l'exemple factice définitions de votre fichier vhost-httpd.conf. Ils sont là à titre d'exemples uniquement juste pour vous familiariser avec la syntaxe, et ne doit pas rester dans un conf/extra/httpd-vhosts.conf
actif car ils pointent vers des dossiers inexistants.
Supprimez donc ces 2 définitions du fichier :
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
Deuxième Apache 2.4.x est compatible IPV4 ( 127.0.0.1 ) et IPV6 (::1) donc vos hosts
Le fichier devrait ressembler à ceci avec les définitions des versions IPV4 et IPV6 pour chaque site. Le navigateur peut utiliser arbitrairement l'un ou l'autre, vous avez donc besoin des deux, mais vous utiliserez probablement le réseau IPV6 de préférence à l'IPV4 si les deux sont réellement actifs sur votre PC.
127.0.0.1 localhost
::1 localhost
127.0.0.1 mysite.dev
::1 mysite.dev
Maintenant, sur les 2 hôtes virtuels qui existent réellement sur votre système, essayez ceci comme définition d'hôte virtuel :
<VirtualHost *:80>
DocumentRoot "g:/wamp/www"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
<Directory "G:/wamp/www">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "g:\wamp\www\mysite\public"
ServerName mysite.dev
ServerAlias www.mysite.dev
ErrorLog "logs/mysite-error.log"
CustomLog "logs/mysite-access.log" common
<Directory "G:/wamp/www/mysite/public">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
Le <Directory>....</Directory>
dans la section <VirtualHost>....</VirtualHost>
indique à Apache de quelles adresses IP il est autorisé à accepter les connexions, donc en utilisant la syntaxe Apache 2.4 Require local
limite l'accès afin que seul le PC exécutant WAMPServer, c'est-à-dire Apache, puisse se connecter à l'un de ces sites.
Évitez de mélanger la syntaxe Apache 2.2 et la syntaxe Apache 2.4 dans la même définition. Alors n'utilisez pas
Order Allow,Deny
Allow from all
et
Require all granted
dans la même définition. Vous utilisez Apache 2.4, utilisez donc la syntaxe Apache 2.4.
Si vous souhaitez autoriser d'autres PC de votre réseau local à voir votre site, c'est-à-dire un collègue de travail ou les enfants, etc., vous pouvez ajouter cette syntaxe à une ou plusieurs de vos définitions d'hôte virtuel.
N'autorisez qu'un seul autre ordinateur à accéder à votre site
Require local
Require ip 192.168.1.100
ou 2 autres PC
Require local
Require ip 192.168.1.100, 192.168.1.101
Ou à n'importe qui sur votre réseau local, utilisez simplement les 3 premiers des 4 quartiles de l'adresse IP.
Require ip 192.168.1
Évitez également d'utiliser la syntaxe qui permet l'accès de n'importe où, c'est-à-dire
Require all granted <--Apache 2.4 syntax
or
Order Allow,Deny <-- Apache 2.2 syntax
Allow from all
Cela peut résoudre vos problèmes à court terme, mais n'attend que de vous rattraper un peu plus tard lorsque vous déciderez de montrer votre site à un ami/client/boss. Si vous arrivez à l'étape de la redirection de port de votre routeur afin que le monde soit autorisé à entrer dans votre réseau, cela causerait TOUS VOS SITES devenir disponible pour le monde.
Mieux vaut changer la définition d'hôte virtuel ONE pour le site ONE que vous voulez que les gens voient pour tester/se vanter de Require local
à Require all granted
et n'autoriser l'accès qu'à ce seul site depuis Internet.
Une fois que vous avez effectué toutes ces modifications, n'oubliez pas de redémarrer Apache.
De plus, si vous modifiez le fichier hosts pour activer les modifications, vous devez soit redémarrer, soit exécuter ces commandes à partir de la ligne de commande d'une fenêtre de commande démarrée avec le Runs as Administrator
option.
net stop dnscache
net start dnscache
ipconfig /flushdns