[Linux] Raspbian Jessie à Buster et des problèmes de lenteur du random/aléatoire

Petit retour d'expérience.  J'ai aidé un pote qui héberge son blog sur un WordPress sur un PI derrière sa fibre (*jaloux*).

J'Aime quand un plan se déroule avec des accros.  Parce que j'Aime résoudre les problèmes, that's it.

On passera la migration "à la con" d'un noyau Linux (de Jessie à Stretch et de Stretch à Buster).
De base, certains disent qu'il vaut mieux faire

  1. une liste des services/applis que vous utilisez
  2. faire une sauvegarde des données du 1. et prier de ne rien oublier ;)
  3. un raz (remise à zéro) du Pi
  4. une install propre
  5. et installer ce qui va bien (du 1.) et désinstaller ce qui est en trop

L'autre méthode c'est de passer (et prier) par un upgrade intégré de la distrib.
Par expérience, il y a souvent un truc qui calera quelque part, mais c'est pas grave, pour rappel: j'Aime résoudre les problèmes.

La méthode est décrite par exemple là:  (note faudra passer de de Jessie à Stretch et de Stretch à Buster !!!) How to Upgrade Raspbian Stretch to Raspbian Buster

Bref, après de loooooooooongues minutes d'updates ... ben *fail*, le serveur web YveuPasHⓒ.

Ben oui l'upgrade va modifier des trucs, mettre des trucs en double, pas effacer toutes les anciennes versions.
Écraser des configs custo etc...

Pas grave, on a fait il y a quelque temps, on peut refaire.  Note: ne pas oublier de faire un remove d'apache ... surtout si on utilise nginx :P

Mais après avoir fini par installer php-fpm c'est là que ça a commencé à merder ...
Démarrer le service sudo systemctl status php7.3-fpm.service OK.

Mais ... impossible de l'avoir en running après un reboot du Pi, alors qu'il est bien dans le /etc/init.d (note, là les migrations n'avaient pas enlevé le start de php5-fpm ... mais le pb n'était pas ça).  Et sans lui pas de PHP dans nginx ... donc pas de WebServer ...

En fait, c'est le /dev/random qui est dans le Pi qui doit être TROP sollicité au démarrage et qui part en timeout ... spécialement sur les systèmes avec peu d'entropie (genre Pi sans clavier et souris).  Et l'entropie est utilisée pour générer de l'aléatoire ... pour le fameux /dev/random qui est semble t'il beaucoup utilisé au démarrage et spécialement dans celui de php7.3-fpm.
Bref, pour améliorer ça il suffit d'installer un "générateur d'entropie" !
Et Google-est-ton-ami en a donné 2

On a installé le premier parce qu'un article du forum de Pi en parlait: php7.0-fpm.service: Start operation timed out. Terminating.
L'autre est cité par exemple dans cet issue: libsodium module times out at system boot #94.

Bref, pas assez de random ça fait pas avancer les choses ... on dirait "la Vie" ;)
Pour finir: pourquoi faut modifier 5 fichiers (dont 2-3 différents dans les différents php.ini) pour arriver à faire un upload de fichiers de plus de 2Mo !?!?!?

Vous allez vous demander peut être

  • pourquoi c'est difficile de faire de l'aléatoire dans un ordinateur ? Ben imaginer qu'il faut choisir un nombre, je ne sais pas entre 1 et 100, rapidement, avec que des calculs  simples et que chaque fois qu'on demande ce nombre entre 1 et 100 on promette que c'est vraiment très très proche de l'aléatoire
  • comment les ordinateurs font ?  Justement, pour les besoin "pro" avec des astuces, en allant voir par exemple à droite et à gauche ce qui peut se passer "autour" de l'ordinateur, ici bouger la souris, taper au clavier, ... (c'est intégré au hardware, dans les puces)
  • pourquoi les programmes ont besoin d'aléatoire: c'est une base de la cryptographie, pour que vos communications soient protégées, pour avoir des identifiants/noms uniques, etc etc...

Haut de page