Script pour créer plusieurs sites en local
Pré-requis
Ce script est utile aux webmestres désireux de créer plusieurs sites en local et utilisant le serveur Apache 2, afin de tester ces derniers avant de les mettre en production sur les serveurs.
Le langage est en bash et se lancera donc via votre terminal (shell), il est portable sur les systèmes GNU/linux et plus particulièrement sous les OS basés sur Debian (Knoppix, Mepix, Ubuntu...)
Il est facilement adaptable pour les autes systèmes tournant sous GNU/Linux (Fedora, Mandriva, SuSE...).
Script pour créer un Virtual Host (Hôte virtuel)
Ce script est sous licence CC-by, vous pouvez librement l'utiliser comme bon vous semble à la condition de citer la source suivante : www.concepteursite.com/virtualhost.php
#!/bin/bash
#
# Créer facilement un Virtual Host
# Auteur : david96 le 09/05/2010
# Licence : CC-by (vous pouvez utiliser, partager, modifier
# le code suivant, à la seule condition de citer la source suivante :
# Source : www.concepteursite.com/virtualhost.php
#
echo "Nom du nouveau site à créer ?"
read site
#
# Première étape, renseigner le fichier hosts (alias localhost)
#
echo "127.0.0.1 $site" >> /etc/hosts
#
# Deuxième étape, créer le répertoire racine du site
#
mkdir /var/www/$site
#
# Troisième étape, modifier le fichier default de Apache
# Adapter ce dernier, selon vos besoins
#
echo "<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName $site
ServerAlias 127.0.0.1
DocumentRoot /var/www/$site
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1 # local
Allow from 192.168.1.0/24 # réseau
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory \"/usr/lib/cgi-bin\">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
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
</Directory>
</VirtualHost>" > /etc/apache2/sites-available/$site
#
# Quatrième étape, faire un lien dans /etc/apache2/sites-enabled/
#
a2ensite $site
#
# Cinguième étape, recharger la configuration d'Apache
#
/etc/init.d/apache2 reload
Appeler le script
Enregistrer ce script par exemple sous le nom vhost.sh et ouvrir votre console.
Lancer le script en super utilisateur (root)
sudo sh vhost.sh
La console va vous demander de donner un nom à votre site (sans accent, sans espace et sans extension)
Nom de votre nouveau site ?
Réponder à la question et valider, exemple :
monsite
Il ne vous reste plus qu'à donner les permissions de votre site (en root)
sudo chown $USER:$USER /var/www/monsite
Voilà, s'est terminé, vous pouvez travailler localement sur votre nouveau site.
A noter que si vous avez modifié les paramètres par défaut de Apache, genre la racine du document d'un site (/var/www/ par défaut), il vous faudra bien évidemment adapter ce script à votre convenance.