Héberger plusieurs sites avec wamp en localhost via des vhost

SYSTEM FAILURE MATRIX

Les alias c'est bien mais vous ne pourrez pas accéder à online d'un site en cours de développement sur votre machine. Le mieux est de ce rapprocher le plus possible d'un environnement de production, sur le localhost

Pour éviter les mauvaise surprises, autant utiliser un nom de domaine pour la version offline et online d'un site. Ensuite on restreint le site à quelques ip et le tour est joué, vos clients pourront consulter vos site en cours de développement, ce qui facilitera grandement la vie de tout le monde.

 

Configuration de wamp pour plusieurs vhost

Ce tutorial à été réalisé avec la version WampServer2.0i sur un windows XP SP 3 qui contient :

  • - Apache 2.2.11
  • - MySQL 5.1.36
  • - PHP 5.3.0

Tout d'abord, il va falloir éditer le fichier de configuration principal d'apache pour " écouter votre ip locale " :

wamp\bin\apache\Apache2.2.11\conf\httpd.conf

cherchez le paramètre :

Listen 80

Et remplacez le par :

Listen *:80

Il faut ensuite activer les vhost, car avec cette version de wamp, il ne faut plus écrire directement vos vhost dans le httpd.conf car désormais il sont dans un fichier à part. Remplacez l'expression

#Include conf/extra/httpd-vhosts.conf

Par :

Include conf/extra/httpd-vhosts.conf

 

Configuration des vhost

Une fois le module vhost activé pour apache, il faut maintenant configurer vos serveurs virtuels ( vhost ). Ouvrez le fichier :

wamp\bin\apache\Apache2.2.11\conf\extra\httpd-vhosts.conf

Puis effacez sont contenu. En premier vous devez redefinir le dossier root de votre localhost, si vous voulez continuer à l'utiliser.

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot "C:\wamp\www"
ServerName localhost
<Directory "C:\wamp\www">
Options Indexes FollowSymLinks MultiViews
Options -Indexes
AllowOverride None
Order allow,deny
allow from all
#RedirectMatch ^/$ /index.php
</Directory>
</VirtualHost>

Puis configurez vos vhost supplémentaires comme ceci :

<VirtualHost *:80>
DocumentRoot "F:\web\site1"
ServerName developpement.site1.com
<Directory "F:\web\site1">
Options Indexes FollowSymLinks MultiViews
Options -Indexes
AllowOverride all
Order allow,deny
allow from all
#RedirectMatch ^/$ /index.php
</Directory>
</VirtualHost>

 

Relancez les services wamp, et allez à l'adresse http://developpement.site1.com et votre site devrait s'afficher. La dernières étape consiste à restreindre l'accès au site via un .htaccess à la racine de chaque site et écrivez ou rajoutez dans celui ci :

Deny from all
Allow from VOTRE.ADRESSE.IP.ICI

En remplaçant VOTRE.ADRESSE.IP.ICI par votre adresse ip. Pour obtenir votre adresse ip cliquez ici.

Si vous êtes derrière un routeur, cliquez dans le menu démarrer de windows :

Démarrer/executer/cmd puis tapez ipconfig .

L'adresse ip derrière un routeur commence en général par 192.168. Pour que vos domaines pointes sur votre machine, vous devez régler la redirection web ou le cname sur la vrai adresse ip de votre machine.

Vous pouvez mettre autant d'adresse ip que vous voulez, ainsi que des plages d'ip. ( documentation apache )

 

Gestions des erreurs

Certain site ayant des architecture plutot ancienne auront quelques bug au niveau de certaines fonctions php :

  • Deprecated: Function ereg_replace() is deprecated in votrefichier.php

Depuis la version de PHP 5.3.0, l'extension regex est obsolète. Utilisez la fonction preg_replace() à la place.

Cet erreur n'est qu'un warning, et si vous voulez simplement supprimer l'erreur sans avoir à remplacer tout votre code, rajouter dans votre fichier .htaccess les commandes suivantes :

php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0

  • Le serveur crash et affiche une page blanche

Cette erreur surviendra à chaque fois que vous fermerez une connection sql sans spécifier de handle. Remplacer donc dans votre code les expressions :

mysql_close();

Par :

mysql_close($db_connect);

Aucun patch n'est disponible à l'heure actuelle. Vous devez donc ou netoyez votre code, ou rester sur une version anterieur de php. Wamp permet peut fonctionner plusieurs version de php ( voir ici )

 

Quelques liens utiles :

Partager l'article

Facebook MySpace Twitter Digg Delicious Stumbleupon 

Le blog : Les catégories

Web 2.0

Le blog : les archives

Web 2.0