Sous-domaine automatique pour Apache

Sous-domaine automatique pour Apache

26 Feb 2013 |  Linux

Depuis quelques mois maintenant j’utilise Vagrant pour gérer mes machines virtuelles et Puppet pour administrer leurs configurations. Cela me permet d’avoir dans des fichiers tous les réglages et paramètres utiles à leurs fonctionnement afin de les copier, les détruire et les recréer via quelques lignes de commande conformément à leurs configurations. L’inconvénient de cette méthode est que cela empêche toute flexibilité. Par exemple, lorsque je veux essayer une nouvelle application, tester un CMS, je dois créer un nouveau Vhost le temps de mes tests et du coup c’est moins simple et rapide que prévu (ok, ok, c’est l’histoire de 5 minutes… Mais c’est toujours 5 minutes).

Pour éviter cela, j’ai créé un Vhost basé sur des expressions régulières afin de trouver automatiquement un sous domaine. Ainsi chaque projet du domaine projects.local pointera vers le répertoire du sous-domaine.

projects.local
   |-- subdir1
   |-- subdir2
   |-- subdir3
   |-- subdir4

Par exemple le sous-domaine poney.projects.local pointera sur le répertoire poney dans le répertoire du domaine projects.local

Pour utiliser cette configuration vous devez avoir Apache 2 et le module mod_rewrite sur votre serveur.

Créez un fichier project.projects.local dans le répertoire /etc/apache2/site-available avec cette configuration :

<VirtualHost *:80>
 ServerName projects.local
 ServerAdmin projects@example.com
 ServerAlias *.projects.local
 DocumentRoot /var/www/projects
 <Directory /var/www/projects>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
 </Directory>

 RewriteEngine on
 RewriteCond %{HTTP_HOST} ^([^\.]+)\.projects\.local
 RewriteCond /var/www/projects/%1 -d
 RewriteRule ^(.*) /%1/$1 [L]
</VirtualHost>

Après avoir sauvegardé, il ne vous reste plus qu’à activer ce nouveau vhost.

$ sudo a2ensite project.projects.local

Et à recharger Apache

$ sudo service apache2 reload

Vous avez maintenant la possibilité de créer des sous-domaines automatiquement.

Julien Dubreuil

Vous avez une idée, un projet web à réaliser ?

Ensemble, mettons en oeuvre sa réussite. Je vous accompagne dans vos projets, depuis l'élaboration du cahier des charges jusqu'à la mise en production. Pour plus d'information n'hésitez pas à me contacter.

Contactez-moi