Notre précédent article était consacré à la mise à jour de OwnCloud vers la version 10.2. Or, la méthode présentée risque de ne pas fonctionner avec une installation importante, car on sera vite confronté à une série de limitations diverses et variées comme les timeouts de PHP pour l’interface web. Évidemment on peut modifier cela sous le capot, mais la documentation officielle préconise la mise à jour manuelle dans le cas d’une installation importante. Les instructions officielles ne sont pas toujours très claires et comportent même des erreurs. J’ai donc décidé d’expérimenter un peu en prenant des notes.
Dans l’exemple, je me sers d’une installation importante qui comporte quelques centaines de milliers de fichiers. Les sauvegardes sont effectuées automatiquement avec Rsnapshot sur un serveur externe, je peux donc toujours revenir en arrière en cas de pépin.
Désactiver les tâches automatiques.
$ sudo crontab -u apache -e
# */15 * * * * /usr/bin/php -f /var/www/bsco-owncloud/html/cron.php
Activer le mode maintenance.
$ cd /var/www/bsco-owncloud/html/ $ sudo -u apache php occ maintenance:mode --on Maintenance mode enabled Please also consider to stop the web server on all ownCloud instances
Afficher la liste des applications installées.
$ sudo -u apache php occ app:list ownCloud is in maintenance mode - no app have been loaded Enabled: - activity: 2.3.8 - comments: 0.3.0 - configreport: 0.1.1 - dav: 0.4.0 - encryption: 1.3.1 - federatedfilesharing: 0.3.1 - federation: 0.1.0 - files: 1.5.1 - files_external: 0.7.1 - files_external_dropbox: 1.1.0 - files_pdfviewer: 0.9.0 - files_sharing: 0.11.0 - files_texteditor: 2.2.1 - files_trashbin: 0.9.1 - files_versions: 1.3.0 - files_videoplayer: 0.9.8 - firstrunwizard: 1.1 - gallery: 16.1.0 - market: 0.2.5 - notifications: 0.3.5 - onlyoffice: 2.3.1 - provisioning_api: 0.5.0 - systemtags: 0.3.0 - updatenotification: 0.2.1 Disabled: - external - user_external
Les applications tierces – c’est-à-dire toutes celles qui ne sont pas supportées officiellement – doivent impérativement être désactivées avant la mise à jour. Malheureusement, elles ne sont pas identifiables en tant que telles dans la console. Voici la liste des applications installées par défaut dans OwnCloud.
Enabled: - comments: 0.3.0 - configreport: 0.1.1 - dav: 0.4.0 - federatedfilesharing: 0.3.1 - federation: 0.1.0 - files: 1.5.1 - files_external: 0.7.1 - files_sharing: 0.11.0 - files_trashbin: 0.9.1 - files_versions: 1.3.0 - files_videoplayer: 0.9.8 - firstrunwizard: 1.1 - market: 0.2.5 - notifications: 0.3.5 - provisioning_api: 0.5.0 - systemtags: 0.3.0 - updatenotification: 0.2.1 Disabled: - encryption - external - user_external
On utilisera cette liste pour identifier et désactiver une par une les applications tierces.
$ sudo -u apache php occ app:disable activity activity disabled $ sudo -u apache php occ app:disable encryption encryption disabled $ sudo -u apache php occ app:disable files_external_dropbox files_external_dropbox disabled $ sudo -u apache php occ app:disable files_pdfviewer files_pdfviewer disabled $ sudo -u apache php occ app:disable files_texteditor files_texteditor disabled $ sudo -u apache php occ app:disable onlyoffice onlyoffice disabled
L’application Market peut poser des problèmes pendant la mise à jour.
$ sudo -u apache php occ app:disable market market disabled
Renommer l’installation existante et installer la mise à jour.
$ cd /var/www/bsco-owncloud/ $ sudo mv -v html/ html.bak « html/ » -> « html.bak » $ tar xjf ~/webapps/owncloud/owncloud-10.2.1.tar.bz2 $ mv -v owncloud/ html « owncloud/ » -> « html »
Copier la configuration existante vers la nouvelle installation.
$ sudo cp -av html.bak/config/config.php html/config/ « html.bak/config/config.php » -> « html/config/config.php »
Déménager les données vers la nouvelle installation.
$ sudo mv -v html.bak/data/ html/ « html.bak/data/ » -> « html/data »
Définir des permissions provisoires « à la louche » pour la mise à jour.
$ sudo chown -R apache:apache html/
Démarrer la mise à jour interne.
$ sudo -u apache php html/occ upgrade
Voilà ce que l’on obtient dans la console.
Rétablir les permissions normales pour OwnCloud. N’oubliez pas que nous avons déjà effectué la mise à jour.
$ sudo ./owncloud.sh Do you want to upgrade an existing installation (y/N)? n Do you want to use ln instead of mkdir for creating directories (y/N)? n Do you also want to chmod/chown these links (y/N)? n Creating or linking possible missing directories mkdir /var/www/bsco-owncloud/html/data mkdir /var/www/bsco-owncloud/html/apps-external chmod files and directories excluding data and apps-external directory chmod data and apps-external directory (mkdir) chown files and directories excluding data and apps-external directory chown apps directory chown config directory chown updater directory chown data and apps-external directories (mkdir) chmod occ command to make it executable chmod/chown .htaccess
Nous pouvons désormais quitter le mode maintenance.
$ cd /var/www/bsco-owncloud/html/ $ sudo -u apache php occ maintenance:mode --off ownCloud is in maintenance mode - no apps have been loaded Maintenance mode disabled
Supprimer l’ancienne installation.
$ cd /var/www/bsco-owncloud/ $ sudo rm -rf html.bak/
Réactiver les tâches automatiques.
$ sudo crontab -u apache -e */15 * * * * /usr/bin/php -f /var/www/bsco-owncloud/html/cron.php
Ouvrir l’interface web, aller dans Paramètres > Administration > Généraux et vérifier si l’installation a réussi tous les tests d’intégrité.
Ensuite, ouvrir Administration > Applications, cliquer sur Montrer les applications désactivées et réactiver les applications tierces.
Dans un premier temps, il faut réactiver l’application Market, ce qui nécessite une mise à jour.
Enfin, ouvrir l’application Market et restaurer toutes les applications tierces.
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
0 commentaire