Povijest stvaranja kućnog oblaka. Dio 5. Ažuriranje 2019. – PHP 7.2, MariaDB 10.4 i Nextcloud 17

Prije dvije godine objavio sam seriju članaka na temu kreiranja web poslužitelja temeljenog na Debianu 8 i pokretanja usluge Nextcloud 11 na njemu. Nekoliko mjeseci kasnije pojavio se dodatak koji sadrži “diferencijalne” informacije o instalaciji Nextclouda 13 na Debianu 9. Krajem 2018. upravo sam ažurirao Debian i Nextcloud i nisam naišao na neobične ili zanimljive probleme. Ažuriranje krajem 2019. već je bilo zanimljivije i vrijedno pisanja.

Povijest stvaranja kućnog oblaka. Dio 5. Ažuriranje 2019. – PHP 7.2, MariaDB 10.4 i Nextcloud 17

Ovaj članak će prije svega biti koristan onima koji su prema uputama prethodna četiri članka “sklopili” Nextcloud 13 na Debianu 9 (pozdravljam desetak svojih pretplatnika na temu Nextcloud, posebno onima za koje ovo je bilo njihovo prvo iskustvo u svijetu Linuxa). Za one koji planiraju stvoriti uslugu od nule, savjetujem vam da kao osnovu uzmu prva četiri članka ove serije, prilagođene trenutnim verzijama Debiana 10 i Nextclouda 17. Za iskusne korisnike Linuxa, članak može potrajati mjesto između "trivijalnog i beskorisnog" i "nije loše, sve na jednom mjestu varalice".

pregled sadržaja

Dio 1: Postavljanje Debian okruženja za svakodnevnu upotrebu
Dio 2: Stvaranje poslužitelja - postavljanje LAMP-a na Debianu
Dio 3. Stvaranje osobnog oblaka - instalacija i konfiguracija Nextclouda
Dio 4. Ažuriranje 2018 – Debian 9 i Nextcloud 13
Dio 5. Ažuriranje 2019. – PHP 7.2, MariaDB 10.4 i Nextcloud 17

Brza navigacija po poglavljima

predgovor
Debian ažuriranje
Ažuriranje PHP-a na verziju 7.2
Nadogradnja MariaDB na verziju 10.4
Ažuriranje Nextclouda na verziju 17
pogovor

predgovor

U početku sam želio instalirati i konfigurirati Nginx na Debianu 10, povrh kojeg se bez problema može instalirati trenutni Nextcloud 17. Ali nisam mogao naći vremena za sve to, pa je ovaj članak skup uputa za ažuriranje Nextcloud od 13 do trenutne verzije 17 uz preliminarnu pripremu web poslužitelja.

Prvo, moramo objasniti zašto su bile potrebne radikalne promjene na strani web poslužitelja. Naš poslužitelj se temelji na trenutnom i podržanom Debianu 9. Možete jednostavno ažurirati operativni sustav i sve komponente web poslužitelja dobit će barem sigurnosna ažuriranja. Sve bi bilo super kada bismo nastavili koristiti Nextcloud 13 ili ažurirali samo na verziju 14. Ali Nextcloud 13 više nije podržan, a podrška za 14. verziju je na izlasku. Počevši od verzije 15, Nexctcloud će ponuditi pretvaranje baze podataka u big int kako bi podržao kodiranje od četiri bajta, a s MariaDB 10.1 to će biti vrlo problematično. Nexctcloud 17 zahtijeva PHP 7.1-7.3, dok Debian 9 sadrži samo verziju 7.0 u svojim izvornim spremištima. Bilo bi ispravnije, u smislu pouzdanosti i predvidljivosti, nadograditi na pretposljednju verziju Nextclouda, no nakon par godina postao sam toliko uvjeren u pouzdanost ove usluge da sam htio nadograditi na zadnju verziju i ažurirati web poslužitelj s rezervom za budućnost. Stoga je za ažuriranje na Nexctcloud 17 optimalno ažurirati MariaDB na trenutnu stabilnu verziju 10.4, a PHP na 7.2. Upravo 7.2, a ne sadašnji 7.4. Činjenica je da Nextcloud 13 zahtijeva PHP 5.6, 7.0 - 7.2, a Nexctcloud 17 zahtijeva PHP 7.1 - 7.3. Pogodno je koristiti PHP 7.2 kako bi se smanjio napor ažuriranja. Nema potrebe ažurirati vaš Apache poslužitelj - samo instalirajte sigurnosna ažuriranja koja distribuira Debian tim za podršku. Ali za ažuriranja MariaDB i PHP morat ćete povezati vanjska spremišta.

