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.
À 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 …
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… (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
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 ?
$ 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
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 ?