#!/usr/bin/env bash set -euo pipefail # Script pour remplacer les configurations nginx par des liens symboliques # vers les fichiers centralisés dans /home/debian/4NK_env/confs/nginx SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" ROOT_DIR="$(cd "$SCRIPT_DIR/../../../.." && pwd)" NGINX_CONF_DIR="/home/debian/4NK_env/confs/nginx" NGINX_ACTIVE_DIR="/etc/nginx/sites-available" NGINX_ENABLED_DIR="/etc/nginx/sites-enabled" echo "==========================================" echo " Configuration Nginx - Liens Symboliques" echo "==========================================" # Vérifier que le répertoire de configuration centralisé existe if [ ! -d "$NGINX_CONF_DIR" ]; then echo "❌ Erreur: Le répertoire $NGINX_CONF_DIR n'existe pas" exit 1 fi echo "📁 Répertoire de configuration centralisé: $NGINX_CONF_DIR" echo "📁 Répertoire nginx sites-available: $NGINX_ACTIVE_DIR" echo "📁 Répertoire nginx sites-enabled: $NGINX_ENABLED_DIR" # Fonction pour créer un lien symbolique create_symlink() { local source="$1" local target="$2" local description="$3" echo "🔗 Création du lien: $description" echo " Source: $source" echo " Cible: $target" # Supprimer le fichier/cible existant s'il existe if [ -e "$target" ] || [ -L "$target" ]; then echo " Suppression de l'ancien fichier/lien: $target" sudo rm -f "$target" fi # Créer le lien symbolique sudo ln -sf "$source" "$target" if [ -L "$target" ]; then echo " ✅ Lien créé avec succès" else echo " ❌ Erreur lors de la création du lien" return 1 fi } echo "" echo "🔧 Création des liens symboliques..." # Lister les fichiers de configuration dans le répertoire centralisé config_files=$(find "$NGINX_CONF_DIR" -name "*.conf" -type f) if [ -z "$config_files" ]; then echo "❌ Aucun fichier .conf trouvé dans $NGINX_CONF_DIR" exit 1 fi echo "📋 Fichiers de configuration trouvés:" echo "$config_files" | while read -r file; do echo " - $(basename "$file")" done echo "" echo "🔗 Création des liens dans sites-available..." # Créer les liens dans sites-available echo "$config_files" | while read -r source_file; do filename=$(basename "$source_file") target_file="$NGINX_ACTIVE_DIR/$filename" create_symlink "$source_file" "$target_file" "$filename" done echo "" echo "📋 Configuration actuelle de nginx..." # Lister les configurations actives (sites-available) echo "📁 Fichiers dans sites-available:" if [ -d "$NGINX_ACTIVE_DIR" ]; then ls -la "$NGINX_ACTIVE_DIR" | grep -E "\.(conf|link)$" || echo " Aucun fichier .conf trouvé" else echo " ❌ Répertoire $NGINX_ACTIVE_DIR n'existe pas" fi # Lister les configurations activées (sites-enabled) echo "" echo "📁 Fichiers dans sites-enabled:" if [ -d "$NGINX_ENABLED_DIR" ]; then ls -la "$NGINX_ENABLED_DIR" | grep -E "\.(conf|link)$" || echo " Aucun fichier .conf activé" else echo " ❌ Répertoire $NGINX_ENABLED_DIR n'existe pas" fi echo "" echo "🧪 Test de la configuration nginx..." # Tester la configuration nginx if sudo nginx -t; then echo "✅ Configuration nginx valide" echo "" echo "🔄 Redémarrage de nginx..." # Redémarrer nginx if sudo systemctl reload nginx; then echo "✅ Nginx rechargé avec succès" else echo "❌ Erreur lors du rechargement de nginx" echo "🔄 Tentative de redémarrage complet..." if sudo systemctl restart nginx; then echo "✅ Nginx redémarré avec succès" else echo "❌ Erreur lors du redémarrage de nginx" exit 1 fi fi echo "" echo "📊 Statut de nginx:" sudo systemctl status nginx --no-pager -l else echo "❌ Configuration nginx invalide" echo "🔍 Détails de l'erreur:" sudo nginx -t 2>&1 || true exit 1 fi echo "" echo "==========================================" echo "✅ Configuration nginx terminée avec succès" echo "==========================================" # Afficher un résumé des liens créés echo "" echo "📋 Résumé des liens créés:" echo "$config_files" | while read -r source_file; do filename=$(basename "$source_file") target_file="$NGINX_ACTIVE_DIR/$filename" if [ -L "$target_file" ]; then echo " ✅ $filename -> $(readlink "$target_file")" else echo " ❌ $filename -> Lien non créé" fi done