Kad sam se tek upoznao s Nextcloudom, ažurirao sam ga "ručno": pomoću posebne naredbe s konzole, stranica je prebačena u način održavanja, arhiva s novom verzijom stranice ručno je preuzeta i raspakirana, datoteke su ažurirani i pokrenut je postupak ažuriranja. Takvo ažuriranje obično je dovodilo do očekivanih rezultata, iako nisam bio lijen u izradi sigurnosne kopije web mjesta, baze podataka i korisničkih podataka. Ali automatska ažuriranja ponekad su dovela do raznih iznenađenja. Ali to je bilo davno, stabilnost motora se od tada jako povećala, a ovaj put sam vršio ažuriranja isključivo preko web sučelja. Istina, još uvijek nisam mogao pobjeći od naredbenog retka. Tijekom iterativnog ažuriranja na svaku novu verziju, na upravljačkoj ploči pojavit će se različita upozorenja i obavijesti koje će trebati “ukloniti” smislenim izvršavanjem naredbi u naredbenom retku. Ne morate to učiniti - usluga će i dalje raditi. Iako je ovaj pristup u osnovi pogrešan, Nextcloud je za mene radio u ovom načinu rada 3 mjeseca prije nego što sam se namjerno pozabavio problemima koji su se pojavili.

Debain ažuriranje

Zaustavite web poslužitelj:

# service apache2 stop


I ažuriramo:

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


Nakon ažuriranja možete provjeriti verziju OS-a i ponovno pokrenuti test kako biste bili sigurni da se sve normalno pokreće nakon ažuriranja:

# cat /etc/debian_version
# reboot


Ažuriranje PHP-a na verziju 7.2

Zaustavite web poslužitelj:

# service apache2 stop


Dodaj certifikat i PPA ključeve, PHP repozitorij:

# 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


Prilikom brisanja stare verzije PHP-a 7.0 izbrisat će se i phpmyadmin jer ćemo „tragove“ izbrisanih paketa izbrisati pomoću autoremove-a. To neće uzrokovati nikakve posebne poteškoće, budući da nisu napravljene posebne postavke za phpmyadmin i ponovno instaliranje neće biti problema.

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


Instaliranje modula potrebnih za 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


[ Ovaj tekst napisano posebno za stranicu www.habr.com Autor AlexanderS.
Poveznica na izvor nije obavezna, no navođenje je vrlo preporučljivo! ]

Provjeravamo PHP verziju, pokrećemo web server i provjeravamo funkcionalnost Nextclouda:

# php -v
# service apache2 start


Nadogradnja MariaDB na verziju 10.4

Na web stranici projekta postoji zanimljiva stranica, gdje trebate navesti svoj OS, njegovo izdanje i odabrati verziju baze podataka. Nakon odabira, generira se kod za dodavanje repozitorija.

Zaustavite web poslužitelj:

# service apache2 stop


Dodajte spremište i ažurirajte 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


Prilikom instalacije MariaDB-a, upravitelj paketa će pravilno ukloniti prethodnu verziju i instalirati novu, a sve baze će biti sačuvane. No, preporuča se naravno napraviti sigurnosnu kopiju Nextcloud baze podataka.

Instalirajte MariaDB i pokrenite postupak ažuriranja:

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


Nakon unosa lozinke, MariaDB će se ažurirati i možete je konfigurirati slijedeći upute iz drugog dijela:

# mysql_secure_installation


Pokrećemo web poslužitelj i provjeravamo funkcionalnost Nextclouda:

# service apache2 start


Ažuriranje Nextclouda na verziju 17

Da biste pokrenuli ažuriranje, morate se prijaviti na uslugu pod administrativnim računom, otići na postavke i otvoriti “Opće postavke” u administrativnom dijelu. Nextcloud prikazuje instaliranu verziju i verziju dostupnu za ažuriranje, koje se može pokrenuti klikom na gumb "Otvori prozor ažuriranja". Nakon što se pokrene, Nextcloud izrađuje sigurnosnu kopiju, preuzima i provjerava integritet ažuriranih datoteka, uključuje način rada za održavanje i ažurira datoteke. Slijedi pitanje "Ostaviti mod održavanja aktivnim"? Ovdje morate biti oprezni. Pozitivan odgovor ostavit će stranicu u načinu održavanja - pretpostavlja se da administrator zna što treba učiniti sljedeće i da će to učiniti ručno. U suprotnom, Nextcloud će sve učiniti sam, pa kliknite gumb "Ne" za nastavak.

