Die Geschichte der Entstehung einer Home Cloud. Teil 5. Update 2019 – PHP 7.2, MariaDB 10.4 und Nextcloud 17

Vor zwei Jahren veröffentlichte ich eine Artikelserie zum Thema Erstellen eines Webservers auf Basis von Debian 8 und Ausführen des Nextcloud 11-Dienstes darauf. Einige Monate später erschien ein Zusatz mit „differenziellen“ Informationen zur Installation von Nextcloud 13 unter Debian 9. Ende 2018 habe ich gerade Debian und Nextcloud aktualisiert und bin auf keine ungewöhnlichen oder interessanten Probleme gestoßen. Das Update Ende 2019 war bereits interessanter und es lohnte sich, darüber zu schreiben.

Die Geschichte der Entstehung einer Home Cloud. Teil 5. Update 2019 – PHP 7.2, MariaDB 10.4 und Nextcloud 17

Dieser Artikel wird in erster Linie für diejenigen nützlich sein, die gemäß den Anweisungen der vorherigen vier Artikel Nextcloud 13 auf Debian 9 „zusammengebaut“ haben (ich grüße etwa ein Dutzend meiner Abonnenten zum Thema Nextcloud, insbesondere diejenigen, für die Dies war ihre erste Erfahrung in der Welt von Linux). Für diejenigen, die planen, einen Dienst von Grund auf neu zu erstellen, empfehle ich Ihnen, die ersten vier Artikel dieser Serie als Grundlage zu nehmen, angepasst an die aktuellen Versionen von Debian 10 und Nextcloud 17. Für erfahrene Linux-Benutzer kann der Artikel einiges dauern Platz zwischen „trivial und nutzlos“ und „nicht schlecht, All-in-One-Spickzettel“.

Inhaltsverzeichnis

Часть 1. Настройка среды Debian для повседневного использования
Teil 2: Einen Server erstellen – LAMP unter Debian einrichten
Teil 3. Erstellen einer persönlichen Cloud – Nextcloud installieren und konfigurieren
Teil 4. Update 2018 – Debian 9 und Nextcloud 13
Teil 5. Update 2019 – PHP 7.2, MariaDB 10.4 und Nextcloud 17

Schnelle Kapitelnavigation

Vorwort
Debian-Update
Aktualisierung von PHP auf Version 7.2
Upgrade von MariaDB auf Version 10.4
Aktualisierung von Nextcloud auf Version 17
Nachwort

Vorwort

Ursprünglich wollte ich Nginx unter Debian 10 installieren und konfigurieren, woraufhin sich problemlos das aktuelle Nextcloud 17 installieren ließ. Da ich für all das aber keine Zeit fand, handelt es sich bei diesem Artikel um eine Anleitung zum Update Nextcloud von 13 auf die aktuelle Version 17 mit einer vorläufigen Vorbereitung des Webservers.

Zunächst müssen wir erklären, warum radikale Änderungen auf der Webserverseite 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 weiterhin Nextcloud 13 verwenden oder nur auf Version 14 aktualisieren würden. Nextcloud 13 wird jedoch nicht mehr unterstützt und die Unterstützung für die 14. Version läuft aus. Ab Version 15 bietet Nexctcloud an, die Datenbank in Big Int zu konvertieren, um die Vier-Byte-Kodierung zu unterstützen, und mit MariaDB 10.1 wird dies sehr problematisch sein. Nexctcloud 17 erfordert PHP 7.1-7.3, während Debian 9 in seinen nativen Repositories nur Version 7.0 enthält. Im Hinblick auf Zuverlässigkeit und Vorhersehbarkeit wäre es richtiger, auf die vorletzte Version von Nextcloud zu aktualisieren, aber nach ein paar Jahren war ich von der Zuverlässigkeit dieses Dienstes so überzeugt, dass ich auf die neueste Version upgraden und die aktualisieren wollte Webserver mit einer Reserve für die Zukunft. Daher ist es für ein Update auf Nexctcloud 17 optimal, MariaDB auf die aktuelle stabile Version 10.4 und PHP auf 7.2 zu aktualisieren. Genau 7.2, nicht die aktuelle 7.4. Tatsache ist, dass Nextcloud 13 PHP 5.6, 7.0 – 7.2 und Nexctcloud 17 PHP 7.1 – 7.3 erfordert. Um den Update-Aufwand zu minimieren, ist es sinnvoll, PHP 7.2 zu verwenden. Sie müssen Ihren Apache-Server nicht aktualisieren – installieren Sie einfach die vom Debian-Supportteam verteilten Sicherheitsupdates. Für MariaDB- und PHP-Updates müssen Sie jedoch externe Repositorys anbinden.

