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édentesRévision précédente
Prochaine révision
Révision précédente
apache:ajout_domaine_script_bash [2011/12/31 04:29] Anael MOBILIAapache:ajout_domaine_script_bash [2014/05/27 03:32] (Version actuelle) – modification externe 127.0.0.1
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> +
-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 ===== ===== Liens =====
-  * [[.:|Retour à la liste des tutoriels XXX]]+  * [[.:|Retour à la liste des tutoriels Apache]]
   * [[:|Retour à la liste des tutoriels]]   * [[:|Retour à la liste des tutoriels]]