Ažuriranja se izvode iterativno. Prvo, Nextcloud 13.x bit će ažuriran na najnoviju verziju grane 14.x. Nakon ovoga morat ćete ponovno otići u administrativni centar i pokrenuti ažuriranje, sada s 14.x na 15.x. I tako dalje dok se ne dođe do zadnje moguće trenutne verzije. Nakon svakog ažuriranja, na stranici “Opće postavke” u administrativnom dijelu, prikazat će se popis prijedloga i problema na koje ste naišli, kao i preporuke za njihovo rješavanje. U nastavku ćemo govoriti o tome što treba učiniti nakon svakog ažuriranja.

Prije ažuriranja

Na najnovijim verzijama Nextclouda preporučuje se omogućiti PHP OPcache za poboljšanje performansi. Čudno je da mi je ovo nekako promaklo prije nekoliko godina, otkako se OPcache pojavio u PHP-u 5. U /etc/php/7.2/apache2/php.ini morate odkomentirati i urediti sljedeće parametre:

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


Ažuriranje 13.x -> 14.x

Vraćanje indeksa tablice:

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


Ažuriranje 14.x -> 15.x

Pripremamo nextcloud bazu podataka za omogućavanje četverobajtnog kodiranja:

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


Omogućite podršku za kodiranje od četiri bajta u Nextcloudu:

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


Tablice pretvaranja:

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


Oporavak izgubljenih indeksa tablice:

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


Pretvorite indekse tablice u bigint:

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


Ažuriranje 15.x -> 16.x

Oporavak izgubljenih indeksa tablice:

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


Pretvorite indekse tablice u bigint:

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


Ažuriranje 16.x -> 17.x

Nije potrebna nikakva dodatna radnja.

pogovor

Slijedeći ove upute ažuriran je virtualni stroj s Nextcloudom 13. Korištenje virtualnog stroja omogućuje vam da ne izrađujete sigurnosne kopije Nextcloud datoteka i njegove baze podataka, budući da u slučaju problema možete jednostavno vratiti prethodno spremljenu datoteku virtualnog stroja i krenuti ispočetka opet. Međutim, to se ne odnosi na mapu s korisničkim podacima, koju također preporučujem sigurnosno kopirati zajedno s virtualnim strojem uz Nextcloud. U mom slučaju, "oblak" se koristi kao udaljena mapa s automatskim određivanjem verzija i sa smjerom sinkronizacije "samo tamo", a gubitak tih podataka nije bio kritičan za mene - samo bih morao ponovo izvršiti sinkronizaciju nekoliko sati . Unatoč mom nepoštivanju doživotnog pravila "sačuvaj za svaki slučaj", ažuriranje je prošlo bez ikakvih problema i svi su klijenti bez ikakvih problema počeli raditi s Nextcloudom 17. Impresioniran sam, Frank Karlitshek - ti i tvoj tim radite sjajno posao!

Nakon ažuriranja odlučio sam izbrisati korisničke podatke koji su, sudeći prema statistici, zauzimali oko dva terabajta. Nisam imao toliko operativnih podataka - većinu volumena zauzimale su datoteke verzija i izbrisane datoteke. Problem na koji sam naišao je da je za jednog korisnika bilo toliko obrisanih podataka (nije čak ni stvar u količini, već u količini - puno malih datoteka) da Nextcloud to nije mogao prikazati u web sučelju. Nakon što sam proučio priručnik za administraciju, pronašao sam rješenje putem naredbenog retka. Možda će ovo nekome biti od koristi.

Za brisanje izbrisanih korisničkih datoteka:

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


Za brisanje datoteka korisničke verzije:

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

Povratak na početak, na sadržaj.

Povijest stvaranja kućnog oblaka. Dio 5. Ažuriranje 2019. – PHP 7.2, MariaDB 10.4 i Nextcloud 17
Tekstna verzija: 1.1.1.
Datum prve objave: 15.01.2020.
Datum zadnjeg uređivanja: 15.01.2020.

Dnevnik ažuriranja1.1.1 [15-01-2020] Ispravak tipfelera.

1.1.0 [15-01-2020] Ispravljen kod za pripremu baze podataka nexcloud za omogućavanje kodiranja od četiri bajta.

1.0.0 [15-01-2020] Prva verzija.

Izvor: www.habr.com