Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
apache:ajout_domaine_script_bash [2011/12/31 04:20]
Anael MOBILIA ajout de contenu
apache:ajout_domaine_script_bash [2014/05/27 03:32] (Version actuelle)
Ligne 1: Ligne 1:
-<style float-right>​{{tag>​XXX}}</​style>​ +<style float-right>​{{tag>​configuration apache domaine script bash}}</​style>​ 
-<style float-left>​{{:​icones:​page_web.png?​nolink}}</​style>​ +<style float-left>​{{:​icones:​networksettings.png?​nolink}}</​style>​ 
-====== ​Titre_page ​======+====== ​Ajout d'un domaine via script bash ======
 //​[[:​|Retour à la liste des tutoriels]]//​ //​[[:​|Retour à la liste des tutoriels]]//​
 ~~CLEARFLOAT~~ ~~CLEARFLOAT~~
-<note tip>Présentation rapide.</​note>​+<note tip>Création d'un script bash permettant d'​automatiser la création de sites pour Apache.</​note>​ 
 +<note warning>​**Ce script exécute des commandes de manière automatisée. 
 +\\ 
 +L'​auteur décline toute responsabilité quand aux dégâts que ce script pourrait créer sur votre serveur. 
 +\\ 
 +Ce script à été testé avec soin, mais des dysfonctionnements peuvent subsister. 
 +\\ 
 +N'​utilisez ce script qu'à vos risques et périls.**</​note>​
 <​note>​**Prérequis** <​note>​**Prérequis**
-  * Aucun prérequis pour ce tutoriel.+  * [[apache:​installation_configuration|Avoir installé Apache.]] 
 +  * FIXME Avoir installé nano.
 </​note>​ </​note>​
 \\ \\
-===== grand1 ​===== +===== Contexte ​===== 
-lorem ipsum+Ce script bash fournit : 
 +  * La création d'un [[apache:​ajout_domaine|document de configuration de site pour Apache similaire à celui vu dans le tutoriel détaillé]]. 
 +  * L'​activation du nouveau domaine dans Apache. 
 +  * La gestion des www (www.anael.eu et anael.eu seront utilisables) 
 +  * La création des répertoires dans /var/www qui seront utilisés par le nouveau domaine 
 +  * La configuration des droits sur ces répertoires.
  
-<code bash>+===== Création du script ===== 
 +Je préconise le stockage des scripts dans /root afin d'​éviter qu'ils ne soient mis à plusieurs endroits sur votre serveur. 
 + 
 +  * Créez un fichier 
 +<code bash>nano /​root/​add_site.sh</​code>​ 
 + 
 +  * Copiez y le script contenu ci-dessous. 
 +  * Rendez le fichier exécutable 
 +<code bash> chmod +x /​root/​add_site.sh</​code> ​  
 + 
 +<​note>​Pour créer le domaine "​anael.eu",​ tapez 
 +<code bash>/​root/​add_site.sh anael.eu</​code></​note>​ 
 + 
 +===== Script bash ===== 
 +<file bash add_site.sh>
 #!/bin/bash #!/bin/bash
-      ​add_site.sh+#​ add_site.sh
 # Script permettant l'​ajout de domaines dans la configuration d'​Apache2 # Script permettant l'​ajout de domaines dans la configuration d'​Apache2
 # Auteur : Anael Mobilia # Auteur : Anael Mobilia
 # Source : http://​mon-serveur.anael.eu/​doku.php/​apache/​ajout_domaine_script_bash # Source : http://​mon-serveur.anael.eu/​doku.php/​apache/​ajout_domaine_script_bash
 # Licence : CC Attribution-Noncommercial-Share Alike 3.0 Unported # Licence : CC Attribution-Noncommercial-Share Alike 3.0 Unported
-              ​http://​creativecommons.org/​licenses/​by-nc-sa/​3.0/​+# http://​creativecommons.org/​licenses/​by-nc-sa/​3.0/​ 
 +# Version : 2012_08_20_1 ​
  
 # Expression régulière validant les NDD - inspirée de http://​simonslick.com/​VEAF/​ # 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}$"​ REGEXP_NDD="​^[a-zA-Z0-9.-]{1,​255}\.[a-zA-Z]{2,​63}$"​
 +
 +# Expression régulière distinguant les domaines & sous domaines
 +REGEXP_DOMAINE="​^[a-zA-Z0-9-]{1,​255}\.[a-zA-Z]{2,​63}$"​
  
 # Répertoire contenant les fichiers de configuration des domaines apache # Répertoire contenant les fichiers de configuration des domaines apache
Ligne 32: Ligne 63:
  
 # Répertoire contenant les pages web (relatif à BASE_WWW) # Répertoire contenant les pages web (relatif à BASE_WWW)
 +# /​var/​www/​default[/​www]
 WWW='/​www'​ WWW='/​www'​
  
 # Répertoire contenant les logs (relatif à BASE_WWW) # Répertoire contenant les logs (relatif à BASE_WWW)
 +# /​var/​www/​default[/​logs]
 LOGS='/​logs'​ LOGS='/​logs'​
  
 # Mail de l'​admin # Mail de l'​admin
