3 applis KOs après restauration ! problème php ? d'accès mySql?

Mon serveur YunoHost

Matériel: Raspberry Pi 3B+ à la maison
Version de YunoHost: image 11.0.10.2
J’ai accès à mon serveur : En direct avec un clavier/écran ou SSH
Êtes-vous dans un contexte particulier ou avez-vous effectué des modifications particulières sur votre instance ? : oui → le système sur un SSD

Description du problème

Le disque dur sur lequel j’avais mon système montrant des signes de fatigue, j’ai sauvegardé mon système (fonctionnel et tournant les applis suivantes : Baikal, Jirafeau, Nextcloud, Shell In A Box, Snappymail, Transmission) puis acheté un SSD, installé dessus raspiOS et restauré mon backup.

Mais j’ai 3 applis qui ne fonctionnent pas :

  • baikal : " Baïkal was not able to establish a connexion to the configured MySQL database (as configured in config/baikal.yaml)."
  • snappymail : " Fatal error : Uncaught Error: Call to undefined function mb_internal_encoding() in /var/www/snappymail/snappymail/v/2.21.4/include.php:91 Stack trace: #0 /var/www/snappymail/index.php(11): include() #1 {main} thrown in /var/www/snappymail/snappymail/v/2.21.4/include.php on line 91"
  • nextcloud : “Internal Server Error - The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the server log.”

Tous mes services tournent bien, le diagnostic yuno ne détecte aucun problème. J’ai vérifié l’intégrité des bases mariaDB (sudo mysqlcheck --all-databases) et tout est OK.

Quelqu’un saurait qu’investiguer d’autre?
Merci

À mon avis ça aiderait si tu partages les messages d’erreurs complets car là on sais juste que “le truc a pas réussi à se connecter à MySQL” mais ça peut être causér par plein de raison

Également un check évident à faire c’est de vérifier que le services mysql est up

Merci Aleks de ton retour. Ce que j’ai copié, c’est en effet ce que je vois à l’écran quand je charge les applis. Je suis désolé, je ne sais pas où trouver les logs de Baikal, Snappymail ou nextcloud.

Le service mysql est bien “En cours d’exécution”, son log : hastebin

Je lis ailleurs que cela peut être dû au fait que le paquet “php-mysql” n’est pas installé. Effectivement, je ne l’ai pas sur ma machine. J’en doute un peu, mais est-ce une bonne idée à tester ?

J’ai aussi creusé pour fouiller les log Nextcloud. Mais cela n’abouti pas. Par exemple, si j’essaye de connaitre le statut de Nextcloud :

sudo -u www-data php occ status                                                                                                                                                    
An unhandled exception has been thrown:                                                                                                                                                                           
OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)

Et j’ai le même retour si je lance sudo -u www-data php occ log:tail

Serait-ce lié à ces discussions ?

Moui effectivment

Attention toutefois à installer le paquet php7.4-mysql (ou php8.0-mysql en fonction de la version utilisée par tes apps… bref, le paquet qui contient le numéro de version dans son nom, pas juste php-mysql)

Du coup tentons: apt install php7.4-mysql php8.0-mysql

php7.4-mysql is already the newest version (1:7.4.33-1+0~20221108.73+debian11~1.gbpa0035a).
php7.4-mysql set to manually installed.
php8.0-mysql is already the newest version (1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e).
php8.0-mysql set to manually installed.

Fausse piste, ils sont déjà installés (j’avais testé pour php-mysql, qui lui ne l’est pas).

J’ai désinstallé les applis restaurées qui ne fonctionnent pas (Baikal, Nextcloud, Snappymail) puis je les installées comme de nouvelles applis (sans restauration) : j’obtiens les mêmes messages d’erreur.

Donc ce n’est pas un problème d’archive corrompue ou de restauration ratée, mais probablement un problème dans mon système, un dysfonctionnement qui empêche ces applis de fonctionner normalement.

Baikal et Nextcloud utilisent des bases de données mariaDB, mais pas Snappymail. C’est donc peut être lié à autre chose qu’un pb mySQL… → peut être php ?

Des idées de comment creuser ?
Peut être une autre appli qui utilise php que je peux installer pour voir si elle fonctionne ?
Merci de vos conseils !

