Il y a deux ans, j'ai publié une série d'articles sur le thème de la création d'un serveur Web basé sur Debian 8. Et le lancement du service Nextcloud sur celui-ci. Quelques mois plus tard, il y avait un module complémentaire contenant des informations "différentielles" sur l'installation de Nextcloud 13 sur Debian 9. À la fin de 2018, je mis à jour Debian et Nextcloud et n'a rencontré aucun problème inhabituel ou intéressant. La mise à jour fin 2019 était déjà plus intéressante et méritait d'être écrite.

Cet article sera principalement utile à ceux qui, selon les instructions des quatre derniers articles, ont "collecté" Nextcloud 13 sur Debian 9 (j'envoie des salutations à dix de mes abonnés sur Nextcloud, en particulier à ceux pour qui c'était la première expérience dans le monde Linux). Pour ceux qui vont faire un service à partir de zéro, je vous conseille de prendre comme base les quatre premiers articles de cette série, ajustés pour les versions actuelles de Debian 10 et Nextcloud 17. Pour les utilisateurs Linux expérimentés, l'article peut se situer entre «trivial et inutile» et «pas mal, triche tout-en-un. "
Table des matières
Partie 1. Configurer votre environnement Debian pour un usage quotidienPartie 2. Créer un serveur - configurer LAMP dans DebianPartie 3. Création d'un cloud personnel - installation et configuration de NextcloudPartie 4. Mise à jour 2018 - Debian 9 et Nextcloud 13Partie 5. Mise à jour 2019 - PHP 7.2, MariaDB 10.4 et Nextcloud 17
Navigation rapide dans les chapitres
PréfaceMise à jour DebianMise à jour PHP vers la version 7.2Mettre à jour MariaDB vers la version 10.4Mise à jour de Nextcloud vers la version 17Postface
Préface
Au départ, je voulais installer et configurer Nginx sur Debian 10, au-dessus duquel le Nextcloud 17 actuel aurait été installé sans problème. Mais pour tout cela, je ne pouvais pas choisir l'heure, donc cet article est un ensemble d'instructions pour mettre à niveau Nextcloud de 13 à la version 17 actuelle à partir de la version préliminaire préparer un serveur web.
Vous devez d'abord expliquer pourquoi des changements radicaux étaient nécessaires du côté du serveur Web. Notre serveur est basé sur la Debian 9 actuelle et prise en charge. Vous pouvez simplement mettre à jour le système d'exploitation et tous les composants du serveur Web recevront au moins des mises à jour de sécurité. Tout serait formidable si nous utilisions davantage Nextcloud 13 ou si nous ne mettions à niveau que la version 14. Mais Nextcloud 13 n'est plus pris en charge et la prise en charge de la 14e version est à la volée. À partir de la 15e version, Nexctcloud proposera de convertir la base de données en big int pour prendre en charge le codage à quatre octets, et avec MariaDB 10.1, cela sera très problématique. Nexctcloud 17 nécessite PHP 7.1-7.3, tandis que Debian 9 ne contient que la version 7.0 dans ses référentiels natifs. Il serait plus correct, en termes de fiabilité et de prévisibilité, de passer à l'avant-dernière version de Nextcloud, mais pendant quelques années, j'étais si sûr de la fiabilité de ce service que je voulais passer à la dernière version et mettre à jour le serveur Web avec une réserve pour l'avenir. Par conséquent, pour mettre à niveau vers Nexctcloud 17, il est optimal de mettre à niveau MariaDB vers la version stable actuelle 10.4 et PHP vers 7.2. C'est 7.2, et non pertinent 7.4. Le fait est que Nextcloud 13 nécessite PHP 5.6, 7.0 - 7.2, et Nexctcloud 17 nécessite PHP 7.1 - 7.3. L'utilisation de PHP 7.2 est pratique afin de minimiser les actions de mise à niveau. Le serveur Apache n'a pas besoin d'être mis à jour - installez simplement les mises à jour de sécurité qui sont distribuées par l'équipe de support Debian. Mais pour les mises à jour, MariaDB et PHP devront connecter des référentiels externes.
Lorsque j'ai rencontré Nextcloud pour la première fois, je l'ai mis à jour «à la main»: le site Web a été mis en mode maintenance depuis la console par une équipe spéciale, l'archive avec la nouvelle version du site a été téléchargée et décompressée manuellement, les fichiers ont été mis à jour et la procédure de mise à jour a commencé. Une telle mise à jour a généralement abouti aux résultats escomptés, même si je n'étais pas paresseux à faire une copie de sauvegarde du site, de la base de données et des données utilisateur. Mais les mises à jour automatiques ont parfois provoqué toutes sortes de surprises. Mais c'était il y a longtemps, la stabilité du moteur a considérablement augmenté depuis lors, et cette fois j'ai fait des mises à jour exclusivement via l'interface web. Certes, il n'était toujours pas possible de sortir de la ligne de commande. Lors d'une mise à jour itérative pour chaque nouvelle version, divers avertissements et notifications apparaîtront dans le panneau de configuration, qui devront être "supprimés" en exécutant de manière significative des commandes sur la ligne de commande. Vous ne pouvez pas faire cela - le service fonctionnera de toute façon. Bien que cette approche soit fondamentalement erronée, Nextcloud a travaillé pour moi pendant 3 mois dans ce mode avant de résoudre délibérément les problèmes qui se posaient.
Mise à jour Debain
Arrêtez le serveur Web:
Et mis à jour:
Après la mise à jour, vous pouvez vérifier la version du système d'exploitation et effectuer un redémarrage pour vous assurer que tout démarre normalement après la mise à jour:
Mise à jour PHP vers la version 7.2
Arrêtez le serveur Web:
Ajouter un certificat et des clés PPA, référentiel PHP:
Si vous supprimez l'ancienne version de PHP 7.0, phpmyadmin sera également supprimé, car nous allons nettoyer les «traces» des packages supprimés à l'aide de la suppression automatique. Cela ne causera pas beaucoup de difficultés, car aucun paramètre spécial n'a été fait pour phpmyadmin et sa réinstallation ne posera aucun problème.
Installation des modules nécessaires pour Nextcloud 17:
[ Ce texte a été écrit spécifiquement pour habr.com par AlexanderS .
Le lien vers la source est facultatif, mais sa référence est hautement souhaitable! ]Nous vérifions la version de PHP, démarrons le serveur web et vérifions l'opérabilité de Nextcloud:
Mettre à jour MariaDB vers la version 10.4
Le site Web du projet a une
page intéressante sur laquelle vous devez indiquer votre système d'exploitation, sa version et sélectionner la version de la base de données. Une fois sélectionné, le code sera généré pour ajouter le référentiel.
Arrêtez le serveur Web:
Ajouter un référentiel et mettre à jour des packages:
Lors de l'installation de MariaDB, le gestionnaire de packages supprimera correctement la version précédente et installera la nouvelle, toutes les bases de données seront enregistrées. Cependant, la sauvegarde de la base de données Nextcloud est bien sûr recommandée.
Installez MariaDB et exécutez la procédure de mise à jour:
Après avoir entré le mot de passe, MariaDB sera mis à jour et il sera possible de le configurer, en suivant les
instructions de la deuxième partie :
Nous démarrons le serveur Web et vérifions les performances de Nextcloud:
Mise à jour de Nextcloud vers la version 17
Pour démarrer la mise à jour, vous devez vous connecter au service sous une entrée administrative, procéder aux paramètres et ouvrir les «Paramètres généraux» dans la section administrative. Nextcloud affiche la version installée et la version disponible pour la mise à jour, qui peut être lancée en cliquant sur le bouton "Ouvrir la fenêtre de mise à jour". Après l'initiation, Nextcloud effectue une sauvegarde, télécharge et vérifie l'intégrité des fichiers de mise à jour, active le mode de maintenance et met à jour les fichiers. Ce qui suit est la question «Garder le mode de maintenance actif»? Vous devez être prudent ici. Une réponse positive laissera le site en mode maintenance - il est supposé que l'administrateur sait quoi faire ensuite et le fait manuellement. Sinon, Nextcloud fera tout par lui-même, alors cliquez sur «Non» pour continuer.
Les mises à jour sont effectuées de manière itérative. Nextcloud 13.x passera d'abord à la dernière version de la branche 14.x. Après cela, vous devrez retourner au centre d'administration et démarrer la mise à jour, maintenant de 14.x à 15.x. Et ainsi de suite, jusqu'à ce que la dernière version actuelle possible soit atteinte. Après chaque mise à jour, sur la page Paramètres généraux de la section administrative, une liste de suggestions et de problèmes rencontrés, ainsi que des recommandations pour les résoudre, s'afficheront. Ci-dessous, nous parlerons de ce qui devra être fait après chaque mise à jour.
Avant la mise à jourSur les versions récentes de Nextcloud, il est recommandé d'activer PHP OPcache pour améliorer les performances. Il est étrange que j'ai raté ce moment il y a quelques années, car OPcache est apparu en PHP 5. Dans /etc/php/7.2/apache2/php.ini, vous devez décommenter et modifier les paramètres suivants:
opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 pcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1
Mise à jour 13.x -> 14.xNous restaurons les index des tables:
Mise à jour 14.x -> 15.xPréparation de la base de données nextcloud pour activer le codage sur quatre octets:
Activez la prise en charge du codage sur quatre octets dans Nextcloud:
Nous transformons les tables:
Récupérez les indices de table perdus:
Convertissez les indices de table en bigint:
Mise à jour 15.x -> 16.xRécupérez les indices de table perdus:
Convertissez les indices de table en bigint:
Mise à jour 16.x -> 17.xAucune autre action n'est requise.
Postface
Suite à cette instruction, la machine virtuelle avec Nextcloud 13 a été mise à jour. L'utilisation de la machine virtuelle vous permet de ne pas sauvegarder les fichiers Nextcloud et sa base de données, car en cas de problème, vous pouvez simplement retourner le fichier de la machine virtuelle précédemment enregistré et recommencer à nouveau. Cependant, cela ne s'applique pas au dossier de données utilisateur, que je recommande également de sauvegarder avec la machine virtuelle Nextcloud. Dans mon cas, le «cloud» est utilisé comme dossier distant avec versioning automatique, d'ailleurs, avec le sens de synchronisation «seulement là», et pour moi la perte de ces données n'était pas critique - il me suffirait de synchroniser à nouveau pendant plusieurs heures. Malgré ma négligence de la règle «rester en sécurité au cas où» élaborée par ma vie, la mise à jour s'est bien déroulée et tous les clients ont également gagné de l'argent avec Nextcloud 17 sans aucun problème. Je suis impressionné, Frank Karlitshek - vous et votre équipe faites un excellent travail!
Après la mise à jour, j'ai décidé de nettoyer les données des utilisateurs qui, à en juger par les statistiques, ont pris deux téraoctets. Je n'avais pas autant de données opérationnelles - la plupart du volume était occupé par des fichiers de version et des fichiers supprimés. Le problème que j'ai rencontré était qu'il y avait tellement de données supprimées pour un utilisateur (ce n'est même pas le volume, mais la quantité - beaucoup de petits fichiers) que Nextcloud ne pouvait pas les afficher dans l'interface Web. Après avoir étudié le guide d'administration, j'ai trouvé la solution via la ligne de commande. Peut-être que cela sera utile pour quelqu'un.
Pour effacer les fichiers supprimés de l'utilisateur utilisateur:
Pour effacer les fichiers de version utilisateur:
Revenez
au début, à la table des matières .
L'histoire de la création d'un cloud domestique. Partie 5. Mise à jour 2019 - PHP 7.2, MariaDB 10.4 et Nextcloud 17
Version texte: 1.1.1.
Date de première publication: 15/01/2020.
Dernière modification: 15/01/2020.
Journal de mise à jour1.1.1 [15-01-2020]
Correction des fautes de frappe.
1.1.0 [15-01-2020]
Le code de préparation de la base de données nexcloud pour activer le codage sur quatre octets a été corrigé.
1.0.0 [15-01-2020]
Première version.