Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'hôte virtuel WAMP ne fonctionne pas

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