Twee jaar geleden publiceerde ik een reeks artikelen over het maken van een webserver gebaseerd op Debian 8 en het lanceren van de Nextcloud 11-service erop. Een paar maanden later verscheen een addendum met "afwijkende" informatie over het installeren van Nextcloud 13 op Debian 9. Eind 2018 heb ik de update uitgevoerd. Debian Ik heb Nextcloud gebruikt en ben geen ongebruikelijke of interessante problemen tegengekomen. De update van eind 2019 was interessanter en het waard om over te schrijven.

Dit artikel is vooral nuttig voor diegenen die, aan de hand van de instructies in de vorige vier artikelen, Nextcloud 13 zelf hebben "geïnstalleerd". Debian 9 (Ik stuur groeten aan mijn tien abonnees over het onderwerp Nextcloud, in het bijzonder aan degenen voor wie dit de eerste ervaring ter wereld was) LinuxVoor degenen die van plan zijn de dienst helemaal zelf op te bouwen, raad ik aan de eerste vier artikelen in deze reeks als basis te gebruiken, met aanpassingen voor de huidige versies. Debian 10 en Nextcloud 17. Voor gevorderde gebruikers Linux Het artikel bevindt zich wellicht ergens tussen "triviaal en nutteloos" en "niet slecht, een handig spiekbriefje in één".
inhoudsopgave
Snelle hoofdstuknavigatie
Voorwoord
Aanvankelijk wilde ik Debian 10. Installeer en configureer Nginx, wat zonder problemen de nieuwste Nextcloud 17 zou ondersteunen. Ik had hier echter geen tijd voor, dus dit artikel is een handleiding voor het upgraden van Nextcloud van versie 13 naar de nieuwste versie 17, inclusief de voorbereidende stappen voor de webserver.
Allereerst moeten we uitleggen waarom er ingrijpende veranderingen aan de serverzijde nodig waren. Onze server is gebaseerd op een actuele en ondersteunde technologie. Debian 9. U kunt eenvoudig het besturingssysteem bijwerken, waarna alle webservercomponenten ten minste beveiligingsupdates ontvangen. Alles zou prima zijn als we Nextcloud 13 bleven gebruiken of alleen naar versie 14 zouden upgraden. Nextcloud 13 wordt echter niet langer ondersteund en de ondersteuning voor versie 14 neemt af. Vanaf versie 15 biedt Nextcloud de mogelijkheid om de database naar big int te converteren ter ondersteuning van vier-byte-codering, wat met MariaDB 10.1 zeer problematisch zal zijn. Nextcloud 17 vereist PHP 7.1-7.3, terwijl Debian Nextcloud 9 bevat alleen versie 7.0 in de eigen repositories. De juiste oplossing, qua betrouwbaarheid en voorspelbaarheid, zou zijn om te upgraden naar de voorlaatste versie van Nextcloud, maar de afgelopen paar jaar heb ik zoveel vertrouwen gekregen in de betrouwbaarheid van de service dat ik wilde upgraden naar de nieuwste versie en de webserver wilde updaten voor de toekomst. Om te upgraden naar Nextcloud 17 is het daarom optimaal om MariaDB te upgraden naar de huidige stabiele versie 10.4 en PHP naar 7.2. Specifiek 7.2, niet de huidige 7.4. Nextcloud 13 vereist namelijk PHP 5.6, 7.0 vereist 7.2 en Nextcloud 17 vereist PHP 7.1-7.3. Het gebruik van PHP 7.2 is handig om de upgrade-inspanning te minimaliseren. Je hoeft de Apache-server niet te updaten; het is voldoende om de beveiligingsupdates te installeren die door het supportteam worden verspreid. DebianVoor MariaDB- en PHP-updates moet u echter verbinding maken met externe repositories.
Toen ik net kennis maakte met Nextcloud, heb ik het “met de hand” bijgewerkt: met behulp van een speciaal commando van de console werd de site overgeschakeld naar de onderhoudsmodus, het archief met de nieuwe versie van de site werd handmatig gedownload en uitgepakt, de bestanden zijn bijgewerkt en de updateprocedure is gestart. Zo'n update leidde meestal tot de verwachte resultaten, al was ik niet lui in het maken van een back-up van de site, database en gebruikersgegevens. Maar automatische updates leidden soms tot allerlei verrassingen. Maar dat is lang geleden, de stabiliteit van de engine is sindsdien enorm toegenomen en deze keer heb ik updates uitsluitend via de webinterface aangebracht. Toegegeven, ik kon nog steeds niet wegkomen van de opdrachtregel. Tijdens een iteratieve update van elke nieuwe versie verschijnen er verschillende waarschuwingen en meldingen in het controlepaneel, die moeten worden “verwijderd” door zinvol opdrachten uit te voeren op de opdrachtregel. U hoeft dit niet te doen: de service werkt nog steeds. Hoewel deze aanpak fundamenteel verkeerd is, heeft Nextcloud drie maanden voor mij in deze modus gewerkt voordat ik doelbewust de problemen aanpakte die zich voordeden.
Debain-update
Stop de webserver:
# service apache2 stop
En wij updaten:
# apt-get update
# apt-get dist-upgrade
Na de update kunt u de versie van het besturingssysteem controleren en een herstarttest uitvoeren om er zeker van te zijn dat alles normaal start na de update:
# cat /etc/debian_version
# reboot
PHP updaten naar versie 7.2
Stop de webserver:
# service apache2 stop
Certificaat en PPA-sleutels toevoegen, 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
Bij het verwijderen van de oude versie van PHP 7.0 wordt phpmyadmin ook verwijderd, omdat we de “sporen” van de verwijderde pakketten zullen wissen met behulp van autoremove. Dit zal geen bijzondere problemen veroorzaken, aangezien er geen speciale instellingen zijn gemaakt voor phpmyadmin en het opnieuw installeren ervan geen problemen zal opleveren.
# apt-get purge php7*
# apt-get --purge autoremove
# apt-get update
# apt-get install php7.2 phpmyadmin
Modules installeren die nodig zijn voor 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
[ speciaal voor de site geschreven door de auteur .
Een link naar de bron is optioneel, maar het vermelden ervan wordt sterk aanbevolen! ]
We controleren de PHP-versie, starten de webserver en controleren de functionaliteit van Nextcloud:
# php -v
# service apache2 start
MariaDB upgraden naar versie 10.4
Op de projectwebsite staat , waar u uw besturingssysteem en de release ervan moet aangeven en de databaseversie moet selecteren. Eenmaal geselecteerd, wordt de code voor het toevoegen van de repository gegenereerd.
Stop de webserver:
# service apache2 stop
Voeg een repository toe en update pakketten:
# 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
Bij het installeren van MariaDB zal de pakketbeheerder de vorige versie correct verwijderen en de nieuwe installeren, terwijl alle databases behouden blijven. Het is echter uiteraard aan te raden om een reservekopie te maken van de Nextcloud-database.
Installeer MariaDB en start de updateprocedure:
# apt-get install mariadb-server
# mysql_upgrade u root -p
Nadat u het wachtwoord hebt ingevoerd, wordt MariaDB bijgewerkt en kunt u dit als volgt configureren :
# mysql_secure_installation
We starten de webserver en controleren de functionaliteit van Nextcloud:
# service apache2 start
Nextcloud updaten naar versie 17
Om de update te starten, moet u inloggen op de service onder een beheerdersaccount, naar instellingen gaan en 'Algemene instellingen' openen in het administratieve gedeelte. Nextcloud toont de geïnstalleerde versie en de versie die beschikbaar is voor update, die kan worden gestart door op de knop “Open update-venster” te klikken. Eenmaal gestart, maakt Nextcloud een back-up, downloadt en verifieert de integriteit van de updatebestanden, schakelt de onderhoudsmodus in en werkt de bestanden bij. Vervolgens komt de vraag “Onderhoudsmodus actief houden”? Je moet hier voorzichtig zijn. Bij een positief antwoord blijft de site in de onderhoudsmodus staan. Er wordt aangenomen dat de beheerder weet wat hij vervolgens moet doen en dit handmatig zal doen. Anders doet Nextcloud alles zelf, dus klik op de knop “Nee” om door te gaan.
Updates worden iteratief uitgevoerd. Eerst wordt Nextcloud 13.x bijgewerkt naar de nieuwste versie van de 14.x-tak. Hierna moet u opnieuw naar het beheercentrum gaan en de update starten, nu van 14.x naar 15.x. En zo verder totdat de laatst mogelijke huidige versie is bereikt. Na elke update wordt op de pagina "Algemene instellingen" in het administratieve gedeelte een lijst met suggesties en problemen weergegeven, evenals aanbevelingen om deze op te lossen. Hieronder zullen we bespreken wat er na elke update moet gebeuren.
Voor update
Op de nieuwste versies van Nextcloud wordt aanbevolen om PHP OPcache in te schakelen om de prestaties te verbeteren. Het is vreemd dat ik dit punt een paar jaar geleden op de een of andere manier heb gemist, sinds OPcache in PHP 5 verscheen. In /etc/php/7.2/apache2/php.ini moet je de commentaar verwijderen en de volgende parameters bewerken:
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
Update 13.x -> 14.x
Tabelindexen herstellen:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Update 14.x -> 15.x
We bereiden de nextcloud-database voor om codering van vier bytes mogelijk te maken:
# mysql -u root -p
MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> quit
Ondersteuning inschakelen voor codering van vier bytes in Nextcloud:
# sudo -u www-data php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
Tabellen converteren:
# sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
Verloren tabelindexen herstellen:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Converteer tabelindexen naar bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Update 15.x -> 16.x
Verloren tabelindexen herstellen:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Converteer tabelindexen naar bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Update 16.x -> 17.x
Er is geen aanvullende actie vereist.
nawoord
Door deze instructies te volgen, werd een virtuele machine bijgewerkt met Nextcloud 13. Als u een virtuele machine gebruikt, kunt u geen back-upkopieën maken van Nextcloud-bestanden en de database ervan, omdat u in geval van problemen eenvoudig het eerder opgeslagen virtuele machinebestand kunt retourneren en helemaal opnieuw kunt beginnen opnieuw. Dit geldt echter niet voor de map met gebruikersgegevens, waarvan ik ook aanbeveel om samen met de virtuele machine een back-up te maken met Nextcloud. In mijn geval wordt de “cloud” gebruikt als een externe map met automatisch versiebeheer, en met de synchronisatierichting “alleen daar”, en het verliezen van deze gegevens was niet van cruciaal belang voor mij - ik zou de synchronisatie gewoon een paar uur opnieuw moeten doen . Ondanks dat ik de levenslange regel 'opslaan voor het geval dat' niet in acht nam, verliep de update zonder problemen en gingen alle klanten zonder problemen aan de slag met Nextcloud 17. Ik ben onder de indruk, Frank Karlitshek - jij en je team doen het geweldig functie!
Na de update besloot ik de gebruikersgegevens te wissen, die, afgaande op de statistieken, ongeveer twee terabytes in beslag namen. Ik had niet zoveel operationele gegevens - het grootste deel van het volume werd in beslag genomen door versiebestanden en verwijderde bestanden. Het probleem dat ik tegenkwam was dat er voor één gebruiker zoveel verwijderde gegevens waren (het is niet eens een kwestie van volume, maar kwantiteit - veel kleine bestanden) dat Nextcloud deze niet in de webinterface kon weergeven. Na het bestuderen van de beheerhandleiding vond ik een oplossing via de opdrachtregel. Misschien is dit nuttig voor iemand.
Om verwijderde gebruikersbestanden te wissen:
# sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup user
Gebruikersversiebestanden wissen:
# sudo -u www-data php /var/www/nextcloud/occ versions:cleanup userTerugkeer .
De geschiedenis van de creatie van een thuiswolk. Deel 5. Update 2019 – PHP 7.2, MariaDB 10.4 en Nextcloud 17
Tekstversie: 1.1.1.
Datum eerste publicatie: 15.01.2020-XNUMX-XNUMX.
Laatste wijzigingsdatum: 15.01.2020-XNUMX-XNUMX.
Logboek bijwerken1.1.1 [15-01-2020]
Typfouten corrigeren.
1.1.0 [15-01-2020]
De code voor het voorbereiden van de Nexcloud-database is aangepast om vier-byte-codering mogelijk te maken.
1.0.0 [15-01-2020]
Первая версия.
Bron: www.habr.com
