Résolu - Nextcloud 23 - fs_id_storage_size" manquant dans la table "oc_filecache"

Bonjour à tous.

Je viens juste de mettre à jour Nextcloud en 23 et j’ai maintenant ce message:

"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 “fs_id_storage_size” manquant dans la table “oc_filecache”.
  • Index “fs_storage_path_prefix” manquant dans la table “oc_filecache”.

J’ai essayer : php occ db:add-missing-indices
La réponse est :
" 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?) "

Heu, je ne sais pas quoi faire et ne trouve pas d’information. Pouvez-vous m’aider svp?

Merci beaucoup.

Il faut faire la commande PHP en sudo avec l’utilisateur qui fait tourner ton apache/serveur Web ! Ton serveur Nextcloud tourne où ? sur quoi ?

Merci de votre aide. Je viens de tester : “sudo -u bidulle php /var/www/nextcloud/occ db:add-missing-indices”

La réponse reste : “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?)”

Je suis sous lubuntu 20.10 et nginx 1.18.0.

Mais cette erreur ne vient pas de la commande occ mais d’une mauvaise config du cache APCu dans ton Nextcloud ! Ton NC tourne normalement côté utilisateur ? Il faut vérifier le fichier de config de Nextcloud dans /config/config.php pour voir si ton cache est bien configuré par rapport à ton système ! Paramètres > Vue d’ensemble dans NC avec un compte administrateur te dit que tout est ok ?
Une fois ce soucis corrigé qui déja permettra à ton NC de mieux fonctionner tu pourras relancer la commande occ pour voir ce que cela donne :wink:

C’est bien dans cette direction que je m’oriente: un problème de APCu.

Coté utilisateur tout fonctionne sans souci.
La page “Vue d’ensemble” ne me donne plus que le message pré-cité" qui pour moi vient de mon APCu. Si je règle ce probleme un coup de occ et ce sera, comme tu dis, bon.

Coté APCu, j’ai regardé config.php de NC et j’ai ça:
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘redis’ => array(
‘host’ => ‘localhost’,
‘port’ => 6379,

J’ai aussi essayé ça :
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,

Sans succés !

Tu as regardé cette page (Memory caching — Nextcloud latest Administration Manual latest documentation) qui te donne les différentes options et les à-cotés à configurer pour aller avec ! Perso j’utilise APCu sur toutes les instances que j’héberge sans soucis :wink:

Excuse moi, mais de quel page parles tu?

J’ai suivi ce tuto et depuis plus d’an cela fonctionnait jusqu’à hier après la mise à jour en 23.

J’ai en partie avancé.

J’ai taper “sudo -u nextcloud php --define apc.enable_cli=1 /var/www/nextcloud/occ db:add-missing-indices”

Le message :

  • Index “fs_id_storage_size” manquant dans la table “oc_filecache”.
  • Index “fs_storage_path_prefix” manquant dans la table “oc_filecache”.
    a disparu.

Manifestement “–define apc.enable_cli=1” ou “apc.enable_cli=1” doit être mis quelque part.

Mais où?

mea culpa lien ajouté dans le post je suis allé un peu vite :smiley:

Dans mon config.php (nextcloud), j’ai bien:
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘redis’ =>
array (
‘host’ => ‘localhost’,
‘port’ => 6379,
),

et dans mon php.ini (\php\fpm et non \php\cli), j’ai bien mis tout à la fin apc.enable_cli=1.

Du coup ???

@Cyrill , question bête de ma part mais le paquet php-apcu est bien installé ?

Bonsoir,

Je rencontre exactement le même problème.

Quand j’essaie d’installer le paquet php-apcu voici la réponse :

Certains paquets ne peuvent être installés. Ceci peut signifier que vous avez demandé l’impossible, ou bien, si vous utilisez la distribution unstable, que certains paquets n’ont pas encore été créés ou ne sont pas sortis d’Incoming.
L’information suivante devrait vous aider à résoudre la situation :
Les paquets suivants contiennent des dépendances non satisfaites php-apcu : Dépend: phpapi-20180731 Recommande: php-apcu-bc mais ne sera pas installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l’état ».

Bonjour,

Bonne question et oui php-apcu est bien installé. Une autre piste ?

Essayez de voir ce topic si il peut vous apporter des solutions : OCC won't run with memcache/apcu - #9 by andrimont

J’avais déjà essayer en relançant le service php et nginx sans succès.

J’ai réessayé en redémarrant complètement et c’est bon. Ca fonctionne !

La solution a donc été de mettre “apc.enable_cli=1” dans /etc/php/7.4/mods-available/apcu.ini.

Merci beaucoup à tous.
CG

1 Like

Parfait et il faut bien effectivement que l’option soit activée dans PHP pour que cela marche :wink: tu as pu faire la commande OCC correctement alors pour mettre à jour les db ?

Oui tout a fonctionné seulement après un redémarrage.
Merci beaucoup.