Modification du mode debuggage dans l'interface => réception mail "Service Unavailable" sur tâche Cron "check_config.sh"
Bonjour ! J'ai rencontré le bug suivant lorsque l'on modifie dans l'interface le paramètre "Mode debuggage" : la minute suivante, lors de l'exécution de la tâche Cron "check_config.sh" qui m'envoie un mail récapitulant les modifications de la config, je reçois à la place dans le corps du mail le message d'erreur Apache "Service Unavailable" (cf. capture : Capture_d_écran_2023-08-21_024005).
En creusant le pourquoi du comment, j'ai trouvé pourquoi :
- le script "check_config.sh" appelle une commande curl sur "http://{URL_SE4}/config/config_action.php :
#/usr/share/sambaedu/sbin/check_config.sh
# ligne 10
/usr/bin/curl -s -F "se4_key=${config_se4_key}" -F "conf=$1" http://${config_se4fs_name}/config/config_action.php
- le fichier
/var/www/sambaedu/config/config_action.php
doit retourner une différence sur la variable "debug" dans sambaedu.conf et dans le switch, exécute donc la fonctionset_debug()
:
#/var/www/sambaedu/config/config_action.php
# ligne 53 :
switch ($param) {
...
case "debug": #ligne 88
set_debug($config);
break;
- la fonction
set_debug()
est issue du fichier/var/www/sambaedu/includes/debug.inc.php
, elle fait un switch sur la valeur de la variable 'debug' et modifie des paramètres PHP en conséquence, sauf qu'à la fin, elle redémarre le service "phpX.X-fpm" :
#/var/www/sambaedu/includes/debug.inc.php
<?php
function set_debug($config)
{
...
system("sudo -b bash -c \"sleep 10 && systemctl restart php" . $php_version . "-fpm.service\""); # ligne 52
}
C'est ce redémarrage du service PHP-FPM qui fout en l'air le reste et occasionne donc l'erreur reçue par mail : il suffit de commenter la ligne ci-dessus pour empêcher ce restart
et... on reçoit le mail normalement attendu quand on modifie la variable 'debug' !
Comme il faut impérativement redémarrer PHP-FPM pour la prise en compte des paramètres de debug, est-il possible de déplacer ce redémarrage ailleurs ? Une fois que le curl
est arrivé au bout ?
Belle journée, bonnes vacances (si si il en reste un peu ;-) )
Baptiste