Mises à jour multiples de Nextcloud
dans Bloc-notesSur une installation standard basée sur :
- Debian/GNU Linux
- Apache HTTPD
- MariaDB
Mises à jours concernées :
- de Nextcloud 12 à 18
- de Debian/Stretch à Debian/Buster
Remarques :
Pour les étapes de mise à jour manuelle, j'ai fais un script basique («update script
» ci dessous) intégrant le mode maintenance et la sauvegarde.
Les choix des versions suivantes de Nextcloud ont été celles suggérée par l'admin Nextcloud.
La mise à jour Stretch > Buster c'est faite le plus tard possible : lors de la fin de support de php7.0
pour Nextcloud v16.0.8
Les messages d'erreurs ont été laissés tel quels, et donc en Français pour ceux qui ont été traduits.
Check-list suivie :
(Les emoji ajoutent du context, détails sur gitmoji )
- ☑ 📢 Prevent users by mail
- ☑ 🚧 Activate maintenance mode
- ☑ ⬆️ Upgrade Debian/Stretch
- ☑ 🚧 Deactivate maintenance mode
- ☑ Reboot
- ☑ ⬆️ Upgrade Nextcloud : v12.0.4.3 > v13.0.12 (docs)
- ☑ web/DAV/desktop/android tests
- ☑ ⬆️ Upgrade Nextcloud : v13.0.12 > v14.0.14 - (docs)
- ☑ web/DAV/desktop/logging tests
- 🚑 Error PHP :
You are using a fallback implementation of the intl extension. Installing the native one is highly recommended instead. at /srv/freezed.me/nextcloud/3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php#18
- ➕
apt install php-intl
- ➕
phpenmod intl
- ➕
- Set cron to AJAX
- Set SMTP config
- Set cron to local
crontab
- 🚑
La configuration du serveur web ne permet pas d'atteindre "/.well-known/caldav"
- 🚑
La configuration du serveur web ne permet pas d'atteindre "/.well-known/carddav"
a2enmod rewrite
- docs
- 🚑
Info cli Memcache \OC\Memcache\APCu not available for distributed|local cache
- 🔧 set the
apc.enable_cli = 1
in/etc/php/7.0/cli/php.ini
(just before last line, see docs)
- 🔧 set the
- ⚡ indice warnings, see migration from Nextcloud 13 in docs.
- 🔧
sudo -u www-data php occ db:add-missing-indices
- 🔧
- ⚡ see migration from Nextcloud 13 in docs.
- 🔧
sudo -u www-data php occ db:convert-filecache-bigint
- 🔧
- 🚑 Error PHP :
- ☑ upgrade Nextcloud : v14.0.14 > v15.0.11 - (docs)
- ☑ web/DAV/desktop/android tests
- ☑ web admin overview/logging
- 🚑 `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.
Index "owner_index" manquant dans la table "oc_share".
Index "initiator_index" manquant dans la table "oc_share".
- 🔧
occ db:add-missing-indices
- 🔧
- ⚠️
Error PHP Undefined index: changelogURL at /srv/freezed.me/nextcloud/core/Controller/WhatsNewController.php#91
- ⚠️
MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL.
Pour plus de détails, lisez la page de documentation à ce sujet- Wait after step «
Upgrade Nextcloud : v17.0.5 > v18.0.3
»
- Wait after step «
- ⚠️
Vous utilisez actuellement PHP 7.0.33-0+deb9u7. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.
- Wait after
dist-upgrade Debian/Stretch > Buster
- Wait after
- 🚑 `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.
- ☑ ⬆️ Upgrade Nextcloud : v15.0.11 > v15.0.14 - (docs)
- ☑ web/DAV/desktop/android tests
- ☑ Web/DAV/desktop/settings
- ⚠️
MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL.
Pour plus de détails, lisez la page de documentation à ce sujet- see up
- ⚠️
Vous utilisez actuellement PHP 7.0.33-0+deb9u7. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.
- see up
- ⚡
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. Pour plus d'information, consulter la page de la documentation.
mounts.storage_id
mounts.root_id
mounts.mount_id
- 🔧
sudo -u www-data php occ db:add-missing-indices
- 🔧
- ⚠️
- ☑ ⬆️ Upgrade Nextcloud : v15.0.14 > v16.0.8 - (docs)
- «
update script
»- 💥
This version of Nextcloud requires at least PHP 7.1<br/>You are currently running 7.0.33-0+deb9u7. Please update your PHP version.zsh: exit 255 sudo -u www-data php occ upgrade
- 💥
- ⏪ stash 16.0.9 :
mv nextcloud next-nextcloud-16.0.8
- ⏪ rollback to 15.0.14 :
mv old-nextcloud-15.0.14 nextcloud
- «
- ☑ ⬆️ dist-upgrade Debian/Stretch > Buster
apt autoremove
- 📸 update again to 16.0.9 :
mv nextcloud next-nextcloud-16.0.8
- 📸 backup 15.0.14 :
mv old-nextcloud-15.0.14 nextcloud
- ⬆️
apt install php7.3-mysql
(see) - ⬆️
a2enmod php7.3
- ☑ ⬆️ Upgrade Nextcloud : v16.0.8 > v16.0.9
- ☑ ⬆️ Upgrade Nextcloud : v16.0.9 > v17.0.5
- ☑ web/DAV/desktop/android tests
- ☑ web admin overview/logging
- 🚑
Info cli Memcache \OC\Memcache\APCu not available for distributed|local cache
- 🔧 set
apc.enable_cli = 1
in/etc/php/7.3/cli/php.ini
(just before last line) (docs)
- 🔧 set
- ⚡
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.
Index "twofactor_providers_uid" manquant dans la table "oc_twofactor_providers".
Index "version" manquant dans la table "oc_whats_new".
Index "cards_abid" manquant dans la table "oc_cards".
Index "cards_prop_abid" manquant dans la table "oc_cards_properties".
- 🔧
sudo -u www-data php occ db:add-missing-indices
- 🔧
- ⚠️
La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.
- Wait after step «
Upgrade Nextcloud : v17.0.5 > v18.0.3
»
- Wait after step «
- ⚠️
MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL.
Pour plus de détails, lisez la page de documentation à ce sujet- Wait after step «
Upgrade Nextcloud : v17.0.5 > v18.0.3
»
- Wait after step «
- 🚑
- ☑ ⬆️ Upgrade Nextcloud : v17.0.5 > v18.0.3
- ☑ web/DAV/desktop/android tests
- ☑ web admin overview/logging
- 🚑
La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.
- 🔧 set
memory_limit = 512M
in/etc/php/7.3/apache2/php.ini
- 🔧 set
- ⚡
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.
Index "calendarobject_calid_index" manquant dans la table "oc_calendarobjects_props".
Index "schedulobj_principuri_index" manquant dans la table "oc_schedulingobjects".
- 🔧
sudo -u www-data php occ db:add-missing-indices
- ⚠️
MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL.
Pour plus de détails, lisez la page de documentation à ce sujet- 🔧 Enabling MySQL 4-byte support : see docs
- 🚑