Ceci est une ancienne révision du document !


Titre_page

Retour à la liste des tutoriels

Présentation rapide.
Prérequis
  • Aucun prérequis pour ce tutoriel.


grand1

lorem ipsum

#!/bin/bash
#       add_site.sh
# Script permettant l'ajout de domaines dans la configuration d'Apache2
# Auteur : Anael Mobilia
# Source : http://mon-serveur.anael.eu/doku.php/apache/ajout_domaine_script_bash
# Licence : CC Attribution-Noncommercial-Share Alike 3.0 Unported
#               http://creativecommons.org/licenses/by-nc-sa/3.0/
 
# Expression régulière validant les NDD - inspirée de http://simonslick.com/VEAF/
REGEXP_NDD="^[a-zA-Z0-9.-]{1,255}\.[a-zA-Z]{2,63}$"
 
# Répertoire contenant les fichiers de configuration des domaines apache
APACHE_SITES="/etc/apache2/sites-available/"
 
# Répertoire racine pour le domaine (un dossier au nom du domaine y sera créé)
# [/var/www/]default/www
BASE_WWW='/var/www/'
 
# Répertoire contenant les pages web (relatif à BASE_WWW)
WWW='/www'
 
# Répertoire contenant les logs (relatif à BASE_WWW)
LOGS='/logs'
 
# Mail de l'admin
MAIL_ADMIN='admin@an*el.eu'
 
 
################# Ne pas effectuer de modification après cette ligne #########################
# Vérification du passage d'un paramètre (le domaine à créer)
if [ ! $1 ]
then
        echo "Préciser le domaine à ajouter ($0 anael.eu) !"
        exit 10
fi
 
# Vérification du nom de domaine proposé
if [[ ! "$1" =~ $REGEXP_NDD ]]
then
        echo "Le nom de domaine $1 n'est pas valide !"
        exit 11
fi
 
# Vérification que le domaine n'existe pas déjà
if [ -f $APACHE_SITES$1 ]
then
        echo "Le domaine $1 est déjà configuré pour Apache"
        exit 12
fi
 
# Retour utilisateur
echo "Création de la configuration du domaine"
 
# Création du fichier de configuration Apache du domaine
touch $APACHE_SITES$1
 
# Vérification de la bonne création du fichier de configuration
if [ $? != 0 ]
then
        echo "Erreur à la création du fichier de configuration Apache ($APACHE_SITE$1). Etes-vous bien root ?"
        exit 13
fi
 
 
#Ajout du contenu du fichier de configuration apache
# Contenu par défaut du fichier de configuration Apache du domaine ainsi créé
# Il faut ajouter \n pour revenir à la ligne \t pour faire une tabulation
APACHE_DOMAINE_CONF="<VirtualHost *:80>
\r\n\tServerAdmin $MAIL_ADMIN
\r\n\tServerName $1"
 
# Si c'est un domaine (et non pas un sous domaine...)
if [[ ".*\..*\..*" =~ $1 ]]
then
        APACHE_DOMAINE_CONF=$APACHE_DOMAINE_CONF"\r\n\tServerAlias www.$1"
fi
 
APACHE_DOMAINE_CONF=$APACHE_DOMAINE_CONF"\r\n
\r\n\tDocumentRoot $BASE_WWW$1$WWW
\r\n\t<Directory $BASE_WWW$1$WWW/>
\r\n\t\tOptions -Indexes FollowSymLinks
\r\n\t\tAllowOverride AuthConfig Options
\r\n\t\tOrder allow,deny
\r\n\t\tallow from all
\r\n\t</Directory>
\r\n
\r\n\tErrorLog $BASE_WWW$1$LOGS/error.log
\r\n
\r\n\t# Possible values include: debug, info, notice, warn, error, crit,
\r\n\t# alert, emerg.
\r\n\tLogLevel warn
\r\n
\r\n\tCustomLog $BASE_WWW$1$LOGS/access.log combined
\r\n
\r\n\t<IfModule mod_php5.c>
\r\n\t\tphp_admin_value open_basedir $BASE_WWW$1$WWW/:/tmp/
\r\n\t</IfModule>
\r\n</VirtualHost>"
 
# Enregistrement de la configuration dans le fichier
echo -e $APACHE_DOMAINE_CONF > $APACHE_SITES$1
 
 
# Création des répertoires
# Retour utilisateur
echo "Création des répertoires sur le disque"
# Répertoire du domaine
mkdir $BASE_WWW$1
# Vérification de la bonne création du répertoire
if [ $? != 0 ]
then
        echo "Erreur à la création du répertoire ($BASE_WWW$1). Etes-vous bien root ?"
        exit 14
fi
 
# Répertoire des pages web
mkdir $BASE_WWW$1$WWW
# Vérification de la bonne création du répertoire
if [ $? != 0 ]
then
        echo "Erreur à la création du répertoire ($BASE_WWW$1$WWW). Etes-vous bien root ?"
        exit 15
fi
 
# Répertoire des logs
mkdir $BASE_WWW$1$LOGS
# Vérification de la bonne création du répertoire
if [ $? != 0 ]
then
        echo "Erreur à la création du répertoire ($BASE_WWW$1$LOGS). Etes-vous bien root ?"
        exit 16
fi
 
# Retour utilisateur
echo "Activation du domaine dans la configuration d'Apache"
# Activation du domaine Apache
a2ensite $1
#Vérification de la bonne exécution
if [ $? != 0 ]
then
        echo "Erreur à l'activation du site $1. Vérifiez la configuration des domaines délivrés par Apache."
        echo "Une erreur peut planter Apache au prochain reload !"
        exit 17
fi
 
# Retour utilisateur
echo "Rechargement de la configuration d'Apache"
# Relance d'apache
/etc/init.d/apache2 reload
#Vérification de la bonne exécution
if [ $? != 0 ]
then
        echo "Erreur au rechargement d'Apache !"
        echo "Vos sites ne sont plus accessibles !"
        exit 18
fi

chmod 750 site/ chown www...:www

chmod 750 /logs & /www user-web

root@sd-21614:~# nano add_site.sh root@sd-21614:~# chmod +x add_site.sh


Liens