Als ich Nextcloud gerade kennenlernte, habe ich es „von Hand“ aktualisiert: Mit einem speziellen Befehl von der Konsole wurde die Site in den Wartungsmodus geschaltet, das Archiv mit der neuen Version der Site wurde manuell heruntergeladen und entpackt, die Dateien wurden aktualisiert und der Update-Vorgang 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 das ist lange her, die Stabilität der Engine hat sich seitdem stark verbessert und ich habe Updates dieses Mal ausschließlich über das Webinterface vorgenommen. Es stimmt, ich konnte der Befehlszeile immer noch nicht entkommen. Während eines iterativen Updates auf jede neue Version werden in der Systemsteuerung verschiedene Warnungen und Benachrichtigungen angezeigt, die durch sinnvolles Ausführen von Befehlen in der Befehlszeile „entfernt“ werden müssen. Sie müssen dies nicht tun – der Dienst funktioniert weiterhin. Obwohl dieser Ansatz grundsätzlich falsch ist, hat Nextcloud bei mir 3 Monate in diesem Modus gearbeitet, bevor ich mich gezielt mit den aufgetretenen Problemen befasst habe.

Debain-Update

Stoppen Sie den Webserver:

# service apache2 stop


Und wir aktualisieren:

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


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

# cat /etc/debian_version
# reboot


Aktualisierung von PHP auf Version 7.2

Stoppen Sie den Webserver:

# service apache2 stop


Zertifikat 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


Beim Löschen der alten Version von PHP 7.0 wird auch phpmyadmin gelöscht, da wir mittels Autoremove die „Spuren“ aus den gelöschten Paketen löschen. Dies wird keine besonderen Schwierigkeiten bereiten, da keine besonderen Einstellungen für phpmyadmin vorgenommen wurden und eine erneute Installation keine Probleme bereiten wird.

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


Für Nextcloud 17 erforderliche Module installieren:

# 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 speziell für die Website geschrieben habr.com Autor AlexanderS.
Ein Link zur Quelle ist optional, die Nennung wird jedoch dringend empfohlen! ]

Wir prüfen die PHP-Version, starten den Webserver und überprüfen die Funktionalität von Nextcloud:

# php -v
# service apache2 start


Upgrade von MariaDB auf Version 10.4

Auf der Projektwebsite gibt es interessante Seite, wo Sie Ihr Betriebssystem und seine Version angeben und die Datenbankversion auswählen müssen. Nach der Auswahl wird der Code zum Hinzufügen des Repositorys generiert.

Stoppen Sie den Webserver:

# service apache2 stop


Fügen Sie ein Repository hinzu und aktualisieren Sie Pakete:

# 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 entfernt der Paketmanager korrekt die vorherige Version und installiert die neue, während alle Datenbanken erhalten bleiben. Allerdings empfiehlt es sich natürlich, eine Sicherungskopie der Nextcloud-Datenbank zu erstellen.

Installieren Sie MariaDB und starten Sie den Update-Vorgang:

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


Nach Eingabe des Passworts wird MariaDB aktualisiert und Sie können es wie folgt konfigurieren Anleitung aus Teil zwei:

# mysql_secure_installation


Wir starten den Webserver und prüfen die Funktionalität von Nextcloud:

# service apache2 start


Aktualisierung von Nextcloud auf Version 17

Um das Update zu starten, müssen Sie sich mit einem Administratorkonto beim Dienst anmelden, zu den Einstellungen gehen und im Verwaltungsbereich „Allgemeine Einstellungen“ öffnen. Nextcloud zeigt die installierte Version und die zum Update verfügbare Version an, die durch Klicken auf die Schaltfläche „Update-Fenster öffnen“ gestartet werden kann. Nach der Initiierung erstellt Nextcloud ein Backup, lädt die Aktualisierungsdateien herunter, überprüft deren Integrität, aktiviert den Wartungsmodus und aktualisiert die Dateien. Als nächstes kommt die Frage „Wartungsmodus aktiv halten“? Hier ist Vorsicht geboten. Bei einer positiven Antwort bleibt die Site im Wartungsmodus. Es wird davon ausgegangen, dass der Administrator weiß, was als Nächstes zu tun ist, und dies manuell tun wird. Andernfalls erledigt Nextcloud alles selbst. Klicken Sie daher auf die Schaltfläche „Nein“, um fortzufahren.

