For two years ago, I published a series of articles on creating a web server based on Debian 8 and running the Nextcloud 11 service on it. A few months later, an update appeared containing "differential" information on installing Nextcloud 13 on Debian 9. At the end of 2018, I simply updated Debian and Nextcloud without encountering any unusual or interesting problems. The update at the end of 2019 was more interesting and worth writing about.

This article will primarily be useful for those who followed the instructions from the last four articles to set up Nextcloud 13 on Debian 9 (a shout-out to my ten subscribers on the topic of Nextcloud, especially to those for whom this was their first experience in the world of Linux). For those who plan to build the service from scratch, I recommend using the first four articles in this series with adjustments for the current versions of Debian 10 and Nextcloud 17. For experienced Linux users, the article may be somewhere between "trivial and pointless" and "not bad, a cheat sheet in one place."
Indholdsfortegnelse
Quick navigation through the chapter
Forord
Originally, I wanted to install and configure Nginx on Debian 10, on top of which the current Nextcloud 17 could be installed without issues. However, I couldn't find the time for all of this, so this article serves as a set of instructions for updating Nextcloud from 13 to the latest version 17 with preliminary preparation of the web server.
For starters, it is necessary to explain why radical changes on the web server side were required. Our server is based on the current and supported Debian 9. You can simply update the operating system, and all components of the web server will receive at least security updates. Everything would be great if we continued using Nextcloud 13 or upgraded only to version 14. However, Nextcloud 13 is no longer supported, and support for version 14 is 'on its last legs.' Starting from version 15, Nextcloud will offer to convert the database to big int for four-byte encoding support, and this will be quite problematic with MariaDB 10.1. Nextcloud 17 requires PHP versions 7.1-7.3, while Debian 9 in its native repositories only contains version 7.0. From a reliability and predictability standpoint, it would be more appropriate to upgrade to the penultimate version of Nextcloud, but over the past couple of years, I have become so confident in the reliability of this service that I wanted to upgrade to the latest version and update the web server with a view to the future. Therefore, to upgrade to Nextcloud 17, it is optimal to update MariaDB to the current stable version 10.4 and PHP to 7.2. Specifically 7.2, and not the current 7.4. This is because Nextcloud 13 requires PHP 5.6, 7.0-7.2, and Nextcloud 17 requires PHP 7.1-7.3. Using PHP 7.2 is convenient for minimizing update actions. The Apache server will not need to be updated; it is sufficient to install the security updates provided by the Debian support team. However, for updates to MariaDB and PHP, it will be necessary to utilize external repositories.
Da jeg fĂžrst blev bekendt med Nextcloud, opdaterede jeg det "manuelt": med en speciel kommando i konsollen blev hjemmesiden sat i vedligeholdelsestilstand, arkivet med den nye version blev downloadet og udpakket, filer blev opdateret, og opdateringsproceduren blev kĂžrt. Denne opdateringsmetode fĂžrte typisk til forventede resultater, selvom jeg ikke forsĂžmte at lave en backup af hjemmesiden, databasen og brugerdata. Men automatisk opdatering fĂžrte nogle gange til forskellige overraskelser. Men det var lĂŠnge siden, stabiliteten i motoren er steget betydeligt siden da, og denne gang foretog jeg opdateringer udelukkende gennem webgrĂŠnsefladen. Dog kunne jeg stadig ikke undslippe kommandolinjen. Under iterativ opdatering vil der komme forskellige advarsler og meddelelser i kontrolpanelet for hver ny version, som skal "fjernes" ved meningsfuldt at udfĂžre kommandoer i kommandolinjen. Man kan vĂŠlge ikke at gĂžre det â tjenesten vil stadig fungere. Selvom denne tilgang er forkert, fungerede min Nextcloud i denne tilstand i 3 mĂ„neder, fĂžr jeg mĂ„lbevidst tog mig af de opstĂ„ede spĂžrgsmĂ„l.
Opdatering af Debian
Stop webserveren:
# service apache2 stop
Og vi opdaterer:
# apt-get update
# apt-get dist-upgrade
Efter opdateringen kan man kontrollere OS-versionen og lave en genstart for at sikre, at alt starter korrekt efter opdateringen:
# cat /etc/debian_version
# reboot
Updating PHP to version 7.2
Stop webserveren:
# service apache2 stop
TilfĂžjer certifikat og PPA-nĂžgler, PHP-repositoriet:
# 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
NÄr den gamle version af PHP 7.0 fjernes, vil phpmyadmin ogsÄ blive fjernet, da vi vil rydde op i "sporene" fra de fjernede pakker ved at bruge autoremove. Dette vil ikke vÊre en sÊrlig udfordring, da der ikke blev foretaget nogen specielle indstillinger for phpmyadmin, og det vil ikke vÊre noget problem at installere det igen.
# apt-get purge php7*
# apt-get --purge autoremove
# apt-get update
# apt-get install php7.2 phpmyadmin
Installation af moduler, der er nĂždvendige for Nextcloud 17:
# 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
[ er skrevet specifikt til hjemmesiden af forfatteren .
Referencen til kilden er ikke obligatorisk, men det er meget Ăžnskeligt at nĂŠvne den! ]
Vi kontrollerer PHP-versionen, starter webserveren og tester Nextclouds funktionalitet:
# php -v
# service apache2 start
Updating MariaDB to version 10.4
PĂ„ projektets hjemmeside er der , hvor man skal angive sit operativsystem, dets version og vĂŠlge databasen. Efter valg vil der blive genereret en kode til at tilfĂžje repository.
Stop webserveren:
# service apache2 stop
TilfĂžjer repository og opdaterer pakkerne:
# 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
NÄr du installerer MariaDB, vil pakkehÄndteringen korrekt fjerne den tidligere version og installere den nye, mens alle databaser vil blive bevarlet. Det anbefales dog helt klart at lave en backup af Nextcloud-databasen.
Installerer MariaDB og starter opdateringsproceduren:
# apt-get install mariadb-server
# mysql_upgrade u root -p
Efter indtastning af adgangskoden vil MariaDB blive opdateret, og det vil vĂŠre muligt at konfigurere den ved at fĂžlge :
# mysql_secure_installation
Starter webserveren og kontrollerer funktionen af Nextcloud:
# service apache2 start
Updating Nextcloud to version 17
For at starte opdateringen skal du logge ind pĂ„ tjenesten med administrative rettigheder, navigere til indstillingerne og Ă„bne "Generelle indstillinger" i administrationsafsnittet. Nextcloud viser den installerede version og den version, der er tilgĂŠngelig for opdatering, som kan startes ved at trykke pĂ„ knappen "Ă bn opdateringsvinduet". Efter initiering laver Nextcloud en backup, downloader og kontrollerer integriteten af opdateringsfilerne, aktiverer vedligeholdelsestilstand og opdaterer filerne. Der vil derefter blive stillet et spĂžrgsmĂ„l: "SĂŠtte vedligeholdelsestilstand aktiv?" Her skal man vĂŠre opmĂŠrksom. Et positivt svar vil forlade webstedet i vedligeholdelsestilstandâdet antages, at administratoren ved, hvad der skal gĂžres herefter og vil gĂžre det manuelt. Ellers vil Nextcloud klare det hele selv, sĂ„ for at fortsĂŠtte trykker vi pĂ„ knappen "Nej".
Opdateringerne udfÞres iterativt. FÞrst vil Nextcloud 13.x opdateres til den nyeste version af 14.x. Efter dette skal man igen logge ind i admincentret og starte opdateringen, nu fra 14.x til 15.x. Og sÄdan fortsÊtter det, indtil den nyeste aktuelle version er opnÄet. Efter hver opdatering vil der pÄ siden "Generelle indstillinger" i administrationsafsnittet blive prÊsenteret en liste over forslag og opstÄede problemer samt anbefalinger til lÞsning af dem. Nedenfor vil vi tale om, hvad der skal gÞres efter hver opdatering.
FĂžr opdateringen
I de nyeste versioner af Nextcloud anbefales det at aktivere PHP OPcache for at forbedre ydelsen. Det er mÊrkeligt, at jeg pÄ en eller anden mÄde glemte dette for et par Är siden, da OPcache allerede blev introduceret i PHP 5. I /etc/php/7.2/apache2/php.ini skal fÞlgende parametre afkommenteres og redigeres:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
Opdatering 13.x -> 14.x
Genskaber tabelindekser:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Opdatering 14.x -> 15.x
Vi forbereder Nextcloud-database til aktivering af firebyte-tegnsĂŠttet:
# mysql -u root -p
MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> quit
Vi aktiverer firebyte-tegnsĂŠtstĂžtte i Nextcloud:
# sudo -u www-data php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
Vi konverterer tabeller:
# sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
Vi genopretter mistede tabelindekser:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Vi konverterer tabelindekser til bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Opgradering 15.x -> 16.x
Vi genopretter mistede tabelindekser:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Vi konverterer tabelindekser til bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Opgradering 16.x -> 17.x
Ingen yderligere handlinger er nĂždvendige.
Efterord
FĂžlgende vejledning har opgraderet en virtuel maskine med Nextcloud 13. Brug af en virtuel maskine tillader ikke at tage backup af Nextcloud-filer og databasen, da man i tilfĂŠlde af problemer blot kan gendanne en tidligere gemt fil af den virtuelle maskine og starte forfra. Dette gĂŠlder dog ikke for mappen med brugerdata, som jeg ogsĂ„ anbefaler at tage backup af sammen med den virtuelle maskine med Nextcloud. I mit tilfĂŠlde bruges 'skyen' som en fjernmappe med automatisk versionering, med synkroniseringsretning 'kun dertil', og tabet af disse data var ikke kritisk â det ville bare tage mig nogle timer at synkronisere igen. PĂ„ trods af min ligegyldighed overfor den livslede regel 'gem nu for en sikkerheds skyld', gik opgraderingen uden problemer, og alle klienter fungerede uden problemer med Nextcloud 17. Jeg er imponeret, Frank Karlitschke â du og dit team gĂžr et fremragende stykke arbejde!
Efter opgraderingen besluttede jeg mig for at rydde op i brugerdataene, som ifĂžlge statistikken fyldte nĂŠsten to terabyte. Jeg havde ikke sĂ„ mange aktive data â stĂžrstedelen af volumen var optaget af versionsfiler og slettede filer. Problemet, jeg stĂždte pĂ„, var, at for Ă©n bruger var der sĂ„ mange slettede data (det handlede ikke engang om volumen, men om antallet â virkelig mange smĂ„filer), at Nextcloud ikke kunne vise dem i webgrĂŠnsefladen. Efter at have studeret administrationsvejledningen fandt jeg en lĂžsning via kommandolinjen. MĂ„ske kan nogen fĂ„ gavn af det.
For at rydde op i slettede filer for brugeren user:
# sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup user
For at rydde op i versionsfiler for brugeren user:
# sudo -u www-data php /var/www/nextcloud/occ versions:cleanup userGĂ„ tilbage .
Historien om oprettelsen af et hjemmecloud. Del 5. Aktualisering 2019 â PHP 7.2, MariaDB 10.4 og Nextcloud 17.
Tekstversion: 1.1.1.
Dato for fĂžrste offentliggĂžrelse: 15.01.2020.
Dato for seneste redigering: 15.01.2020.
Opdateringslog1.1.1 [15-01-2020]
Reparation af trykfejl.
1.1.0 [15-01-2020]
Koden til forberedelse af Nextcloud-database for aktivering af firebyte-tegnsĂŠttet er blevet rettet.
1.0.0 [15-01-2020]
FĂžrste version.
Kilde: habr.com