J’ai creusé depuis le retour de Snappymail (" Fatal error : Uncaught Error: Call to undefined function mb_internal_encoding() in /var/www/snappymail/snappymail/v/2.21.4/include.php:91 Stack trace: #0 /var/www/snappymail/index.php(11): include() #1 {main} thrown in /var/www/snappymail/snappymail/v/2.21.4/include.php on line 91 ").

J’ai le sentiment que la configuration php8.0 n’a pas été faite car, par exemple, les fichiers /etc/php/8.0/mods-available/mbstring.ini ou /etc/php/8.0/fpm/php.ini sont vides… :roll_eyes: (ce n’est pas le cas pour leurs équivalents 7.4).

Or, toutes les applis semblent configurées pour tourner sous php8.0 :

# ls -l /etc/php/7.?/fpm/pool.d/                                                                                                                                                                      
total 24                                                                                                                                                                                                          
-rw-r----- 1 phpinfo phpinfo   286 Dec  4 10:48 phpinfo.conf                                                                                                                                                      
-rw-r--r-- 1 root    root    19683 Nov  8 12:40 www.conf 

# ls -l /etc/php/8.?/fpm/pool.d/                                                                                                                                                                      
total 88                                                                                                                                                                                                          
-rw-r----- 1 mdns      systemd-coredump 19160 Oct 22 12:58 baikal.conf                                                                                                                                            
-rw-r----- 1 jirafeau  baikal           19166 Oct  6 15:59 jirafeau.conf                                                                                                                                          
-rw-r----- 1 nextcloud nextcloud         1212 Dec  1 15:03 nextcloud.conf                                                                                                                                         
-rw-r----- 1 jirafeau  jirafeau         19178 Nov 26 11:51 snappymail.conf                                                                                                                                        
-rw-r--r-- 1 root      root             20543 Oct 28 20:38 www.conf

Quelle commande pour lancer la config de php8.0 ?

J’ai tenté de réinstaller php8.0 (sudo apt-get --reinstall install php8.0) → pas de changement (/etc/php/8.0/fpm/php.ini est toujours vide).

J’ai basculé sur php8.0 :

$ sudo update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).                                                                                                                                             
                                                                                                                                                                                                                  
  Selection    Path             Priority   Status                                                                                                                                                                 
------------------------------------------------------------                                                                                                                                                      
* 0            /usr/bin/php8.0   80        auto mode                                                                                                                                                              
  1            /usr/bin/php7.4   74        manual mode                                                                                                                                                            
  2            /usr/bin/php8.0   80        manual mode

Suite à cela, nouveau message erreur pour Snappymail :

[302] The following PHP extensions are not available in your PHP configuration!
dom

:hot_face:

Si je lance un php -i, j’obtiens : hastebin

Je remarque qu’en plus des php.ini qui sont des fichiers vides (dans /etc/php/8.0/fpm/ et dans /etc/php/8.0/cli/), j’ai plein d’autres fichiers de config de taille 0ko :

