correciton de l récupération des IP
This commit is contained in:
@@ -19,19 +19,33 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Obtenir l'adresse IP du serveur sur l'interface principale
|
# Récupérer toutes les interfaces avec leurs IP v4, sauf loopback
|
||||||
IP_SERVEUR=$(ip -4 addr show $(ip route show default | awk '/default/ {print $5}') | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
mapfile -t IPS < <(ip -4 -o addr show | awk '!/ lo / {print $2" "$4}')
|
||||||
if [[ -z "$IP_SERVEUR" ]]; then
|
|
||||||
echo "Impossible de déterminer l'adresse IP du serveur."
|
if [[ ${#IPS[@]} -eq 0 ]]; then
|
||||||
|
echo "Aucune interface réseau avec une adresse IPv4 trouvée."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Vérifier si l'IP est dans une plage privée autorisée
|
echo "Sélectionnez l'interface et l'IP à utiliser :"
|
||||||
if [[ "$IP_SERVEUR" =~ ^10\..* || "$IP_SERVEUR" =~ ^192\.168\..* || "$IP_SERVEUR" =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\..* ]]; then
|
select CHOIX in "${IPS[@]}"; do
|
||||||
echo "Adresse IP privée détectée : $IP_SERVEUR"
|
if [[ -n "$CHOIX" ]]; then
|
||||||
|
INTERFACE=$(echo "$CHOIX" | awk '{print $1}')
|
||||||
|
IP_SERVEUR=$(echo "$CHOIX" | awk '{print $2}' | cut -d'/' -f1)
|
||||||
|
break
|
||||||
else
|
else
|
||||||
echo "Erreur : L'adresse IP $IP_SERVEUR n'est pas dans un réseau privé."
|
echo "Choix invalide."
|
||||||
exit 1
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Interface sélectionnée : $INTERFACE"
|
||||||
|
echo "Adresse IP sélectionnée : $IP_SERVEUR"
|
||||||
|
|
||||||
|
# Vérifier si l'IP est privée ou publique
|
||||||
|
if [[ "$IP_SERVEUR" =~ ^10\. ]] || [[ "$IP_SERVEUR" =~ ^192\.168\. ]] || [[ "$IP_SERVEUR" =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\. ]]; then
|
||||||
|
echo "✅ Adresse IP privée détectée : $IP_SERVEUR"
|
||||||
|
else
|
||||||
|
echo "⚠️ Attention : L'adresse IP $IP_SERVEUR semble PUBLIQUE !"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FORCE=false
|
FORCE=false
|
||||||
@@ -40,8 +54,10 @@ if [[ "$1" == "--force" ]]; then
|
|||||||
echo "Mode forçage activé : reconfiguration complète..."
|
echo "Mode forçage activé : reconfiguration complète..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if systemctl is-active --quiet dnsmasq && [ "$FORCE" = false ]; then
|
DNSMASQ_CONF="/etc/dnsmasq.conf"
|
||||||
echo "dnsmasq est déjà actif et configuré. Utilisez --force pour reconfigurer."
|
|
||||||
|
if grep -q "# CONFIGURE_PAR_CEDRIX" "$DNSMASQ_CONF" && [ "$FORCE" = false ]; then
|
||||||
|
echo "dnsmasq est déjà configuré. Utilisez --force pour reconfigurer."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -88,7 +104,8 @@ fi
|
|||||||
# Configurer dnsmasq
|
# Configurer dnsmasq
|
||||||
echo "Configuration de dnsmasq..."
|
echo "Configuration de dnsmasq..."
|
||||||
|
|
||||||
cat <<EOF > /etc/dnsmasq.conf
|
cat <<EOF > $DNSMASQ_CONF
|
||||||
|
# CONFIGURE_PAR_CEDRIX
|
||||||
# Configuration de dnsmasq
|
# Configuration de dnsmasq
|
||||||
|
|
||||||
# Interface réseau principale
|
# Interface réseau principale
|
||||||
|
|||||||
@@ -14,15 +14,6 @@ check_dns "$DOMAIN"
|
|||||||
|
|
||||||
REVERSED_DOMAIN=$(echo "$DOMAIN" | awk -F. '{for(i=NF; i>0; i--) printf "%s%s", $i, (i>1 ? "." : "")}')
|
REVERSED_DOMAIN=$(echo "$DOMAIN" | awk -F. '{for(i=NF; i>0; i--) printf "%s%s", $i, (i>1 ? "." : "")}')
|
||||||
VHOST_CONF="/etc/apache2/sites-available/$REVERSED_DOMAIN.conf"
|
VHOST_CONF="/etc/apache2/sites-available/$REVERSED_DOMAIN.conf"
|
||||||
LE_DIR="/etc/letsencrypt/live/$DOMAIN"
|
|
||||||
BACKUP_DIR="/etc/apache2/backups"
|
|
||||||
TEMPLATE_DIR="/etc/apache2/templates"
|
|
||||||
TEMPLATE="$TEMPLATE_DIR/vhost-template.conf"
|
|
||||||
CHALLENGE_DIR="/var/www/cedrix/.well-known/acme-challenge"
|
|
||||||
PATH_URL_ACME_CHALLENGE=".well-known/acme-challenge"
|
|
||||||
TEST_FILE="test-challenge"
|
|
||||||
TEST_URL="http://${DOMAIN}/${PATH_URL_ACME_CHALLENGE}/${TEST_FILE}"
|
|
||||||
RANDOM_CONTENT=$(openssl rand -hex 12)
|
|
||||||
|
|
||||||
# Créer les dossiers nécessaires
|
# Créer les dossiers nécessaires
|
||||||
mkdir -p "$BACKUP_DIR" "$TEMPLATE_DIR" "$CHALLENGE_DIR"
|
mkdir -p "$BACKUP_DIR" "$TEMPLATE_DIR" "$CHALLENGE_DIR"
|
||||||
@@ -32,8 +23,6 @@ mkdir -p "/var/www/$REVERSED_DOMAIN"
|
|||||||
chown -R www-data:www-data "/var/www/$REVERSED_DOMAIN"
|
chown -R www-data:www-data "/var/www/$REVERSED_DOMAIN"
|
||||||
chmod -R 755 "/var/www/$REVERSED_DOMAIN"
|
chmod -R 755 "/var/www/$REVERSED_DOMAIN"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Vérifier si le VirtualHost HTTP existe déjà
|
# Vérifier si le VirtualHost HTTP existe déjà
|
||||||
if [[ ! -f "$VHOST_CONF" ]]; then
|
if [[ ! -f "$VHOST_CONF" ]]; then
|
||||||
echo "=== Création du fichier VirtualHost HTTP pour $DOMAIN ==="
|
echo "=== Création du fichier VirtualHost HTTP pour $DOMAIN ==="
|
||||||
@@ -44,11 +33,9 @@ if [[ ! -f "$VHOST_CONF" ]]; then
|
|||||||
ErrorLog \${APACHE_LOG_DIR}/$REVERSED_DOMAIN-error.log
|
ErrorLog \${APACHE_LOG_DIR}/$REVERSED_DOMAIN-error.log
|
||||||
CustomLog \${APACHE_LOG_DIR}/$REVERSED_DOMAIN-access.log combined
|
CustomLog \${APACHE_LOG_DIR}/$REVERSED_DOMAIN-access.log combined
|
||||||
|
|
||||||
# Cedrix challenge
|
<Directory /var/www/$REVERSED_DOMAIN>
|
||||||
Alias /${PATH_URL_ACME_CHALLENGE}/ $CHALLENGE_DIR/
|
|
||||||
<Directory $CHALLENGE_DIR>
|
|
||||||
Options +Indexes
|
Options +Indexes
|
||||||
AllowOverride None
|
AllowOverride All
|
||||||
Require all granted
|
Require all granted
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|
||||||
@@ -61,26 +48,5 @@ else
|
|||||||
echo "✅ VirtualHost HTTP déjà configuré pour $DOMAIN."
|
echo "✅ VirtualHost HTTP déjà configuré pour $DOMAIN."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Vérification d'accès au dossier cedric-challenge
|
|
||||||
echo "Vérification d'accès au dossier ${PATH_URL_ACME_CHALLENGE}"
|
|
||||||
echo "$RANDOM_CONTENT" | sudo tee "$CHALLENGE_DIR/$TEST_FILE" > /dev/null
|
|
||||||
chmod 644 "$CHALLENGE_DIR/$TEST_FILE"
|
|
||||||
RESPONSE=$(curl -s "$TEST_URL")
|
|
||||||
|
|
||||||
if [[ "$RESPONSE" == "$RANDOM_CONTENT" ]]; then
|
|
||||||
echo "✅ Le dossier est accessible depuis l'extérieur."
|
|
||||||
else
|
|
||||||
echo "❌ Le dossier n'est pas accessible depuis l'extérieur."
|
|
||||||
echo "URL testée : $TEST_URL"
|
|
||||||
echo "Vérifiez votre configuration Apache/Nginx, les firewalls, les proxy et les permissions."
|
|
||||||
#sudo rm -f "$CHALLENGE_DIR/$TEST_FILE"
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Suppression du fichier test
|
|
||||||
#sudo rm -f "$CHALLENGE_DIR/$TEST_FILE"
|
|
||||||
|
|
||||||
|
|
||||||
echo "✅ Virtual Host configuré pour $DOMAIN avec succès !"
|
echo "✅ Virtual Host configuré pour $DOMAIN avec succès !"
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
90
scripts/server-httpd/install-php8-3.sh
Normal file
90
scripts/server-httpd/install-php8-3.sh
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
|
||||||
|
|
||||||
|
# Importer les fonctions communes
|
||||||
|
source "$(dirname "$0")/../common/common_utils.sh"
|
||||||
|
|
||||||
|
# Vérifier si le script est exécuté en root
|
||||||
|
check_root
|
||||||
|
|
||||||
|
# Définition des couleurs pour un affichage clair
|
||||||
|
GREEN="\e[32m"
|
||||||
|
YELLOW="\e[33m"
|
||||||
|
RED="\e[31m"
|
||||||
|
RESET="\e[0m"
|
||||||
|
|
||||||
|
echo -e "${YELLOW}Mise à jour des paquets...${RESET}"
|
||||||
|
apt update && apt upgrade -y || { echo -e "${RED}Échec de la mise à jour des paquets${RESET}"; exit 1; }
|
||||||
|
|
||||||
|
# Détection de la version de Debian
|
||||||
|
VERSION=$(lsb_release -sc)
|
||||||
|
SUPPORTED_VERSIONS=("buster" "bullseye" "bookworm")
|
||||||
|
|
||||||
|
if [[ ! " ${SUPPORTED_VERSIONS[@]} " =~ " ${VERSION} " ]]; then
|
||||||
|
echo -e "${RED}Version de Debian non supportée : $VERSION${RESET}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${GREEN}Version de Debian détectée : $VERSION${RESET}"
|
||||||
|
|
||||||
|
# Vérification de l'existence du dépôt Sury
|
||||||
|
if ! grep -q "packages.sury.org" /etc/apt/sources.list.d/php.list 2>/dev/null; then
|
||||||
|
echo -e "${YELLOW}Ajout du dépôt Sury pour PHP...${RESET}"
|
||||||
|
apt install -y ca-certificates apt-transport-https software-properties-common || { echo -e "${RED}Échec de l'installation des paquets nécessaires${RESET}"; exit 1; }
|
||||||
|
wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg || { echo -e "${RED}Échec du téléchargement de la clé GPG de Sury${RESET}"; exit 1; }
|
||||||
|
echo "deb https://packages.sury.org/php/ $VERSION main" | tee /etc/apt/sources.list.d/php.list
|
||||||
|
apt update
|
||||||
|
else
|
||||||
|
echo -e "${GREEN}Le dépôt Sury est déjà installé.${RESET}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Définition de la version PHP souhaitée
|
||||||
|
PHP_VERSION="8.3"
|
||||||
|
|
||||||
|
# Vérification de l'installation de PHP
|
||||||
|
echo -e "${YELLOW}Installation de PHP $PHP_VERSION et des modules courants...${RESET}"
|
||||||
|
apt install -y php$PHP_VERSION php$PHP_VERSION-cli php$PHP_VERSION-fpm \
|
||||||
|
php$PHP_VERSION-mysql php$PHP_VERSION-curl php$PHP_VERSION-gd \
|
||||||
|
php$PHP_VERSION-mbstring php$PHP_VERSION-xml php$PHP_VERSION-zip \
|
||||||
|
php$PHP_VERSION-bcmath php$PHP_VERSION-soap php$PHP_VERSION-intl \
|
||||||
|
php$PHP_VERSION-readline php$PHP_VERSION-ldap php$PHP_VERSION-imagick || { echo -e "${RED}Échec de l'installation de PHP${RESET}"; exit 1; }
|
||||||
|
|
||||||
|
# Vérification si Apache est installé et installation du module PHP si nécessaire
|
||||||
|
if systemctl list-units --type=service --all | grep -q "apache2.service"; then
|
||||||
|
echo -e "${YELLOW}Apache détecté. Installation de libapache2-mod-php${RESET}"
|
||||||
|
apt install -y libapache2-mod-php$PHP_VERSION || { echo -e "${RED}Échec de l'installation de libapache2-mod-php${RESET}"; exit 1; }
|
||||||
|
|
||||||
|
echo -e "${YELLOW}Redémarrage d'Apache...${RESET}"
|
||||||
|
systemctl restart apache2 || { echo -e "${RED}Échec du redémarrage d'Apache${RESET}"; exit 1; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configuration de PHP-FPM si ce n'est pas déjà fait
|
||||||
|
PHP_INI="/etc/php/$PHP_VERSION/fpm/php.ini"
|
||||||
|
|
||||||
|
if grep -q "memory_limit = 512M" "$PHP_INI"; then
|
||||||
|
echo -e "${GREEN}Configuration de PHP-FPM déjà optimisée.${RESET}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}Configuration de PHP-FPM...${RESET}"
|
||||||
|
sed -i 's/memory_limit = .*/memory_limit = 512M/' "$PHP_INI"
|
||||||
|
sed -i 's/upload_max_filesize = .*/upload_max_filesize = 100M/' "$PHP_INI"
|
||||||
|
sed -i 's/post_max_size = .*/post_max_size = 100M/' "$PHP_INI"
|
||||||
|
sed -i 's/max_execution_time = .*/max_execution_time = 300/' "$PHP_INI"
|
||||||
|
|
||||||
|
echo -e "${YELLOW}Redémarrage de PHP-FPM...${RESET}"
|
||||||
|
systemctl restart php$PHP_VERSION-fpm || { echo -e "${RED}Échec du redémarrage de PHP-FPM${RESET}"; exit 1; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Vérification des modules PHP installés
|
||||||
|
echo -e "${GREEN}Modules PHP installés :${RESET}"
|
||||||
|
php -m
|
||||||
|
|
||||||
|
# Test de la configuration Apache
|
||||||
|
if systemctl is-active --quiet apache2; then
|
||||||
|
echo -e "${YELLOW}Vérification du support de PHP par Apache...${RESET}"
|
||||||
|
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
|
||||||
|
chown www-data:www-data /var/www/html/info.php
|
||||||
|
chmod 644 /var/www/html/info.php
|
||||||
|
echo -e "${GREEN}Vous pouvez tester PHP en accédant à : http://<IP_SERVEUR>/info.php${RESET}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${GREEN}Installation terminée avec succès ! 🚀${RESET}"
|
||||||
Reference in New Issue
Block a user