Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
apache:ajout_domaine_script_bash [2011/11/15 21:34] – créée Anael MOBILIA | apache:ajout_domaine_script_bash [2014/05/27 03:32] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | <style float-right> | + | <style float-right> |
- | <style float-left> | + | <style float-left> |
- | ====== | + | ====== |
// | // | ||
~~CLEARFLOAT~~ | ~~CLEARFLOAT~~ | ||
- | <note tip>Présentation rapide.</ | + | <note tip>Création d'un script bash permettant d' |
+ | <note warning> | ||
+ | \\ | ||
+ | L' | ||
+ | \\ | ||
+ | Ce script à été testé avec soin, mais des dysfonctionnements peuvent subsister. | ||
+ | \\ | ||
+ | N' | ||
< | < | ||
- | * Aucun prérequis pour ce tutoriel. | + | * [[apache: |
+ | * FIXME Avoir installé nano. | ||
</ | </ | ||
\\ | \\ | ||
- | ===== grand1 | + | ===== Contexte |
- | lorem ipsum | + | Ce script bash fournit : |
+ | * La création d'un [[apache: | ||
+ | * L' | ||
+ | * 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. | ||
+ | |||
+ | ===== Création du script ===== | ||
+ | Je préconise le stockage des scripts dans /root afin d' | ||
+ | |||
+ | * Créez un fichier | ||
+ | <code bash> | ||
+ | |||
+ | * Copiez y le script contenu ci-dessous. | ||
+ | * Rendez le fichier exécutable | ||
+ | <code bash> chmod +x / | ||
+ | |||
+ | < | ||
+ | <code bash>/ | ||
+ | |||
+ | ===== Script bash ===== | ||
+ | <file bash add_site.sh> | ||
+ | # | ||
+ | # | ||
+ | # Script permettant l' | ||
+ | # Auteur : Anael Mobilia | ||
+ | # Source : http:// | ||
+ | # Licence : CC Attribution-Noncommercial-Share Alike 3.0 Unported | ||
+ | # | ||
+ | # Version : 2012_08_20_1 | ||
+ | |||
+ | # Expression régulière validant les NDD - inspirée de http:// | ||
+ | REGEXP_NDD=" | ||
+ | |||
+ | # Expression régulière distinguant les domaines & sous domaines | ||
+ | REGEXP_DOMAINE=" | ||
+ | |||
+ | # Répertoire contenant les fichiers de configuration des domaines apache | ||
+ | APACHE_SITES="/ | ||
+ | |||
+ | # Répertoire racine pour le domaine (un dossier au nom du domaine y sera créé) | ||
+ | # [/ | ||
+ | BASE_WWW='/ | ||
+ | |||
+ | # Répertoire contenant les pages web (relatif à BASE_WWW) | ||
+ | # / | ||
+ | WWW='/ | ||
+ | |||
+ | # Répertoire contenant les logs (relatif à BASE_WWW) | ||
+ | # / | ||
+ | LOGS='/ | ||
+ | |||
+ | # Mail de l' | ||
+ | MAIL_ADMIN=' | ||
+ | |||
+ | # Utilisateur se connectant en FTP pour effectuer les modifications | ||
+ | USER_WEB=' | ||
+ | |||
+ | ################# | ||
+ | ##### VERIFICATIONS ##### | ||
+ | # Vérification du passage d'un paramètre (le domaine à créer) | ||
+ | if [ ! $1 ] | ||
+ | then | ||
+ | echo " | ||
+ | exit 10 | ||
+ | fi | ||
+ | |||
+ | # Vérification du nom de domaine proposé | ||
+ | if [[ ! " | ||
+ | then | ||
+ | echo "Le nom de domaine $1 n'est pas valide !" | ||
+ | exit 11 | ||
+ | fi | ||
+ | |||
+ | # Vérification que le domaine n' | ||
+ | if [ -f $APACHE_SITES$1 ] | ||
+ | then | ||
+ | echo "Le domaine $1 est déjà configuré pour Apache" | ||
+ | exit 12 | ||
+ | fi | ||
+ | |||
+ | # Retour utilisateur | ||
+ | echo " | ||
+ | |||
+ | ##### CREATION FICHIER DE CONF APACHE ##### | ||
+ | # 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 " | ||
+ | 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="< | ||
+ | \r\n\tServerAdmin $MAIL_ADMIN | ||
+ | \r\n\tServerName $1" | ||
+ | |||
+ | # Si c'est un domaine (et non pas un sous domaine...) | ||
+ | if [[ " | ||
+ | then | ||
+ | APACHE_DOMAINE_CONF=$APACHE_DOMAINE_CONF" | ||
+ | fi | ||
+ | |||
+ | APACHE_DOMAINE_CONF=$APACHE_DOMAINE_CONF" | ||
+ | \r\n\tDocumentRoot $BASE_WWW$1$WWW | ||
+ | \r\n\t< | ||
+ | \r\n\t\tOptions -Indexes FollowSymLinks | ||
+ | \r\n\t\tAllowOverride AuthConfig Options | ||
+ | \r\n\t\tOrder allow, | ||
+ | \r\n\t\tallow from all | ||
+ | \r\n\t</ | ||
+ | \r\n | ||
+ | \r\n\tErrorLog $BASE_WWW$1$LOGS/ | ||
+ | \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/ | ||
+ | \r\n | ||
+ | \r\n\t< | ||
+ | \r\n\t\tphp_admin_value open_basedir $BASE_WWW$1$WWW/:/ | ||
+ | \r\n\t</ | ||
+ | \r\n</ | ||
+ | |||
+ | # Enregistrement de la configuration dans le fichier | ||
+ | echo -e $APACHE_DOMAINE_CONF > $APACHE_SITES$1 | ||
+ | |||
+ | ##### CREATION DES REPERTOIRES + DROITS ##### | ||
+ | # Création des répertoires | ||
+ | # Retour utilisateur | ||
+ | echo " | ||
+ | # Répertoire du domaine | ||
+ | mkdir $BASE_WWW$1 | ||
+ | # Vérification de la bonne création du répertoire | ||
+ | if [ $? != 0 ] | ||
+ | then | ||
+ | echo " | ||
+ | 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 " | ||
+ | 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 " | ||
+ | exit 16 | ||
+ | fi | ||
- | <script bash> | + | # Retour utilisateur |
+ | echo " | ||
+ | # Droits sur les répertoires | ||
+ | chown $USER_WEB: | ||
+ | chmod 750 -R $BASE_WWW$1 | ||
+ | chown -R $USER_WEB: | ||
- | </ | ||
+ | ##### ACTIVATION APACHE ##### | ||
+ | # Retour utilisateur | ||
+ | echo " | ||
+ | # Activation du domaine Apache | ||
+ | a2ensite $1 | ||
+ | # | ||
+ | if [ $? != 0 ] | ||
+ | then | ||
+ | echo " | ||
+ | echo "Une erreur peut planter Apache au prochain reload !" | ||
+ | exit 17 | ||
+ | fi | ||
+ | # Retour utilisateur | ||
+ | echo " | ||
+ | # Relance d' | ||
+ | / | ||
+ | # | ||
+ | if [ $? != 0 ] | ||
+ | then | ||
+ | echo " | ||
+ | echo "Vos sites ne sont plus accessibles !" | ||
+ | exit 18 | ||
+ | fi</ | ||
\\ | \\ | ||
===== Liens ===== | ===== Liens ===== | ||
- | * [[.:|Retour à la liste des tutoriels | + | * [[.:|Retour à la liste des tutoriels |
* [[:|Retour à la liste des tutoriels]] | * [[:|Retour à la liste des tutoriels]] |