Mon serveur YunoHost
Matériel: Vieil ordinateur
Version de YunoHost: 11.0.9.9
J’ai accès à mon serveur : En SSH | Par la webadmin | En direct avec un clavier/écran | …
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non
Description du problème
Bonjour,
Je partage ici un problème que j’ai résolu, en me disant que la migration vers ynh11 ou roundcube 1.6.0-ynh1 posera peut-être le même soucis à d’autres.
J’ai trois instances de roundcube sur un serveur. La première fonctionne très bien, même après la migration vers ynh11, et la mise à jour vers 1.6.0-ynh1, mais les deux autres ont l’interface web cassée.
Je peux toujours recevoir et envoyer des mails depuis thunderbird, mais ne peux rien faire depuis un navigateur, où j’ai ce message d’erreur :
J’ai essayé de supprimer les tables en trop dans phpmyadmin, comme le propose ce fil, Mais sans succès.
En regardant dans les logs, j’ai ça :
nano /var/www/roundcube__3/logs/errors.log
...
[25-Aug-2022 11:33:09 Europe/Berlin] PHP Fatal error: Uncaught Error: Class 'Httpful\Bootstrap' not found in /var/www/roundcube__3/plugins/carddav/carddav_common.php:25
Stack trace:
#0 /var/www/roundcube__3/plugins/carddav/carddav_backend.php(22): require_once()
#1 /var/www/roundcube__3/plugins/carddav/carddav.php(122): require_once('/var/www/roundc...')
#2 /var/www/roundcube__3/program/lib/Roundcube/rcube_plugin_api.php(105): carddav->init()
#3 /var/www/roundcube__3/program/include/rcmail.php(153): rcube_plugin_api->init()
#4 /var/www/roundcube__3/program/include/rcmail.php(86): rcmail->startup()
#5 /var/www/roundcube__3/index.php(43): rcmail::get_instance()
#6 {main}
thrown in /var/www/roundcube__3/plugins/carddav/carddav_common.php on line 25
J’ai regardé s’il ne manquait pas le dossier vendor, comme évoqué ici, mais il est bien là.
J’ai regardé s’il y avait des différences entre les dossiers du roundcube qui fonctionne et celui qui ne fonctionne pas :
// Le roundcube qui fonctionne :
root@serveur:/var/www/roundcube# ls -l
total 3316
drwxr-x--- 2 roundcube www-data 4096 22 août 18:16 bin
-rw-r----- 1 roundcube www-data 186666 8 févr. 2021 CHANGELOG
-rw-r----- 1 roundcube www-data 206050 23 juil. 22:17 CHANGELOG.md
-rw-r----- 1 roundcube www-data 1150 22 août 18:16 composer.json
-rw-r----- 1 roundcube www-data 1086 23 juil. 22:17 composer.json-dist
-rw-r----- 1 roundcube www-data 118079 22 août 18:16 composer.lock
-rwxr-xr-x 1 root root 2719975 22 août 18:16 composer.phar
drwxr-x--- 2 roundcube www-data 4096 22 août 18:16 config
-rw-r----- 1 roundcube www-data 11368 22 août 18:16 index.php
-rw-r----- 1 roundcube www-data 11199 23 juil. 22:17 index.php.orig
-rw-r----- 1 roundcube www-data 12661 23 juil. 22:17 INSTALL
drwxr-x--- 3 roundcube www-data 4096 22 août 18:16 installer
-rw-r----- 1 roundcube www-data 4298 23 juil. 22:17 jsdeps.json
-rw-r----- 1 roundcube www-data 35147 23 juil. 22:17 LICENSE
drwxr-x--- 2 roundcube www-data 4096 25 août 11:24 logs
drwxr-x--- 39 roundcube www-data 4096 22 août 18:16 plugins
drwxr-x--- 9 roundcube www-data 4096 23 juil. 22:17 program
drwxr-x--- 3 roundcube www-data 4096 22 août 18:16 public_html
-rw-r----- 1 roundcube www-data 3853 23 juil. 22:17 README.md
-rw-r----- 1 roundcube www-data 967 23 juil. 22:17 SECURITY.md
drwxr-x--- 5 roundcube www-data 4096 23 juil. 22:17 skins
drwxr-x--- 7 roundcube www-data 4096 23 juil. 22:17 SQL
drwxr-x--- 3 roundcube www-data 4096 22 août 18:16 temp
-rw-r----- 1 roundcube www-data 4657 23 juil. 22:17 UPGRADING
drwxr-x--- 15 roundcube www-data 4096 22 août 18:16 vendor
// Le roundcube qui ne fonctionne pas :
root@serveur:/var/www/roundcube__3# ls -l
total 3332
drwxr-x--- 2 roundcube__3 www-data 4096 22 août 18:18 bin
-rw-r----- 1 roundcube__3 www-data 186666 8 févr. 2021 CHANGELOG
-rw-r----- 1 roundcube__3 www-data 206050 23 juil. 22:17 CHANGELOG.md
-rw-r----- 1 roundcube__3 www-data 1188 22 août 18:19 composer.json
-rw-r----- 1 roundcube__3 www-data 1086 23 juil. 22:17 composer.json-dist
-rw-r----- 1 roundcube__3 www-data 134337 22 août 18:19 composer.lock
-rwxr-xr-x 1 root root 2719975 22 août 18:19 composer.phar
drwxr-x--- 2 roundcube__3 www-data 4096 22 août 18:19 config
-rw-r----- 1 roundcube__3 www-data 11368 22 août 18:18 index.php
-rw-r----- 1 roundcube__3 www-data 11199 23 juil. 22:17 index.php.orig
-rw-r----- 1 roundcube__3 www-data 12661 23 juil. 22:17 INSTALL
drwxr-x--- 3 roundcube__3 www-data 4096 22 août 18:18 installer
-rw-r----- 1 roundcube__3 www-data 4298 23 juil. 22:17 jsdeps.json
-rw-r----- 1 roundcube__3 www-data 35147 23 juil. 22:17 LICENSE
drwxr-x--- 2 roundcube__3 www-data 4096 25 août 11:42 logs
drwxr-x--- 40 roundcube__3 www-data 4096 22 août 18:18 plugins
drwxr-x--- 9 roundcube__3 www-data 4096 23 juil. 22:17 program
drwxr-x--- 3 roundcube__3 www-data 4096 22 août 18:18 public_html
-rw-r----- 1 roundcube__3 www-data 3853 23 juil. 22:17 README.md
-rw-r----- 1 roundcube__3 www-data 967 23 juil. 22:17 SECURITY.md
drwxr-x--- 5 roundcube__3 www-data 4096 23 juil. 22:17 skins
drwxr-x--- 7 roundcube__3 www-data 4096 23 juil. 22:17 SQL
drwxr-x--- 3 roundcube__3 www-data 4096 22 août 18:18 temp
-rw-r----- 1 roundcube__3 www-data 4657 23 juil. 22:17 UPGRADING
drwxr-x--- 24 roundcube__3 www-data 4096 22 août 18:19 vendor
On voit qu’il y a quelques différences, (composer.json
et composer.lock
sont plus lourds dans le roundcube qui ne marche pas) mais le dossier vendor a le même poids.
Je tente donc de copier le dossier du roundcube qui fonctionne, et de le mettre aussi pour le roundcube qui ne marche pas :
// renommage du roundcube qui ne marche pas :
mv roundcube__3 roundcube__3__old
// copiage du rouncube qui marche :
cp -R roundcube roundcube__3
// on remet tout comme il faut :
chown -R roundcube__3:www-data roundcube__3
chown root:root roundcube__3/composer.phar
Après ça, l’accès au webmail depuis un navigateur est de nouveau possible. Lorsque je me connecte la première fois, il me redemande les infos du compte (nom du compte, adresse mail, qui est proposée avec @localhost, …). Je retrouve l’accès total sans problème.
Peut-être y a-t-il une autre solution moins barbare de résoudre le problème ?
Comment se fait-il que les trois roundcube n’aient pas suivi les mêmes migrations, que deux soient cassés sur trois ?