Dans Nextcloud, la page Paramètres > Administration > Vue d’ensemble vous permet d’avoir un bon aperçu des tâches de maintenance à effectuer sur votre installation Nextcloud.

This version of Nextcloud is not compatible with > PHP 7.4

C’est une erreur – et non un avertissement – qui bloque toutes les commandes suivantes dans le terminal. Elle apparaît lorsqu’une version de PHP plus récente est installée sur votre serveur.

Chez moi, par exemple, j’ai PHP 7.4 pour les sites en production et pour Nextcloud mais aussi PHP 8 pour les plateformes de développement.

Voici le message d’erreur:

This version of Nextcloud is not compatible with > PHP 7.4.

You are currently running 8.0.0

Ce message apparaît parce que Nextcloud lance un rapide php -v pour déterminer la version de PHP installée. Cela ne reconnait par contre que la version la plus récente installée.

Voici ce que donne la commande:

PHP 8.0.0 (cli) (built: Nov 27 2020 12:26:22) ( NTS )
 Copyright (c) The PHP Group
 Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
     with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies

La solution consiste à modifier manuellement la version retournée par php -v, à l’aide de la commande update-alternatives :

update-alternatives --set php /usr/bin/php7.4

Si on relance php -v, voici le résultat:

PHP 7.4.13 (cli) (built: Nov 28 2020 06:24:59) ( NTS )
 Copyright (c) The PHP Group
 Zend Engine v3.4.0, Copyright (c) Zend Technologies
     with Zend OPcache v7.4.13, Copyright (c), by Zend Technologies

Avec cela, vous êtes parés pour les commandes occ de Nextcloud.

A lire :  Redémarrer la machine virtuelle de Local by Flywheel

Nextcloud reste bloqué en mode maintenance

Cela peut arriver lors d’une mise à jour, pour diverses raisons.

Solution 1: avec la commande occ

cd /home/www/nextcloud 
sudo -u www-data php ./occ maintenance:mode --off 

Solution 2: éditer le fichier config.php

1. Editez le fichier config.php:

nano /home/www/nextcloud/config/config.php

2. trouvez:

 'maintenance' => true, 

3. remplacez par:

 'maintenance' => false, 

Enregistrez le fichier, l’assistant de mise à jour est alors capable de reprendre là où il s’était arrêté, automatiquement.

La base de données a quelques index manquants

Voici le message d’avertissement complet:

La base de données a quelques index manquant. 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.

La solution:

cd /home/www/nextcloud 
sudo -u www-data php ./occ db:add-missing-indices

Résultat:

Check indices of the share table.
 Check indices of the filecache table.
 Check indices of the twofactor_providers table.
 Check indices of the login_flow_v2 table.
 Check indices of the whats_new table.
 Check indices of the cards table.
 Adding cards_abiduri index to the cards table, this can take some time…
 cards table updated successfully.
 Check indices of the cards_properties table.
 Check indices of the calendarobjects_props table.
 Check indices of the schedulingobjects table.
 Check indices of the oc_properties table.

Il manque des clés primaires dans la base de données

Voici le message d’avertissement complet :

Il manque des clés primaires dans la base de données. En raison du fait que l’ajout de clés primaires sur les grandes tables peut prendre un certain temps, elles n’ont pas été ajoutées automatiquement.

En exécutant “occ db:add-missing-primary-keys”, ces clés primaires manquantes peuvent être ajoutées manuellement pendant que l’instance continue de fonctionner.

La solution:

cd /home/www/nextcloud 
sudo -u www-data php ./occ db:add-missing-primary-keys

Résultat:

 Check primary keys.
 Adding primary key to the federated_reshares table, this can take some time…
 federated_reshares table updated successfully.
 Adding primary key to the systemtag_object_mapping table, this can take some time…
 systemtag_object_mapping table updated successfully.
 Adding primary key to the comments_read_markers table, this can take some time…
 comments_read_markers table updated successfully.
 Adding primary key to the collres_resources table, this can take some time…
 collres_resources table updated successfully.
 Adding primary key to the collres_accesscache table, this can take some time…
 collres_accesscache table updated successfully.
 Adding primary key to the filecache_extended table, this can take some time…
 filecache_extended table updated successfully.

Certaines colonnes de la base de données n’ont pas été converties en big int

Voici le message d’avertissement complet:

Certaines colonnes de la base de données n’ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n’ont donc pas été converties automatiquement.

En exécutant ‘occ db:convert-filecache-bigint’ ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l’instance est hors ligne.

Voici la solution:

cd /home/www/nextcloud
sudo -u www-data php ./occ maintenance:mode --on
sudo -u www-data php ./occ db:convert-filecache-bigint
sudo -u www-data php ./occ maintenance:mode --off

Résultat:

 Following columns will be updated:
 federated_reshares.share_id
 filecache_extended.fileid
 share_external.id
 share_external.parent 
 This can take up to hours, depending on the number of files in your instance!
 Continue with the conversion (y/n)? [n] y

Voilà pour les erreurs communes que j’ai déjà rencontrées. J’espère que cela peut vous aider si vous tombez vous-aussi dessus!

Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ou ajouter de nouvelles fonctionnalités? Ou améliorer les performances de votre site?

Parlons de votre projet »

Articles en rapport:

2 Comments

  1. Avatar

    Bonjour,
    Pour les index et clef primaire manquants, pourriez vous SVP nous donner les requete SQL à passer? En effet, je n’ai pas les accès SSH et ne peut donc pas exécuter les lignes indiquées.
    Merci !

    • Matt

      Bonjour,

      Pour les indices manquants:

      ALTER TABLE `oc_properties` ADD INDEX `properties_path_index` (`userid`, `propertypath`) USING BTREE;
      ALTER TABLE `oc_comments` ADD `reference_id` VARCHAR(64) NULL DEFAULT NULL;
      ALTER TABLE `oc_filecache_extended` MODIFY `fileid` BIGINT(20) UNSIGNED NOT NULL;

      Pour la clé primaire:

      ALTER TABLE oc_federated_reshares ADD PRIMARY KEY (share_id);
      ALTER TABLE oc_systemtag_object_mapping ADD PRIMARY KEY (objectid, objecttype, systemtagid);
      ALTER TABLE oc_comments_read_markers ADD PRIMARY KEY (user_id, object_type, object_id);
      ALTER TABLE oc_collres_resources ADD PRIMARY KEY (collection_id, resource_type, resource_id);
      ALTER TABLE oc_collres_accesscache ADD PRIMARY KEY (user_id, collection_id, resource_type, resource_id);
      ALTER TABLE oc_filecache_extended ADD PRIMARY KEY (fileid);

      Notez que d’autres tables peuvent être concernées, tout dépend de votre version de Nextcloud et des tables concernées par votre mise à jour.

Écrire un commentaire

Spelling error report

The following text will be sent to our editors: