J'utilise une version wamp 2.5 Mon Apache est 2.4.9 PHP: 5.5.12 MySQL: 5.6.17
J'ai ces configurations:
Sur mon httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Sur mon G:\wamp\bin\Apache\apache2.4.9\conf\extra\httpd-vhost.conf
# Virtual Hosts
#
# Required modules: mod_log_config
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.Apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual Host
# configuration.
#
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<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>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/wamp/www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "g:\wamp\www\mysite\public"
ServerName mysite.dev
</VirtualHost>
Sur mon c:\Windows\System32\Drivers\etc\hosts
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
127.0.0.1 mysite.dev
# ::1 localhost
J'essaie d'accéder à mon projet en utilisant cette URL: http://www.mysite.dev/
MAIS Je reçois un Server not found error
J'ai essayé d'y accéder en utilisant www.mysite.dev
, http://mysite.dev
mais toujours malchanceux!
Mon hôte virtuel fonctionnait auparavant, mais je ne sais pas pourquoi cela ne fonctionnait pas maintenant. Il se passe des trucs bizarres.
Je ne sais pas ce qui se passe. Toutes les idées seront grandement appréciées!
Merci!
Vous devez d'abord supprimer les définitions d'exemple dummy de votre fichier vhost-httpd.conf. Ils sont là sous la forme exemples uniquement juste pour vous aider à démarrer avec la syntaxe, et ne doivent 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>
Second Apache 2.4.x est compatible avec IPV4 (127.0.0.1) et IPV6 (:: 1), donc votre fichier hosts
devrait ressembler à ceci avec des définitions pour les versions IPV4 et IPV6 pour chaque site. Le navigateur peut utiliser arbitrairement l'un ou l'autre donc vous avez besoin des deux mais utilisera 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>
La section <Directory>....</Directory>
Dans la section <VirtualHost>....</VirtualHost>
Indique à Apache à partir de quelles adresses IP il est autorisé à accepter les connexions, donc l'utilisation de la syntaxe Apache 2.4 Require local
Limite l'accès afin que seul le PC exécutant WAMPServer ie Apache peut se connecter à n'importe lequel 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 trouvez que vous souhaitez autoriser d'autres PC à l'intérieur de votre réseau local à voir votre site, c'est-à-dire votre compagnon de travail ou les enfants, etc., vous pouvez ajouter cette syntaxe à une ou plusieurs de vos définitions d'hôte virtuel.
Autorisez un seul autre PC sur 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 pour 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
Il peut résoudre vos problèmes à court terme, mais n'attend que de vous rattraper un peu plus tard lorsque vous décidez de montrer votre site à un ami/client/patron. Si vous arrivez à l'étape de redirection de port, votre routeur afin que le monde soit autorisé à entrer dans votre réseau, ce qui rendrait TOUS VOS SITES disponibles pour le monde.
Mieux vaut changer la définition de l'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 autoriser uniquement l'accès à ce site unique 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 rendre les chnages actifs, vous devez soit redémarrer, soit exécuter ces commandes à partir de la ligne de commande d'une fenêtre de commandes démarrée en utilisant l'option Runs as Administrator
.
net stop dnscache
net start dnscache
Si vous utilisez Windows 10, les commandes DNS ci-dessus ne fonctionnent plus, vous devez le faire à la place.
ipconfig /flushdns
En raison de l'acquisition de .dev gTLD par Google, il n'est plus facile d'avoir des sites de développement .dev, le meilleur moyen d'atténuer est simplement de renommer votre domaine de développement en .local ou quelque chose que vous préférez.
Ce qui se passe en arrière-plan est que le serveur DNS local redirige le navigateur vers 127.0.53.53 (ouvrez cmd> nslookup yourdomain.dev) afin d'informer les utilisateurs finaux de l'acquisition du gTLD .dev. Étant donné que le domaine .dev dans le fichier hosts est défini sur 127.0.0.1, il indique que la connexion a été refusée.
Vous pouvez remplacer 127.0.0.1 par 127.0.53.53 dans le fichier hosts et voir que l'erreur de navigateur passe de ERR_CONNECTION_REFUSED à ERR_ICANN_NAME_COLLISION.
Ce qui suit fonctionne pour moi
<VirtualHost *:80>
DocumentRoot "G:\project\test.dev"
ServerAdmin [email protected]
ServerName test.dev
ErrorLog "logs/test.dev-error.log"
CustomLog "logs/test.dev-access.log" common
<Directory "G:\project\test.dev">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
Je résout le même problème en décommentant certaines lignes dans httpd.conf dans le dossier Apache.
Décommentez les lignes ci-dessous:
Include conf/extra/httpd-vhosts.conf
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Enregistrez le fichier et redémarrez votre Apache et cela fonctionnera. Un grand merci à ce gars: https://john-dugan.com/wamp-vhost-setup/
J'arrive très tard à cette question, j'ai fait tout ce qui a été mentionné par @RiggsFolly mais une chose que j'ai changé l'a fait fonctionner instantanément. J'ai changé .dev
à .test
car .dev est réservé. J'espère que cela t'aides
Découvrez ces modules sans commentaires dans httpd.conf