Ingénieur IT, photographe amateur, musicien du dimanche
Création de virtualhosts
Création de virtualhosts

Création de virtualhosts

Créer des hôtes virtuels sur votre serveur web apache

Lors de l’utilisation d’un webserver de développement en local, il est parfois utile de pouvoir laisser les sites dans un dossier autres que le dossier htdocs d’apache. De plus, certains Framework comme symfony nécessite la configuration d’un virtualhost (hôte virtuel) afin que lors du lancement du site, les dépendances du framework soit appelées correctement. Pour cela, il est nécessaire de mettre en place un ou plusieurs virtualhosts. Comme cela devient de plus en plus un standard, nous allons utiliser la méthode d’hôtes virtuels basé sur le nom.

Déclarer les virtualhosts

Afin de déclarer nos virtualhosts, il faut créer un fichier de config contenant les détails de chacun. Dans certaines mouture d’apache, il est possible que ce fichier existe déjà. Il peut se trouver à cet endroit :
$INSTALL_DIR/apache2/extra/httpd-vhosts.conf
Si ce n’est pas le cas, il n’y a cas le créer et ensuite le remplir avec les déclarations dont voici un exemple :

	ServerAdmin votre-mail@monsite1.local
	ServerName monsite1.local
	ServerAlias www.monsite1.local
	
	DocumentRoot /Users/me/Sites/monsite1
	
		Options FollowSymLinks
		AllowOverride None
	
	
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    

Pour plus d’informations sur la déclaration des virtualhosts, référez-vous à cet article : wiki apache virtual hosts

Modifier le fichier httpd.conf

Le fichier httpd.conf est le fichier de configuration d’apache.
$INSTALL_DIR/apache2/httpd.conf
Selon les versions d’apache2, ce fichier contient déjà un lien vers le fichier de configuration des virtualhosts.

#modifier ce path en fonction de votre installation d'apache
Include $INSTALL_DIR/apache2/extra/httpd-vhosts.conf

Il est également possible de déclarer les virtualhosts directement dans le fichier httpd.conf, mais afin d’améliorer la lisibilité de celui-ci, il vaut mieux séparer ces contenus.
En cas d’erreur 403, il peut être nécessaire de changer l’utilisateur par défaut du serveur, afin qu’il puisse accéder au répertoire. Pour cela, dans ce même fichier, modifiez la configuration d’utilisateur et de groupe. Dans l’idéal, utilisez un user dédié au serveur.

# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User yann
Group admin

Référencer nos sites dans le fichier hosts

Le fichier hosts est utilisé par le système d’exploitation lors de l’accès à Internet. Ce fichier est consulté avant le DNS afin de rediriger, bloquer ou faciliter l’accès à un site. Il n’est pas placé au même endroit selon les OS.

Sous Windows version 32bits :
C:\windows\system32\drivers\etc\hosts
sous Windows version 64bits :
C:\windows\SysWOW64\driver\etc\hosts
sous Linux :
/etc/hosts
sous Mac OS
/private/etc/hosts
Afin que vos url soient comprises comme des url en local, il est nécessaire de les déclarer dans le fichier hosts afin d’effectuer une redirection. Dans notre cas présent, il faudra y ajouter la ligne suivante :
127.0.0.1 monsite.local
S’il y’a plusieurs virtualhosts, il sera nécessaire de le faire pour chaque entrée :

127.0.0.1  monsite1.local
127.0.0.1  monsite2.local
127.0.0.1  monsite3.local

Redémarrer votre serveur web

Suite à la modification du fichier de configuration, il est nécessaire de restarter le serveur apache. En effet, celui-ci charge la configuration au démarrage, et ne connait donc pas encore nos dernières modifications. Un redémarrage est nécessaire après chaque modification d’un fichier de configuration.
En cas de problème, on peut avoir un état des hôtes virtuels chargés par le serveur, à l’aide de la commande :
$INSTALL_DIR/bin/httpd -S

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *