154 lines
4.4 KiB
Bash
Executable File
154 lines
4.4 KiB
Bash
Executable File
#!/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
|
|
|