Lorsqu’une nouvelle version de Owncloud est disponible, il est normalement possible de faire cette mise à jour depuis l’interface d’administration.
Sauf que j’ai systématiquement une erreur du type
Unable to move /var/www/owncloud/_oc-upgrade/VERSION/core/resources to /var/www/owncloud/resources
Donc j’ai décidé de passer par la méthode manuelle en ligne de commande, fiable et efficace.
Dont voici les détails:
Sauvegarder
On commence par une sauvegarde préventive. Car Owncloud est facétieux…
Donc si possible, on sauvegarde le dossier des données utilisateurs.
sudo cp -a /home/yunohost.app/owncloud/data ~/owncloud_data
Désactiver les applications tierces
Et oui, owncloud n’aime pas les applications tierces. La mise à jour échouera si des applications tierces sont activées. Il faut donc les désactiver avant de poursuivre.
Mode maintenance
On passe en mode maintenance pour s’assurer qu’aucun utilisateur ne viennent faire des bêtises pendant la mise à jour.
cd /var/www/owncloud
sudo -u owncloud php occ maintenance:mode --on
Téléchargement de la mise à jour
On télécharge la version proposée par notre owncloud, et surtout pas la dernière version. Car les mises à jour doivent se faire dans l’ordre.
On trouvera le lien vers l’archive à télécharger sur le site d’owncloud. (Et on ne se laisse toujours pas tenter par la dernière version!)
cd ~
wget download.owncloud.com
Décompression de l’archive
tar xjf owncloud-VERSION
On déplace owncloud
Le dossier owncloud va être renommé en owncloud.old pour laisser la place à la nouvelle version.
sudo mv /var/www/owncloud /var/www/owncloud.old
Copie du fichier de config
On copie le fichier de config dans la nouvelle version.
Et on le fait avant de placer le dossier à sa place pour garder le mode maintenance activé.
sudo cp -a /var/www/owncloud.old/config/config.php owncloud/config/config.php
Copie du nouveau owncloud
sudo cp -a owncloud /var/www/owncloud
Copie du dossier d’app
Le dossier d’app doit être copié éventuellement aussi le cas échéant.
Attention toutefois, si des applications tierces sont activées, la mise à jour échouera.
sudo cp -a /var/www/owncloud.old/apps/. /var/www/owncloud/apps
Restauration des droits
sudo chown owncloud: -R /var/www/owncloud
Application de la mise à jour
cd /var/www/owncloud
sudo -u owncloud php occ upgrade
On retire le mode maintenance.
sudo -u owncloud php occ maintenance:mode --off
Si tout va bien, on nettoye
Après avoir retiré le mode maintenance, on peut vérifier que tout va bien sur notre nouveau owncloud.
Et constater aussi qu’il veut encore faire une mise à jour… Puisqu’il les fait dans l’ordre.
Quoi qu’il en soit, si la mise à jour s’est bien passée, il faut faire le ménage!
On supprime donc l’ancien owncloud
sudo rm -r /var/www/owncloud.old
Ainsi que la mise à jour d’owncloud téléchargée.
sudo rm -r ~/owncloud-VERSION ~/owncloud
Et après vérification, on peut également supprimer le dossier data dupliqué.
sudo rm -r ~/owncloud_data
Pour ma part la mise à jour manuelle fait suite à la découverte de la merveilleuse fonction de public upload, qui est buggée en version 8.2.0
Pour faire simple, cette fonction consiste à partager un dossier publiquement avec un accès anonyme en écriture. On peut également, comme tout partage, protéger par mot de passe et fixer une durée de validité.
On peut ainsi permettre à un utilisateur tiers d’envoyer des fichiers sur notre owncloud sans pour autant lui créer un compte.
Il suffit de partager un dossier quelconque et de choisir
Partager par lien public
Puis de cocher
Permettre la modification