Description
Mettre à jour NC (Nextcloud ) n’est pas compliqué en soit… Soit, vous le faites :
- Par le biais de l’interface web d’administration.
- Manuellement
- Par le gestionnaire de paquets, s’il y a lieu.
Cet article a juste pour propos d’expliquer succinctement le processus manuel sous OpenBSD. L’instance que j’administre est donc sous OpenBSD, desservie par le serveur web Nginx, et le couple PHP+MySQL (en l’occurence actuellement PHP 7.3)
Processus de mise à jour
C’est le processus que j’utilise depuis plusieurs années, depuis la version 15.*, qui en fait se veut simple, pratique et rapide.
Arrêt du service web
La première chose que je fais est de désactiver le domaine au niveau de nginx :
Code : sh
# rm -f /etc/nginx/sites-enabled/mon-domaine.net
# nginx -t && rcctl restart nginx
Préparations
Partons du principe que l’utilisateur web est www
.
Les actions qui suivent sont à faire avec ces droits : $ su -l www
- Direction vers le répertoire de nextcloud :
cd www/nextcloud
- Il faut légérement modifier
le fichier de config :
sed -i -e 's#/htdocs#/var/www/htdocs#' config/config.php
- Activation du mode de maintenance:
php-7.3 occ maintenance:mode --on
Téléchargement
Astuce d’informaticien :
- Direction le répertoire parent
www\
: - Création d’une variable de version
v
qui sera bien utile. - Téléchargement de l’archive actuelle correspondante à la version, ainsi que du fichier de sommes de contrôle sha256, fournis par le projet NC.
- Vérification de la somme de contrôle
Code : sh
$ cd ../
$ v="17.0.1"
$ for ext in bz2 bz2.sha256; do curl -O https://download.nextcloud.com/server/releases/nextcloud-$v.tar.$ext; done
$ sha256 -c nextcloud-$v.tar.bz2.sha256
Si par exemple, le résultat du SHA est (SHA256) nextcloud-$v.tar.bz2: OK
, c’est tout bon.
Installation
Passons à la phse d’installation :
- déplace l’actuel répertoire
nextcloud
en le renommant suivi de la date de transformation et du numéro de l’ancienne version - décompression de l’archive,
- suppression d’un fichier (on ne cherche pas à installer, ni à ré-installer NC).
Code : sh
$ oldvers="16.0.6"
$ date="$(date '+%Y%m%d%H%M%S')"
$ oldnc="nextcloud-${date}-${oldvers}"
$ mv nextcloud ${oldnc}
$ tar xjvf nextcloud-$v.tar.bz2
$ rm -fP config/CAN_INSTALL
Vérifications primaires
Là, il faut être un peu plus attentif :
- Copie l’ancien fichier de configuration vers le nouveau répertoire de configuration :
cp ${oldnc}/config/config.php nextcloud/config/
- Maintenant, il faut parcourir l’ancien répertoire des applications pour copier celles qui ne sont pas natives vers le nouveau répertoire d’applications. ne recopiez pas telle qu’elle la commande qui suit, c’est juste pour mémo :
cp all ${oldnc}/apps diff to new nextcloud-app
- Pour finir, si besoin, il faut faire de même avec le répertoire des thèmes.
Permissions
- Attribution des droits utilisateurs sur tous les nouveaux fichiers et répertoires dans le répertoire
nextcloud/
. - Puis, attribution des droits nécessaires d’abord sur tous les répertoires enfants, ensuite ceux pour les fichiers enfants.
Code : sh
$ webuser="www"
$ chown -R "${webuser}":www nextcloud
$ find nextcloud/ -type d -exec chmod 750 {} \;
$ find nextcloud/ -type f -exec chmod 640 {} \;
Mise à jour
- La mise à jour de NC en soit ; rien de particulier, pour autant qu’on soit dans le bon répertoire :
cd nextcloud/
- Ensuite, utilisation de l’outil
occ
:php-7.3 occ upgrade
- Si cela finit avec le message de succès, sortie du mode maintenance :
php-7.3 occ maintenance:mode --off
- Si cela finit avec le message de succès, sortie du mode maintenance :
Pour finir, ré-édition du fichier de configuration pour supprimer /var/www
: sed -i -e 's#/var/www/htdocs#/htdocs#' config/config.php
Rédemarrage Service Web
- Ré-active le domaine et redémarrage du service web :
Code : sh
# cd /etc/nginx/sites-available/
# ln -s mon-domaine.net ../sites-enabled/
# nginx -t && rcctl restart nginx
- Puis connexion à l’interface web d’administration en tant qu’administrateur, et mise à jour des différentes applications
Et, voilà !
TL;DR
Attention si vous ne faites que recopier tel quel ce TL;DR, vous allez au casse-pipe !
Code : sh
// stop web services
# rm -f /etc/nginx/sites-enabled/mon-domaine.net
# nginx -t && rcctl restart nginx
// connexion as user web
# webuser="www"
# su -l $webuser
$ cd /var/www/htdocs/mon-domaine.net/www/nextcloud/
$ sed -i -e 's#/htdocs#/var/www/htdocs#' config/config.php
$ php-7.3 occ maintenance:mode --on
// downlad archives, and checksum
$ cd ../
$ v="17.0.1"
$ for ext in bz2 bz2.sha256; do curl -O https://download.nextcloud.com/server/releases/nextcloud-$v.tar.$ext; done
$ sha256 -c nextcloud-$v.tar.bz2.sha256
// Untar
$ oldvers="16.0.6"
$ date="$(date '+%Y%m%d%H%M%S')"
$ oldnc="nextcloud-${date}-${oldvers}"
$ mv nextcloud ${oldnc}
$ tar xjvf nextcloud-$v.tar.bz2
$ rm -fP config/CAN_INSTALL
// cp config
$ cp ${oldnc}/config/config.php nextcloud/config/
// cp only apps not native; dont recopy this command as-is:
$ cp all ${oldnc}/apps diff to new nextcloud/apps
// egual for themes, if need
$ cp all ${oldnc}/themes to new nextcloud/themes
$ chown -R "${webuser}":www nextcloud
$ find nextcloud/ -type d -exec chmod 750 {} \;
$ find nextcloud/ -type f -exec chmod 640 {} \;
// occ upgrage process
$ cd nextcloud/
$ php-7.3 occ upgrade
$ php-7.3 occ maintenance:mode --off
$ sed -i -e 's#/var/www/htdocs#/htdocs#' config/config.php
// exit
// restart web services
# cd /etc/nginx/sites-available/
# ln -s mon-domaine.net ../sites-enabled/
# nginx -t && rcctl restart nginx
Dépannages
Si la mise à jour échoue, avec l’un de ces messages d’erreurs :
Erreur : Nextcloud is not installed
Tel que :
Code : sh
$ php-7.3 occ help upgrade
Nextcloud is not installed - only a limited number of commands are available
Command "upgrade" is not defined.
help [--format FORMAT] [--raw] [--] [<command_name>]
Première chose à s’assurer est de vérifier que vous avez bien recopié l’ancien fichier de configuration vers le nouveau répertoire de configuration.
Si oui, et que le problème perdure, essayez : php-7.3 occ maintenance:repair
Erreur: vous essayez de réinstaller votre Nextcloud
Lorsque vous vous connectez à l’interface web, vous avez le message suivant :
Citation :
Erreur
On dirait que vous essayez de réinstaller votre Nextcloud. Toutefois, le fichier CAN_INSTALL est absent de votre répertoire de configuration. Veuillez créer le fichier CAN_INSTALL dans votre dossier de configuration pour continuer
Allez supprimer le fichier CAN_INSTALL
qui se trouve dans le nouveau répertoire de configuration
Les fichiers ne sont plus visibles
Essayez : php-7.3 console.php files:scan --all
Commandes OCC
Pour rappel, les différentes commandes occ, bien utiles : php occ list
Retrouvez une liste d’informations bien pratique sur la page occ .