$ sudo ls -l /etc/php/8.0/mods-available/
total 136
-rw-r–r-- 1 root root 18 Dec 5 16:31 apcu.ini
-rw-r–r-- 1 root root 72 Oct 28 20:38 bcmath.ini
-rw-r–r-- 1 root root 66 Oct 28 20:38 bz2.ini
-rw-r–r-- 1 root root 74 Oct 28 20:38 calendar.ini
-rw-r–r-- 1 root root 71 Oct 28 20:38 ctype.ini
-rw-r–r-- 1 root root 68 Oct 28 20:38 curl.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 dom.ini
-rw-r–r-- 1 root root 70 Oct 28 20:38 exif.ini
-rw-r–r-- 1 root root 69 Oct 28 20:38 ffi.ini
-rw-r–r-- 1 root root 74 Oct 28 20:38 fileinfo.ini
-rw-r–r-- 1 root root 69 Oct 28 20:38 ftp.ini
-rw-r–r-- 1 root root 64 Oct 28 20:38 gd.ini
-rw-r–r-- 1 root root 73 Oct 28 20:38 gettext.ini
-rw-r–r-- 1 root root 66 Oct 28 20:38 gmp.ini
-rw-r–r-- 1 root root 71 Oct 28 20:38 iconv.ini
-rw-r–r-- 1 root root 364 Jan 31 2022 igbinary.ini
-rw-r–r-- 1 root root 60 Jan 17 2022 imagick.ini
-rw-r–r-- 1 root root 68 Oct 28 20:38 imap.ini
-rw-r–r-- 1 root root 68 Oct 28 20:38 intl.ini
-rw-r–r-- 1 root root 68 Oct 28 20:38 ldap.ini
-rw-r–r-- 1 root root 22 Dec 5 09:45 mbstring.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 mysqli.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 mysqlnd.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 opcache.ini
-rw-r–r-- 1 root root 69 Oct 28 20:38 pdo.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 pdo_mysql.ini
-rw-r–r-- 1 root root 77 Oct 28 20:38 pdo_sqlite.ini
-rw-r–r-- 1 root root 70 Oct 28 20:38 phar.ini
-rw-r–r-- 1 root root 71 Oct 28 20:38 posix.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 readline.ini
-rw-r–r-- 1 root root 19 Mar 30 2022 redis.ini
-rw-r–r-- 1 root root 71 Oct 28 20:38 shmop.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 simplexml.ini
-rw-r–r-- 1 root root 73 Oct 28 20:38 sockets.ini
-rw-r–r-- 1 root root 74 Oct 28 20:38 sqlite3.ini
-rw-r–r-- 1 root root 73 Oct 28 20:38 sysvmsg.ini
-rw-r–r-- 1 root root 73 Oct 28 20:38 sysvsem.ini
-rw-r–r-- 1 root root 73 Oct 28 20:38 sysvshm.ini
-rw-r–r-- 1 root root 68 Oct 28 20:38 tidy.ini
-rw-r–r-- 1 root root 75 Oct 28 20:38 tokenizer.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 xml.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 xmlreader.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 xmlwriter.ini
-rw-r–r-- 1 root root 0 Oct 28 20:38 xsl.ini
-rw-r–r-- 1 root root 66 Oct 28 20:38 zip.ini

Quelqu’un saurait comment les réinitialiser avec leur contenu par défaut ?

Hmmmoui à mon avis tu peux tenter un dpkg --list | grep php8.0 pour lister les modules php8.0 installés

Ensuite tu peux tenter apt install --reinstall php8.0-dom et ainsi de suite pour tous les packages problématiques

Ok merci @Aleks , je tente ça !

$ sudo dpkg --list | grep php8.0
ii  php8.0                                1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      all          server-side, HTML-embedded scripting language (metapackage)                                             
ii  php8.0-apcu                           5.1.21+4.0.11-8+0~20220625.32+debian11~1.gbpa7cde5 arm64        APC User Cache for PHP                                                                                  
ii  php8.0-bcmath                         1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        Bcmath module for PHP                                                                                   
ii  php8.0-bz2                            1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        bzip2 module for PHP                                                                                    
ii  php8.0-cli                            1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        command-line interpreter for the PHP scripting language                                                 
ii  php8.0-common                         1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        documentation, examples and common module for PHP                                                       
ii  php8.0-curl                           1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        CURL module for PHP                                                                                     
ii  php8.0-fpm                            1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        server-side, HTML-embedded scripting language (FPM-CGI binary)                                          
ii  php8.0-gd                             1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        GD module for PHP                                                                                       
ii  php8.0-gmp                            1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        GMP module for PHP                                                                                      
ii  php8.0-igbinary                       3.2.6+2.0.8-6+0~20220131.33+debian11~1.gbp1d540e   arm64        igbinary PHP serializer                                                                                 
ii  php8.0-imagick                        3.6.0-4+0~20220117.35+debian11~1.gbp149f82         arm64        Provides a wrapper to the ImageMagick library                                                           
ii  php8.0-imap                           1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        IMAP module for PHP                                                                                     
ii  php8.0-intl                           1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        Internationalisation module for PHP                                                                     
ii  php8.0-ldap                           1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        LDAP module for PHP                                                                                     
ii  php8.0-mbstring                       1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        MBSTRING module for PHP                                                                                 
ii  php8.0-mysql                          1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        MySQL module for PHP                                                                                    
ii  php8.0-opcache                        1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        Zend OpCache module for PHP                                                                             
ii  php8.0-readline                       1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        readline module for PHP                                                                                 
ii  php8.0-redis                          5.3.7+4.3.0-1+0~20220330.42+debian11~1.gbp6fe8b7   arm64        PHP extension for interfacing with Redis                                                                
ii  php8.0-sqlite3                        1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        SQLite3 module for PHP                                                                                  
ii  php8.0-tidy                           1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        tidy module for PHP                                                                                     
ii  php8.0-xml                            1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        DOM, SimpleXML, XML, and XSL module for PHP                                                             
ii  php8.0-zip                            1:8.0.25-1+0~20221028.43+debian11~1.gbpb9995e      arm64        Zip module for PHP

Bon, et bien cela ne marche pas :sob:
Après réinstallation (j’ai essayé avec php8.0-xml et php8.0-dom) j’ai toujours les mêmes fichiers ini qui sont vides.

Du coup, j’ai essayé des déplacer les fichiers vides (par exemple xml*.ini) vers /tmp puis de relancer la réinstallation :

$ sudo mv /etc/php/8.0/mods-available/xml*.ini /tmp  
$ sudo apt install --reinstall php8.0-xml                                                                                                                                                            
Reading package lists... Done                                                                                                                                                                                     
Building dependency tree... Done                                                                                                                                                                                  
Reading state information... Done                                                                                                                                                                                 
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 6 not upgraded.                                                                                                                                     
Need to get 90.3 kB of archives.                                                                                                                                                                                  
After this operation, 0 B of additional disk space will be used.                                                                                                                                                  
Get:1 https://packages.sury.org/php bullseye/main arm64 php8.0-xml arm64 1:8.0.26-1+0~20221205.45+debian11~1.gbpfbda3f [90.3 kB]
Fetched 90.3 kB in 0s (369 kB/s)
(Reading database ... 57895 files and directories currently installed.)                                                                                                                                           
Preparing to unpack .../php8.0-xml_1%3a8.0.26-1+0~20221205.45+debian11~1.gbpfbda3f_arm64.deb ...                                                                                                                  
Unpacking php8.0-xml (1:8.0.26-1+0~20221205.45+debian11~1.gbpfbda3f) over (1:8.0.26-1+0~20221205.45+debian11~1.gbpfbda3f) ...                                                                                     
Setting up php8.0-xml (1:8.0.26-1+0~20221205.45+debian11~1.gbpfbda3f) ...                                                                                                                                         
Not replacing deleted config file /etc/php/8.0/mods-available/xml.ini                                                                                                                                             
WARNING: Module xml ini file doesn't exist under /etc/php/8.0/mods-available                                                                                                                                      
WARNING: Module xml ini file doesn't exist under /etc/php/8.0/mods-available                                                                                                                                      
Not replacing deleted config file /etc/php/8.0/mods-available/xmlreader.ini                                                                                                                                       
WARNING: Module xmlreader ini file doesn't exist under /etc/php/8.0/mods-available                                                                                                                                
WARNING: Module xmlreader ini file doesn't exist under /etc/php/8.0/mods-available                                                                                                                                
Not replacing deleted config file /etc/php/8.0/mods-available/xmlwriter.ini                                                                                                                                       
WARNING: Module xmlwriter ini file doesn't exist under /etc/php/8.0/mods-available                                                                                                                                
WARNING: Module xmlwriter ini file doesn't exist under /etc/php/8.0/mods-available                                                                                                                                
Processing triggers for php8.0-fpm (1:8.0.26-1+0~20221205.45+debian11~1.gbpfbda3f) ...                                                                                                                            
Processing triggers for php8.0-cli (1:8.0.26-1+0~20221205.45+debian11~1.gbpfbda3f) ...

On voit qu’il remarque l’absence des fichiers de config, mais ne les remplace pas, dommage !

Faudrait-il tenter un “apt purge” des paquets en question, puis une installation from scratch ?

Un avis ou un conseil ?

j’ai :

  1. désinstallé les applis yunohost utilisant php8
  2. tourné un “apt purge php8*
  3. puis “apt install php8.0 php8.0-apcu php8.0-cli php8.0-common php8.0-curl php8.0-fpm php8.0-gd php8.0-mbstring php8.0-mysql php8.0-opcache php8.0-readline php8.0-xml
  4. restauré les appli utilisant php8

Et cela a l’air de fonctionner \o/

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.