🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
166 lines
4.7 KiB
Bash
166 lines
4.7 KiB
Bash
#!/bin/bash
|
|
|
|
##############################################################################
|
|
# Script de mise à jour des paramètres PHP-FPM pour GeoSector
|
|
#
|
|
# Usage:
|
|
# ./update_php_fpm_settings.sh dev # Pour DVA
|
|
# ./update_php_fpm_settings.sh rec # Pour RCA
|
|
# ./update_php_fpm_settings.sh prod # Pour PRA
|
|
##############################################################################
|
|
|
|
set -e
|
|
|
|
# Couleurs
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Déterminer l'environnement
|
|
ENV=${1:-dev}
|
|
|
|
case $ENV in
|
|
dev)
|
|
CONTAINER="dva-geo"
|
|
TIMEOUT=180
|
|
MAX_REQUESTS=1000
|
|
MEMORY_LIMIT=512M
|
|
;;
|
|
rec)
|
|
CONTAINER="rca-geo"
|
|
TIMEOUT=120
|
|
MAX_REQUESTS=2000
|
|
MEMORY_LIMIT=256M
|
|
;;
|
|
prod)
|
|
CONTAINER="pra-geo"
|
|
TIMEOUT=120
|
|
MAX_REQUESTS=2000
|
|
MEMORY_LIMIT=256M
|
|
;;
|
|
*)
|
|
echo -e "${RED}Erreur: Environnement invalide '$ENV'${NC}"
|
|
echo "Usage: $0 [dev|rec|prod]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo -e "${GREEN}=== Mise à jour PHP-FPM pour $ENV ($CONTAINER) ===${NC}"
|
|
echo ""
|
|
|
|
# Vérifier que le container existe
|
|
if ! incus list | grep -q "$CONTAINER"; then
|
|
echo -e "${RED}Erreur: Container $CONTAINER non trouvé${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Trouver le fichier de configuration
|
|
echo "Recherche du fichier de configuration PHP-FPM..."
|
|
POOL_FILE=$(incus exec $CONTAINER -- find /etc/php* -name "www.conf" 2>/dev/null | grep fpm/pool | head -1)
|
|
|
|
if [ -z "$POOL_FILE" ]; then
|
|
echo -e "${RED}Erreur: Fichier pool PHP-FPM non trouvé${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}✓ Fichier trouvé: $POOL_FILE${NC}"
|
|
echo ""
|
|
|
|
# Sauvegarder le fichier original
|
|
BACKUP_FILE="${POOL_FILE}.backup.$(date +%Y%m%d_%H%M%S)"
|
|
echo "Création d'une sauvegarde..."
|
|
incus exec $CONTAINER -- cp "$POOL_FILE" "$BACKUP_FILE"
|
|
echo -e "${GREEN}✓ Sauvegarde créée: $BACKUP_FILE${NC}"
|
|
echo ""
|
|
|
|
# Afficher les valeurs actuelles
|
|
echo "Valeurs actuelles:"
|
|
incus exec $CONTAINER -- grep -E "^(request_terminate_timeout|pm.max_requests|memory_limit)" "$POOL_FILE" || echo " (non définies)"
|
|
echo ""
|
|
|
|
# Créer un fichier temporaire avec les nouvelles valeurs
|
|
TMP_FILE="/tmp/php_fpm_update_$$.conf"
|
|
|
|
cat > $TMP_FILE << EOF
|
|
; === Configuration GeoSector - Modifié le $(date +%Y-%m-%d) ===
|
|
|
|
; Timeout des requêtes
|
|
request_terminate_timeout = ${TIMEOUT}s
|
|
|
|
; Nombre max de requêtes avant recyclage du worker
|
|
pm.max_requests = ${MAX_REQUESTS}
|
|
|
|
; Limite mémoire PHP
|
|
php_admin_value[memory_limit] = ${MEMORY_LIMIT}
|
|
|
|
; Log des requêtes lentes
|
|
slowlog = /var/log/php8.3-fpm-slow.log
|
|
request_slowlog_timeout = 10s
|
|
EOF
|
|
|
|
echo "Nouvelles valeurs à appliquer:"
|
|
cat $TMP_FILE
|
|
echo ""
|
|
|
|
# Demander confirmation
|
|
read -p "Appliquer ces modifications ? (y/N) " -n 1 -r
|
|
echo ""
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "Annulé."
|
|
rm $TMP_FILE
|
|
exit 0
|
|
fi
|
|
|
|
# Supprimer les anciennes valeurs si présentes
|
|
echo "Suppression des anciennes valeurs..."
|
|
incus exec $CONTAINER -- sed -i '/^request_terminate_timeout/d' "$POOL_FILE"
|
|
incus exec $CONTAINER -- sed -i '/^pm.max_requests/d' "$POOL_FILE"
|
|
incus exec $CONTAINER -- sed -i '/^php_admin_value\[memory_limit\]/d' "$POOL_FILE"
|
|
incus exec $CONTAINER -- sed -i '/^slowlog/d' "$POOL_FILE"
|
|
incus exec $CONTAINER -- sed -i '/^request_slowlog_timeout/d' "$POOL_FILE"
|
|
|
|
# Ajouter les nouvelles valeurs à la fin du fichier
|
|
echo "Ajout des nouvelles valeurs..."
|
|
incus file push $TMP_FILE $CONTAINER/tmp/php_fpm_settings.conf
|
|
incus exec $CONTAINER -- bash -c "cat /tmp/php_fpm_settings.conf >> $POOL_FILE"
|
|
incus exec $CONTAINER -- rm /tmp/php_fpm_settings.conf
|
|
|
|
rm $TMP_FILE
|
|
|
|
echo -e "${GREEN}✓ Configuration mise à jour${NC}"
|
|
echo ""
|
|
|
|
# Tester la configuration
|
|
echo "Test de la configuration PHP-FPM..."
|
|
if incus exec $CONTAINER -- php-fpm8.3 -t; then
|
|
echo -e "${GREEN}✓ Configuration valide${NC}"
|
|
else
|
|
echo -e "${RED}✗ Configuration invalide !${NC}"
|
|
echo "Restauration de la sauvegarde..."
|
|
incus exec $CONTAINER -- cp "$BACKUP_FILE" "$POOL_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "Redémarrage de PHP-FPM..."
|
|
incus exec $CONTAINER -- rc-service php-fpm8.3 restart
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ PHP-FPM redémarré avec succès${NC}"
|
|
else
|
|
echo -e "${RED}✗ Erreur lors du redémarrage${NC}"
|
|
echo "Restauration de la sauvegarde..."
|
|
incus exec $CONTAINER -- cp "$BACKUP_FILE" "$POOL_FILE"
|
|
incus exec $CONTAINER -- rc-service php-fpm8.3 restart
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}=== Mise à jour terminée avec succès ===${NC}"
|
|
echo ""
|
|
echo "Vérification des nouvelles valeurs:"
|
|
incus exec $CONTAINER -- grep -E "^(request_terminate_timeout|pm.max_requests|php_admin_value\[memory_limit\])" "$POOL_FILE"
|
|
echo ""
|
|
echo "Sauvegarde disponible: $BACKUP_FILE"
|