Erreur base de donnée Nextcloud

Mon serveur YunoHost

Matériel: Microserveur :
Système d’exploitation : Linux 5.10.0-28-amd64 x86_64
CPU : Intel(R) Xeon(R) CPU E3-1265L V2 @ 2.50GHz (8 cores)
Mémoire : 15.57 GB
Version de YunoHost: 11.2.11.3 (écurie)
J’ai accès à mon serveur : En SSH | Par la webadmin
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non
Si votre requête est liée à une applicatio, précisez son nom et sa version: Version installée : 28.0.4~ynh2

Description du problème

Je suis novice. J’ai le message d’erreur ci-dessous :

  • La base de données a quelques index manquants. L’ajout d’index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant “occ db:add-missing-indices”, ces index manquants pourront être ajoutés manuellement pendant que l’instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides. Index optionnels manquants « mail_messages_msgid_idx » dans la table « mail_messages ». Index optionnels manquants « mail_messages_strucanalyz_idx » dans la table « mail_messages ». Index optionnels manquants « mail_class_creat_idx » dans la table « mail_classifiers ». Index optionnels manquants « mail_acc_prov_idx » dans la table « mail_accounts ». Index optionnels manquants « mail_alias_accid_idx » dans la table « mail_aliases ».

J’ai essai par Putty la commande occn comme suit :

sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices

et voici la réponse de débian :

This version of Nextcloud requires at least PHP 8.0
You are currently runnin

Je ne sais pas comment désactiver PHP pour exécuter la commande ?

Avez vous la solution ?

Je vous remercie

Essayer avec

sudo -u www-data php8.0 /var/www/nextcloud/occ db:add-missing-indices

En gros, après avoir écrit php, il faut utiliser la touche ‘tab’ pour avoir l’autocomplétion, et continuer avec la version 8 installée sur le système. (j’ai supposé que c’était 8.0)

Pour Nextcloud sur Yunohost, en root

sudo -u nextcloud php8.2 --define apc.enable_cli=1 occ db:add-missing-indices

L’user est nextcloud, la version php php8.2 et il faut ajouter --define apc.enable_cli=1

2 Likes

Bonjour et merci pour avoir répondu. Voici la réponse à la commande :

root@rogu:/home/erwan# sudo -u www-data php8.0 /var/www/nextcloud/occ db:add-missing-indices
sudo: php8.0 : commande introuvable

Pour l’instant cela ne fonctionne toujours pas. Il y a peut être un détail que je ne fait pas bien ?

C’est bon cela à fonctionné. Merci.

Par contre maintenant j’ai deux nouvelle erreures sur Nextcloud :

  • Votre serveur web n’est pas configuré correctement pour résoudre « /.well-known/caldav ». Plus d’informations peuvent être trouvées sur notre documentation :arrow_upper_right:.

  • Votre serveur web n’est pas configuré correctement pour résoudre « /.well-known/carddav ». Plus d’informations peuvent être trouvées sur notre documentation :arrow_upper_right:.

J’ai été voir la documentation mais je ne comprends pas bien j’ai essayé la commande suivante :

sudo -u www-data php occ files:scan --all

Mais voici la réponse que débian me donne :

This version of Nextcloud requires at least PHP 8.0
You are currently runnin

Je ne sais pas que faire. Si vous avez une idée ou une solution, je serai preneur.

Merci à vous.

C’est deux erreurs ne devraient pas empêcher le fonctionnement global de NextCloud.
La seule chose que ça peut bloquer, c’est quand on l’utilise depuis l’application sur le smartphone, par exemple, avec synchronisation des agenda ou des contacts.

Mais pareil, php doit être remplacé par php8.2 parce que c’est la version disponible à utiliser (php tout court renvoie vers une autre version de php, pas la bonne pour NextCloud)

Cela veut dire quand Yunohost basculera en PHP 8.2 ces deux problèmes seront résolus ?

Merci à toi.

Bonjour,

As-tu le dépôt Sury dans tes sources ?

cat /etc/apt/sources.list.d/extra_php_version.list

Si ce fichier existe, la commande devrait te renvoyer une seule et unique ligne :
deb https://packages.sury.org/php/ bullseye main

ppr

Alors d’abord tu te trompes,

Ton nextcloud doit utiliser la version 8.2 et non pas 8.0 pour t’en assurer tu peux regarder dans le dossier /var/run/php