-MAIL_ADMIN='​admin@an*el.eu'​+MAIL_ADMIN='​webmaster@an*el.eu'​
  
 +# Utilisateur se connectant en FTP pour effectuer les modifications
 +USER_WEB='​user-web'​
  
 #################​ Ne pas effectuer de modification après cette ligne #########################​ #################​ Ne pas effectuer de modification après cette ligne #########################​
 +##### VERIFICATIONS #####
 # Vérification du passage d'un paramètre (le domaine à créer) # Vérification du passage d'un paramètre (le domaine à créer)
 if [ ! $1 ] if [ ! $1 ]
 then then
-        ​echo "​Préciser le domaine à ajouter ($0 anael.eu) !"+ echo "​Préciser le domaine à ajouter ($0 anael.eu) !"
         exit 10         exit 10
 fi fi
Ligne 52: Ligne 88:
 if [[ ! "​$1"​ =~ $REGEXP_NDD ]] if [[ ! "​$1"​ =~ $REGEXP_NDD ]]
 then then
-        ​echo "Le nom de domaine $1 n'est pas valide !" + echo "Le nom de domaine $1 n'est pas valide !" 
-        exit 11+ exit 11
 fi fi
  
Ligne 59: Ligne 95:
 if [ -f $APACHE_SITES$1 ] if [ -f $APACHE_SITES$1 ]
 then then
-        ​echo "Le domaine $1 est déjà configuré pour Apache"​ + echo "Le domaine $1 est déjà configuré pour Apache"​ 
-        exit 12+ exit 12
 fi fi
  
Ligne 66: Ligne 102:
 echo "​Création de la configuration du domaine"​ echo "​Création de la configuration du domaine"​
  
 +##### CREATION FICHIER DE CONF APACHE #####
 # Création du fichier de configuration Apache du domaine # Création du fichier de configuration Apache du domaine
 touch $APACHE_SITES$1 touch $APACHE_SITES$1
Ligne 72: Ligne 109:
 if [ $? != 0 ] if [ $? != 0 ]
 then then
-        ​echo "​Erreur à la création du fichier de configuration Apache ($APACHE_SITE$1). Etes-vous bien root ?" + echo "​Erreur à la création du fichier de configuration Apache ($APACHE_SITE$1). Etes-vous bien root ?" 
-        exit 13+ exit 13
 fi fi
  
Ligne 85: Ligne 122:
  
 # Si c'est un domaine (et non pas un sous domaine...) # Si c'est un domaine (et non pas un sous domaine...)
-if [[ ".*\..*\..*" =~ $]]+if [[ "$1" =~ $REGEXP_DOMAINE ​]]
 then then
         APACHE_DOMAINE_CONF=$APACHE_DOMAINE_CONF"​\r\n\tServerAlias www.$1"​         APACHE_DOMAINE_CONF=$APACHE_DOMAINE_CONF"​\r\n\tServerAlias www.$1"​
Ligne 115: Ligne 152:
 echo -e $APACHE_DOMAINE_CONF > $APACHE_SITES$1 echo -e $APACHE_DOMAINE_CONF > $APACHE_SITES$1
  
 +##### CREATION DES REPERTOIRES + DROITS #####
 # Création des répertoires # Création des répertoires
 # Retour utilisateur # Retour utilisateur
Ligne 146: Ligne 183:
 fi fi
  
 +# Retour utilisateur
 +echo "​Définition des droits sur les répertoires"​
 +# Droits sur les répertoires
 +chown $USER_WEB:​www-data $BASE_WWW$1
 +chmod 750 -R $BASE_WWW$1
 +chown -R $USER_WEB:​www-data $BASE_WWW$1/​*
 +
 +
 +##### ACTIVATION APACHE #####
 # Retour utilisateur # Retour utilisateur
 echo "​Activation du domaine dans la configuration d'​Apache"​ echo "​Activation du domaine dans la configuration d'​Apache"​
Ligne 154: Ligne 200:
 then then
         echo "​Erreur à l'​activation du site $1. Vérifiez la configuration des domaines délivrés par Apache."​         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 !"+ echo "Une erreur peut planter Apache au prochain reload !"
         exit 17         exit 17
 fi fi
Ligne 168: Ligne 214:
         echo "Vos sites ne sont plus accessibles !"         echo "Vos sites ne sont plus accessibles !"
         exit 18         exit 18
-fi +fi</file>
- +
- +
-</code> +
-root@sd-21614:​~#​ nano add_site.sh +
-root@sd-21614:​~#​ chmod +x add_site.sh  +
  
 \\ \\
 ===== Liens ===== ===== Liens =====
-  * [[.:|Retour à la liste des tutoriels ​XXX]]+  * [[.:|Retour à la liste des tutoriels ​Apache]]
   * [[:|Retour à la liste des tutoriels]]   * [[:|Retour à la liste des tutoriels]]