Bon c'est plutôt le truc basique, facile à faire, la base de la base, et donc le plus simple à mettre en place. L'dée est d'avoir un fichier générique (les génériques c'est automatique). que l'on personnalise au moment de la création du serveur virtuel.
============== default_virtual_host ====================
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName DOMAIN
ServerAlias www.DOMAIN
DocumentRoot /var/www/DIRECTORY
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/DIRECTORY/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
#CustomLog ${APACHE_LOG_DIR}/stats/DOMAIN.log combined
</VirtualHost>
Comme vous pouvez le voir, j'ai supprimé le répertoire cgi que je n'utilise pas, et j'ai préparé un endroit particulier pour les logs que je désire analyser par un logiciel tiers. Le répertoire /var/log/apache2/stats doit exister dans ce cas (il faut le créer avec autorisation d'écriture pour www-data.)
Ensuite un fichier tout simple pour faire le taff
# Pour créer les fichiers site de apache2 : do_apache_server DOMAIN DIRECTORY
#!/bin/sh
sed -e 's/DOMAIN/'$1'/g' default_virtual_host > site_$1
sed -i "s/DIRECTORY/"$2"/g" site_$1
sed -i "s/§/\//g" site_$1
echo "======================="
more site_$1
echo "======================="
read -p "Config ok [o/n]]?" reponse
if [[ $reponse == "o" ]];then
mv site_$1 /etc/apache2/sites-available/site_$1
ln -s /etc/apache2/sites-available/site_$1 /etc/apache2/sites-enabled/site_$1
service apache2 reload
fi
Il suffit de placer les 2 fichiers dans un répertoire, de rendre do_apache_server exécutable et de l'appeler ainsi (il faut être root):
$./do_apache_server mon_domaine.com repertoire§sousrepertoire
et cela créera le virtualhost pointant sur /var/www/repertoire/sousrepertoire/ (ca marche aussi avec juste
$./do_apache_server mon_domaine.com repertoire)
On visualise alors le fichier créé que l'on peut modifier dans un autre shell si on veut ajouter ou modifier des options (c'est le fichier site_domaine), cliquer sur o le place dans les bons répertoires apache et redémarre le serveur.