Ceci est une ancienne révision du document !
Titre_page
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