Aktualisierungen werden iterativ durchgeführt. Zunächst wird Nextcloud 13.x auf die neueste Version des 14.x-Zweigs aktualisiert. Danach müssen Sie erneut zum Admin Center gehen und das Update starten, nun von 14.x auf 15.x. Und so weiter, bis die letztmögliche aktuelle Version erreicht ist. Nach jedem Update wird auf der Seite „Allgemeine Einstellungen“ im Verwaltungsbereich eine Liste mit Vorschlägen und aufgetretenen Problemen sowie Empfehlungen zu deren Lösung angezeigt. Im Folgenden besprechen wir, was nach jedem Update zu tun ist.

Bis zum Update

Bei den neuesten Versionen von Nextcloud wird empfohlen, PHP OPcache zu aktivieren, um die Leistung zu verbessern. Es ist seltsam, dass ich diesen Punkt vor ein paar Jahren irgendwie übersehen habe, seit OPcache in PHP 5 erschien. 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

Tabellenindizes wiederherstellen:

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


Aktualisieren Sie 14.x -> 15.x

Wir bereiten die nextcloud-Datenbank vor, um die Vier-Byte-Kodierung zu ermöglichen:

# 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 Vier-Byte-Codierung in Nextcloud:

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


Tabellen konvertieren:

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


Wiederherstellen verlorener Tabellenindizes:

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


Tabellenindizes in Bigint konvertieren:

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


Aktualisieren Sie 15.x -> 16.x

Wiederherstellen verlorener Tabellenindizes:

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


Tabellenindizes in 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 diesen Anweisungen wurde eine virtuelle Maschine mit Nextcloud 13 aktualisiert. Durch die Verwendung einer virtuellen Maschine können Sie keine Sicherungskopien der Nextcloud-Dateien und ihrer Datenbank erstellen, da Sie bei Problemen einfach die zuvor gespeicherte Datei der virtuellen Maschine zurückgeben und von vorne beginnen können wieder. Dies gilt jedoch nicht für den Ordner mit den Benutzerdaten, den ich ebenfalls empfehle, zusammen mit der virtuellen Maschine mit Nextcloud zu sichern. In meinem Fall wird die „Cloud“ als Remote-Ordner mit automatischer Versionierung und mit der Synchronisierungsrichtung „nur dort“ verwendet, und der Verlust dieser Daten war für mich nicht kritisch – ich müsste die Synchronisierung nur mehrere Stunden lang erneut durchführen . Trotz meiner Missachtung der lebenslangen „Für alle Fälle speichern“-Regel verlief das Update problemlos und alle Kunden begannen problemlos mit Nextcloud 17 zu arbeiten. Ich bin beeindruckt, Frank Karlitshek – Sie und Ihr Team leisten großartige Arbeit Arbeit!

Nach dem Update habe ich beschlossen, die Benutzerdaten zu löschen, die den Statistiken zufolge etwa zwei Terabyte belegten. Ich hatte nicht so viele Betriebsdaten – der größte Teil des Datenträgers war mit Versionsdateien und gelöschten Dateien belegt. Das Problem, auf das ich gestoßen bin, war, dass für einen Benutzer so viele gelöschte Daten vorhanden waren (es ist nicht einmal die Menge, sondern die Menge – viele kleine Dateien), dass Nextcloud sie nicht in der Weboberfläche anzeigen konnte. Nachdem ich das Administrationshandbuch studiert hatte, fand ich eine Lösung über die Befehlszeile. Vielleicht ist das für jemanden nützlich.

So löschen Sie gelöschte Benutzerdateien:

# 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

Rückkehr Zum Anfang, zum Inhaltsverzeichnis.

Die Geschichte der Entstehung einer Home Cloud. Teil 5. Update 2019 – PHP 7.2, MariaDB 10.4 und Nextcloud 17
Textversion: 1.1.1.
Datum der Erstveröffentlichung: 15.01.2020.
Letztes Bearbeitungsdatum: 15.01.2020.

Protokoll aktualisieren1.1.1 [15] Korrektur von Tippfehlern.

1.1.0 [15] Der Vorbereitungscode für die Nexcloud-Datenbank wurde korrigiert, um die Vier-Byte-Codierung zu ermöglichen.

1.0.0 [15] Erste Version.

Source: habr.com