ls /var/run/php/

Tu devrais y voir un socket php8.2-fpm-nextcloud.sock

Pour toutes les commandes occ tu dois utiliser la commande ci-dessous avec l’utilisateur root

pour se connecter en root tu tapes

sudo -i

la commande:

sudo -u nextcloud php8.2 --define apc.enable_cli=1 occ

L’user est nextcloud, la version php php8.2 et il faut ajouter --define apc.enable_cli=1 à la commande.

Pour les messages à propos du webdav, tu dois ajouter deux lignes dans le fichier de configuration de nginx

location = /.well-known/carddav     { return 301 /remote.php/dav/; }
location = /.well-known/caldav      { return 301 /remote.php/dav/; }

vers le début du fichier, ça doit ressembler à cela

location ^~ /.well-known {
  # The following 6 rules are borrowed from `.htaccess`

  # The following 2 rules are only needed for the user_webfinger app.
  # Uncomment it if you're planning to use this app.
  #rewrite ^/\.well-known/host-meta\.json  /public.php?service=host-meta-json  last;
  #rewrite ^/\.well-known/host-meta        /public.php?service=host-meta       last;

  location = /.well-known/carddav     { return 301 /remote.php/dav/; }
  location = /.well-known/caldav      { return 301 /remote.php/dav/; }

  location = /.well-known/webfinger     { return 301 /index.php$request_uri; }
  location = /.well-known/nodeinfo      { return 301 /index.php$uri; }

  # Let Nextcloud's API for `/.well-known` URIs handle all other
  # requests by passing them to the front-end controller.
  return 301 /index.php$request_uri;
}

Ce fichier se trouve à cet endroit
/etc/nginx/conf.d/domainedenextcloud.domaine.tld/nextcloud.conf

ici tu adaptes domainedenextcloud.domaine.tld avec le domaine ou sous-domaine où est installé nextcloud.

Pour le chercher où il est, utilises cette commande (toujours en root)

find  /etc/nginx/conf.d/ -name nextcloud.conf

Peut-être avant de l’éditer tu peux faire une sauvegarde par sécurité

cp -a /etc/nginx/conf.d/nomdomainenextcloud.tld/nexcloud.conf nextcloud.conf.bkp

Ensuite pour l’éditer tu peux utiliser nano (en root)

nano /etc/nginx/conf.d/nomdomainenextcloud.tld/nexcloud.conf

Avec nano tu dois utiliser les flèches du clavier pour naviguer. Tu regardes bien l’exemple au-dessus pour voir où tu dois ajouter les 2 lignes

location = /.well-known/carddav     { return 301 /remote.php/dav/; }
location = /.well-known/caldav      { return 301 /remote.php/dav/; }

Pour copier-coller dans un terminal, on utilises ces touches: Ctlr+Shift+C = copier une sélection, Ctlr+Shift+V = coller depuis le presse-papier

Quand tu es sûr de toi tu peux enregistrer avec les touches Ctlr+O puis Entrée
Pour quitter ensuite nano Ctlr+X

Ensuite il faudra que nginx prenne en compte tes changements, tu peux faire cette commande

yunohost service reload nginx

Là ça devrait fonctionner…

3 Likes

Bonjour,

Effectivement il n’y a qu’une seule ligne :

deb Index of /php/ bullseye main

Bonjour,

Normalement avec Nextcloud la version PHP 8.2 devrait être installée.

Pour installer PHP 8.2 :

sudo apt install php8.2

ppr

C’est normal, c’est bien la ligne qui indique le dépôt de toutes les versions et de php

deb https://packages.sury.org/php/ bullseye main

Je ne suis pas sûr d’avoir compris que tu n’avais pas la bonne version php…

Tu peux vérifier dans ton espace Nextcloud dans les Paramètres tout en bas de la colonne de droite tu as Système et en scrollant en bas tu dois avoir une info de PHP

Capture d’écran du 2024-05-02 23-50-44

Est ce que tu as besoin de caldav et carddav ?

non je ne sais pas à quoi servent ces service ?

à synchroniser les calendriers et contacts avec des applications. Par exemple avec les calendriers et/ou contacts d’un client mail Thunderbird ou sur son ordinophone.
Je m’en sert beaucoup, entre autre pour synchroniser les numéro des contacts de mon ordinophone par exemple…

2 Likes