Mise à jour manuelle serveur Nextcloud

Procédure de mise à jour manuelle


Procédure issue de la documentation officielle de Nextcloud.

Télécharger la dernière version de Nextcloud sur https://nextcloud.com/install

cd /var/www
sudo su
wget https://download.nextcloud.com/server/releases/nextcloud-xx.x.x.zip

Arrêter le serveur web

service apache2 stop

Supprimer l’ancien dossier de sauvegarde et renommer le dossier actuel

rm -r nextcloud-old
mv nextcloud nextcloud-old

Extraire la dernière version de Nextcloud dans /var/www/nextcloud

unzip nextcloud-xx.x.x.zip

Copier le fichier config.php depuis le répertoire -old vers le nouveau

cp nextcloud-old/config/config.php nextcloud/config/

Copier les applications tierces depuis le répertoire -old vers le nouveau

cp -r nextcloud-old/apps/bruteforcesettings nextcloud/apps
cp -r nextcloud-old/apps/richdocuments nextcloud/apps

Ajuster le propriétaire et les permissions des fichiers

chown -R www-data:www-data nextcloud
find nextcloud/ -type d -exec chmod 750 {} \;
find nextcloud/ -type f -exec chmod 640 {} \;

Redémarrer le serveur web

service apache2 start

Lancer la mise à jour depuis la console avec occ

cd nextcloud
sudo -u www-data php occ upgrade

Attendre la fin de la mise à jour et se loguer pour vérifier la version.

6 réponses sur “Mise à jour manuelle serveur Nextcloud”

    1. Bonsoir.
      Je ne vois pas de problème à utiliser cette méthode sur un hébergement mutualisé, il s’agit simplement de reproduire manuellement ce que fait l’outil de mise à jour de Nextcloud.
      Je me suis retrouvé une fois avec une erreur ou un bug de cet outil et j’ai pu ainsi rattraper la mise à jour sans incidence sur mon instance Nextcloud.

  1. Bonjour,

    Merci pour ce tutoriel particulièrement bienvenu puisque la mise à jour automatique ne fonctionne pas (Check for expected files
    The following extra files have been found: 192.168.0.7)

    J’ai deux ou trois questions à vous soumettre :
    Est-ce que la procédure est valable pour une mise à niveau de Nextcloud ? (nextcloud sur Raspberry Pi 3B+)
    Que deviennent tous les paramétrages, utilisateurs, stockages externes, etc ? Sont-ils épargnés ou faut-il tout reprendre à zéro ?

    Autre question sur un autre sujet : j’ai supprimé des dossiers sur un DD externe, qui étaient autant de stockages externes sur mon nuage. Je les ai recréés en les synchronisant avec ceux du DD interne. Résultat : ils sont bien présents et accessibles sur le DD externe, les stockages externes locaux créés sont bien visibles. Mais je ne vois pas les dossiers qu’ils contiennent sur le nuage. Je monte un fichier sur le nuage, je le vois, je crée un dossier sur le nuage, je le vois, mais impossible de voir les dossiers synchronisés, qui sont bien partagés et bien présents sur le DD externe. Avez-vous une explication ?

    Pour info : dans le journal du nuage, je trouve ceci :
    You are using a fallback implementation of the intl extension. Installing the native one is highly recommended instead. at /var/www/html/nextcloud/3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php#18

    Y aurait-il un rapport ?

    Merci de votre disponibilté,
    Cordialement,
    JPP

    1. Bonsoir, voici dans la mesure du possible quelques réponses à vos questions.

      « Est-ce que la procédure est valable pour une mise à niveau de Nextcloud ? »
      Je dirais que oui mais à condition d’appliquer par sécurité la dernière mise à jour mineure de la version majeure que vous avez, avant de procéder à la mise à niveau vers la version majeure suivante.

      « Que deviennent tous les paramétrages, utilisateurs, stockages externes, etc ? Sont-ils épargnés ou faut-il tout reprendre à zéro ? »
      Si vos données sont stockées dans un répertoire à l’extérieur du répertoire Nextcloud (méthode recommandée), la copie du fichier config.php de l’ancien dossier d’installation vers le nouveau permet simplement de conserver le chemin d’accès vers le répertoire de données.
      Si vous n’avez pas configuré le répertoire de stockage des données Nextcloud à l’extérieur de son répertoire d’installation, alors attention car vous devez également copier ce répertoire depuis l’ancien répertoire Nextcloud vers le répertoire de la nouvelle version.

      « Je les ai recréés en les synchronisant avec ceux du DD interne. »
      Comment avez-vous fait cette synchronisation ? En faisant un lien symbolique ?

      « Avez-vous une explication ? »
      Je chercherai dans un premier temps du côté des propriétaires et des droits sur les répertoires et les fichiers de votre DD externe. Il doit falloir que l’utilisateur d’Apache www-data ait les droits en lecture et écriture sur ces répertoires.

      Concernant l’erreur dans les logs, je dirais que cela vient d’un module PHP manquant. Vous pouvez essayer de l’installer depuis le gestionnaire de paquets.
      Mise à jour de la liste des paquets et installation du module :
      sudo apt update && sudo apt install php-intl
      Activation du module :
      sudo phpenmod intl
      Redémarrage du service apache :
      sudo systemctl restart apache2.service

      En espérant vous avoir aidé.

  2. Bonjour,
    Tout cela m’a bien dépanné, la méthode automatique ne fonctionnant pas.
    Par contre j’ai élargi les droit à 755 du repertoire « nextcloud » pour pouvoir effectuer la dernière action « cd nextcloud » sinon pas moyen d’y entrer.
    Merci.

    1. Bonjour,

      Plutôt que de mettre les droits du dossier nextcloud sur 755 afin d’y avoir accès avec votre utilisateur courant, ce qui pourrait présenter une faille de sécurité, mieux vos effectuer la commande en basculant vers l’utilisateur ‘su’ :

      sudo su
      cd /var/www/nextcloud
      sudo -u www-data php occ upgrade
      exit

Répondre à John Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *