Die Entstehungsgeschichte einer Home Cloud. Teil 5. Aktualisierung 2019 - PHP 7.2, MariaDB 10.4 und Nextcloud 17

Vor zwei Jahren veröffentlichte ich eine Reihe von Artikeln zum Thema "Erstellen eines Debian 8-basierten Webservers und Starten von Nextcloud 11. Einige Monate später gab es ein Add-On mit" differenziellen "Informationen zur Installation von Nextcloud 13 unter Debian 9. Ende 2018 hatte ich gerade Debian und Nextcloud wurden aktualisiert und es gab keine ungewöhnlichen oder interessanten Probleme. Das Update Ende 2019 war schon interessanter und schreibenswerter.



Dieser Artikel ist in erster Linie für diejenigen nützlich, die gemäß den Anweisungen der letzten vier Artikel Nextcloud 13 auf Debian 9 "gesammelt" haben (ich sende Grüße an zehn meiner Abonnenten auf Nextcloud, insbesondere an diejenigen, für die es die erste Erfahrung in der Linux-Welt war). Für diejenigen, die einen Service von Grund auf neu erstellen wollen, empfehle ich Ihnen, die ersten vier Artikel dieser Reihe zugrunde zu legen, die für die aktuellen Versionen von Debian 10 und Nextcloud 17 angepasst sind. Für erfahrene Linux-Benutzer kann der Artikel einen Platz zwischen "trivial und nutzlos" und "nicht schlecht" einnehmen. All-in-One-Platz Spickzettel. “



Inhaltsverzeichnis


Teil 1. Einrichten Ihrer Debian-Umgebung für den täglichen Gebrauch
Teil 2. Einen Server erstellen - LAMP in Debian einrichten
Teil 3. Erstellen einer persönlichen Cloud - Installieren und Konfigurieren von Nextcloud
Teil 4. Update 2018 - Debian 9 und Nextcloud 13
Teil 5. Aktualisierung 2019 - PHP 7.2, MariaDB 10.4 und Nextcloud 17



Schnelle Kapitelnavigation


Vorwort
Debian-Update
PHP Update auf Version 7.2
Aktualisieren Sie MariaDB auf Version 10.4
Nextcloud Update auf Version 17
Nachwort



Vorwort


Ursprünglich wollte ich Nginx auf Debian 10 installieren und konfigurieren, auf dem die aktuelle Nextcloud 17 ohne Probleme installiert worden wäre. Trotzdem konnte ich die Zeit nicht wählen, daher ist dieser Artikel eine Anleitung zum Aktualisieren von Nextcloud von 13 auf die aktuelle Version 17 von der vorläufigen Vorbereiten eines Webservers.

Zunächst müssen Sie erklären, warum radikale Änderungen auf der Seite des Webservers erforderlich waren. Unser Server basiert auf dem aktuellen und unterstützten Debian 9. Sie können einfach das Betriebssystem aktualisieren und alle Komponenten des Webservers erhalten mindestens Sicherheitsupdates. Alles wäre großartig, wenn wir Nextcloud 13 weiter verwenden oder nur auf Version 14 aktualisieren würden. Nextcloud 13 wird jedoch nicht mehr unterstützt und die 14. Version wird sofort unterstützt. Ab der 15. Version bietet Nexctcloud die Konvertierung der Datenbank nach big int an, um die 4-Byte-Codierung zu unterstützen. Mit MariaDB 10.1 wird dies sehr problematisch sein. Nexctcloud 17 benötigt PHP 7.1-7.3, während Debian 9 nur Version 7.0 in seinen nativen Repositories enthält. Ein Upgrade auf die vorletzte Version von Nextcloud wäre in Bezug auf Zuverlässigkeit und Vorhersehbarkeit korrekter, aber ich war mir ein paar Jahre lang der Zuverlässigkeit dieses Dienstes so sicher, dass ich auf die neueste Version aktualisieren und den Webserver mit einer Reserve für die Zukunft aktualisieren wollte. Daher ist es für ein Upgrade auf Nexctcloud 17 optimal, MariaDB auf die aktuelle stabile Version 10.4 und PHP auf 7.2 zu aktualisieren. Es ist 7.2 und nicht relevant 7.4. Fakt ist, dass Nextcloud 13 PHP 5.6, 7.0 - 7.2 und Nexctcloud 17 PHP 7.1 - 7.3 benötigt. Die Verwendung von PHP 7.2 ist praktisch, um Upgrade-Aktionen zu minimieren. Der Apache-Server muss nicht aktualisiert werden - installieren Sie einfach die Sicherheitsupdates, die vom Debian-Support-Team verteilt werden. Für Updates müssen MariaDB und PHP jedoch externe Repositories verbinden.

Als ich Nextcloud kennenlernte, habe ich es „von Hand“ aktualisiert: Die Website wurde von einem speziellen Team über die Konsole in den Wartungsmodus versetzt, das Archiv mit der neuen Version der Website wurde manuell heruntergeladen und entpackt, die Dateien wurden aktualisiert und der Aktualisierungsvorgang wurde gestartet. Ein solches Update führte normalerweise zu den erwarteten Ergebnissen, obwohl ich nicht faul war, eine Sicherungskopie der Site, der Datenbank und der Benutzerdaten zu erstellen. Aber automatische Updates führten manchmal zu allerlei Überraschungen. Aber es ist lange her, dass die Stabilität des Motors seitdem stark zugenommen hat, und dieses Mal habe ich Updates ausschließlich über das Webinterface durchgeführt. Es war zwar immer noch nicht möglich, die Befehlszeile zu verlassen. Während eines iterativen Updates für jede neue Version werden in der Systemsteuerung verschiedene Warnungen und Benachrichtigungen angezeigt, die durch sinnvolle Ausführung von Befehlen in der Befehlszeile "entfernt" werden müssen. Sie können dies nicht tun - der Dienst wird trotzdem funktionieren. Obwohl dieser Ansatz grundsätzlich falsch ist, hat Nextcloud in diesem Modus 3 Monate lang für mich gearbeitet, bevor ich die aufgetretenen Probleme absichtlich aussortierte.



Debain-Update


Stoppen Sie den Webserver:

# service apache2 stop 

Und aktualisiert:

 # apt-get update # apt-get dist-upgrade 

Nach dem Update können Sie die Betriebssystemversion überprüfen und einen Neustart durchführen, um sicherzustellen, dass nach dem Update alles normal startet:

 # cat /etc/debian_version # reboot 



PHP Update auf Version 7.2


Stoppen Sie den Webserver:

 # service apache2 stop 

Zertifikats- und PPA-Schlüssel hinzufügen, PHP-Repository:

 # apt install ca-certificates apt-transport-https # wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add - # echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list 

Wenn Sie die alte Version von PHP 7.0 löschen, wird auch phpmyadmin gelöscht, da wir die "Spuren" aus den entfernten Paketen mit autoremove bereinigen. Dies wird keine großen Schwierigkeiten bereiten, da für phpmyadmin keine speziellen Einstellungen vorgenommen wurden und eine erneute Installation kein Problem darstellt.

 # apt-get purge php7* # apt-get --purge autoremove # apt-get update # apt-get install php7.2 phpmyadmin 

Installieren der für Nextcloud 17 erforderlichen Module:

 # apt-get install php7.2-mysql php7.2-curl php7.2-xml php7.2-gd php7.2-json php7.2-mbstring php7.2-zip php7.2-intl # apt-get install php-memcached php-apcu php-redis php-imagick 

[ Dieser Text wurde speziell für habr.com von AlexanderS geschrieben .
Der Link zur Quelle ist optional, aber sein Verweis ist sehr wünschenswert! ]

Wir überprüfen die Version von PHP, starten den Webserver und prüfen die Funktionsfähigkeit von Nextcloud:

 # php -v # service apache2 start 



Aktualisieren Sie MariaDB auf Version 10.4


Die Projektwebsite enthält eine interessante Seite, auf der Sie Ihr Betriebssystem und seine Version angeben und die Datenbankversion auswählen können. Nach der Auswahl wird Code generiert, um das Repository hinzuzufügen.

Stoppen Sie den Webserver:

 # service apache2 stop 

Repository hinzufügen und Pakete aktualisieren:

 # apt-get install software-properties-common dirmngr # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 # add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.mirror.iweb.com/repo/10.4/debian stretch main' # apt-get update 

Bei der Installation von MariaDB löscht der Paketmanager die vorherige Version korrekt und installiert die neue, alle Datenbanken werden gespeichert. Es wird jedoch natürlich empfohlen, die Nextcloud-Datenbank zu sichern.

Installieren Sie MariaDB und führen Sie den Update-Vorgang aus:

 # apt-get install mariadb-server # mysql_upgrade u root -p 

Nach Eingabe des Passworts wird MariaDB aktualisiert und kann gemäß den Anweisungen im zweiten Teil konfiguriert werden:

 # mysql_secure_installation 

Wir starten den Webserver und überprüfen die Leistung von Nextcloud:

 # service apache2 start 



Nextcloud Update auf Version 17


Um das Update zu starten, müssen Sie sich unter einem administrativen Eintrag beim Dienst anmelden, die Einstellungen vornehmen und im administrativen Bereich die „Allgemeinen Einstellungen“ öffnen. Nextcloud zeigt die installierte Version und die zum Aktualisieren verfügbare Version an, die durch Klicken auf die Schaltfläche "Update-Fenster öffnen" gestartet werden können. Nach dem Start erstellt Nextcloud ein Backup, lädt die Aktualisierungsdateien herunter und prüft ihre Integrität, aktiviert den Wartungsmodus und aktualisiert die Dateien. Was folgt aus der Frage „Wartungsmodus aktiv halten“? Sie müssen hier vorsichtig sein. Bei einer positiven Antwort wird die Site im Wartungsmodus belassen. Es wird davon ausgegangen, dass der Administrator weiß, was als Nächstes zu tun ist, und dass dies manuell erfolgt. Andernfalls erledigt Nextcloud alles selbst. Klicken Sie auf "Nein", um fortzufahren.

Updates werden iterativ durchgeführt. Nextcloud 13.x wird zuerst auf die neueste Version des 14.x-Zweigs aktualisiert. Danach müssen Sie zum Admin Center zurückkehren und das Update starten, jetzt von 14.x auf 15.x. Und so weiter, bis die letztmögliche aktuelle Version erreicht ist. Nach jeder Aktualisierung wird auf der Seite Allgemeine Einstellungen im Verwaltungsbereich eine Liste mit Vorschlägen und Problemen sowie Empfehlungen zu deren Behebung angezeigt. Im Folgenden wird erläutert, was nach jedem Update zu tun ist.

Vor dem Update

In neueren Versionen von Nextcloud wird empfohlen, PHP OPcache zu aktivieren, um die Leistung zu verbessern. Es ist seltsam, dass ich diesen Moment vor ein paar Jahren irgendwie verpasst habe, seitdem OPcache in PHP 5 erschienen ist. In /etc/php/7.2/apache2/php.ini müssen Sie die folgenden Parameter auskommentieren und bearbeiten:

 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 

Aktualisieren Sie 13.x -> 14.x

Wir stellen die Indizes der Tabellen wieder her:

 # sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices 

Aktualisieren Sie 14.x -> 15.x

Vorbereiten der nextcloud-Datenbank zum Aktivieren der Vier-Byte-Codierung:

 # mysql -u root -p MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; MariaDB [(none)]> quit 

Aktivieren Sie die Unterstützung für die Vier-Byte-Codierung in Nextcloud:

 # sudo -u www-data php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true" 

Wir transformieren Tabellen:

 # sudo -u www-data php /var/www/nextcloud/occ maintenance:repair 

Verlorene Tabellenindizes wiederherstellen:

 # sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices 

Tabellenindizes zu Bigint konvertieren:

 # sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint 

Update 15.x -> 16.x.

Verlorene Tabellenindizes wiederherstellen:

 # sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices 

Tabellenindizes zu Bigint konvertieren:

 # sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint 

Aktualisieren Sie 16.x -> 17.x.

Es sind keine weiteren Maßnahmen erforderlich.



Nachwort



Nach dieser Anweisung wurde die virtuelle Maschine mit Nextcloud 13 aktualisiert.Mit der virtuellen Maschine können Sie Nextcloud-Dateien und deren Datenbank nicht sichern, da Sie bei Problemen einfach die zuvor gespeicherte virtuelle Maschinendatei zurückgeben und von vorne beginnen können. Dies gilt jedoch nicht für den Benutzerdatenordner, den ich auch für das Sichern mit der virtuellen Nextcloud-Maschine empfehle. In meinem Fall wird die "Cloud" als Remote-Ordner mit automatischer Versionierung verwendet, außerdem mit der Synchronisationsrichtung "nur dort", und für mich war der Verlust dieser Daten nicht kritisch - ich müsste nur für einige Stunden erneut synchronisieren. Obwohl ich die in meinem Leben festgelegte Regel "Bleib auf der sicheren Seite" missachtet habe, verlief das Update reibungslos und alle Kunden verdienten problemlos Geld mit Nextcloud 17. Ich bin beeindruckt, Frank Karlitshek - Sie und Ihr Team leisten hervorragende Arbeit!

Nach dem Update habe ich mich entschlossen, die Benutzerdaten zu bereinigen, was laut Statistik zwei Terabyte gekostet hat. Ich hatte nicht so viele Betriebsdaten - der größte Teil des Volumes war mit Versionsdateien und gelöschten Dateien belegt. Das Problem, auf das ich gestoßen bin, war, dass für einen Benutzer so viele Daten gelöscht wurden (es ist nicht einmal das Volumen, sondern die Menge - viele kleine Dateien), dass Nextcloud sie nicht auf der Weboberfläche anzeigen konnte. Nach dem Studium der Administrationsanleitung fand ich die Lösung über die Befehlszeile. Vielleicht ist dies für jemanden nützlich.

So löschen Sie gelöschte Dateien des Benutzers user:

 # sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup user 

So löschen Sie Benutzerversionsdateien:

 # sudo -u www-data php /var/www/nextcloud/occ versions:cleanup user 



Zurück zum Anfang, zum Inhaltsverzeichnis .



Die Entstehungsgeschichte einer Home Cloud. Teil 5. Aktualisierung 2019 - PHP 7.2, MariaDB 10.4 und Nextcloud 17
Textversion: 1.1.1.
Datum der Erstveröffentlichung: 15.01.2020.
Zuletzt bearbeitet: 15.01.2020.

Protokoll aktualisieren
1.1.1 [15-01-2020]
Tippfehlerbehebung.

1.1.0 [15-01-2020]
Der Code zum Vorbereiten der Nexcloud-Datenbank zum Aktivieren der Vier-Byte-Codierung wurde behoben.

1.0.0 [15-01-2020]
Erste Version.

Source: https://habr.com/ru/post/de483842/


All Articles