Koduse pilve loomise ajalugu. Osa 5. Uuendamine 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17

Kaks aastat tagasi avaldasin mitmeid artikleid teemal, kuidas luua veebiserver, mis pÔhineb Debian 8-l, ja kÀivitada selle peal Nextcloud 11 teenus. MÔne kuu pÀrast ilmus tÀiendav teave Nextcloud 13 installimise kohta Debian 9-l. 2018. aasta lÔpus uuendasin lihtsalt Debianit ja Nextcloudi ning ei pidanud silmitsi seisma ebatavaliste vÔi huvitavate probleemidega. 2019. aasta lÔpus oli uuendamine juba huvitavam ja sellest tasub kirjutada.

Koduse pilve loomise ajalugu. Osa 5. Uuendamine 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17

See artikkel on eelkĂ”ige kasulik neile, kes on varasemate nelja artikli juhiste abil loonud Nextcloud 13 Debian 9-l (saadan tervitusi kĂŒmnele minu jĂ€lgijale Nextcloudi teemal, eriti neile, kelle jaoks see oli esimene kogemus Linuxi maailmas). Neile, kes plaanivad teenust nullist alustada, soovitan esimese nelja artikli pĂ”hjal vĂ”tta arvesse uusimaid versioone Debian 10-st ja Nextcloud 17-st. Kogenud Linuxi kasutajatele vĂ”ib artikkel jÀÀda kuhugi „triviaalne ja kasututu“ ning „pĂ€ris hea, kĂ”ik ĂŒhes koondatud sĂ”nastik“ vahele.

Sisukord

Osa 1. Debian keskkonna seadistamine igapÀevaseks kasutamiseks
Osa 2. Serveri loomine – LAMP seadistamine Debiani
Osa 3. Isikliku pilve loomine – Nextcloudi installimine ja seadistamine
Osa 4. Uuendamine 2018 – Debian 9 ja Nextcloud 13
Osa 5. Uuendamine 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17

Kiire navigeerimine peatĂŒkis

EessÔna
Debiani uuendamine
PHP uuendamine versioonile 7.2
MariaDB uuendamine versioonile 10.4
Nextcloudi uuendamine versioonile 17
JÀrelsÔna

EessÔna

Algul tahtsin Debiani 10-sse paigaldada ja seadistada Nginxi, mille peale oleks probleemideta paigaldatud uusim Nextcloud 17. Kuid selleks ei Ônnestunud mul aega leida, seetÔttu on see artikkel juhiste kogumik Nextcloudi uuendamiseks versioonilt 13 versioonile 17, eeldades veebiserveri ettevalmistust.

Esialgu tuleb selgitada, miks olid veebiserveri kĂŒljel vajalikud radikaalsed muudatused. Meie server pĂ”hineb kaasaegsel ja toetataval Debian 9-l. Saame lihtsalt operatsioonisĂŒsteemi uuendada ja kĂ”ik veebiserveri komponendid saavad vĂ€hemalt turvauuendusi. KĂ”ik oleks suurepĂ€rane, kui jĂ€tkaksime Nextcloud 13 kasutamist vĂ”i uuendaksime ainult versioonile 14. Kuid Nextcloud 13 ei ole juba enam toetatav ning 14. versiooni tugi on „lĂ”pusirgel“. Alates 15. versioonist hakkab Nextcloud pakkuma andmebaasi muutmist big int-iks, et toetada nelja baitilist kodeeringut, ja MariaDB 10.1 abil on see ĂŒsna problemaatiline. Nextcloud 17 nĂ”uab PHP-d 7.1-7.3, samas kui Debian 9 oma alusrepodeis sisaldab ainult versiooni 7.0. UsaldusvÀÀrsuse ja ennustatavuse mĂ”ttes oleks Ă”igem uuendada eelmisele versioonile Nextcloud, kuid mĂ”ne aastaga olen saanud jĂ€lle veenduda selle teenuse usaldusvÀÀrsuses, et soovisime uuendada viimasele versioonile ja uuendada veebiserverit tulevikku silmas pidades. SeetĂ”ttu on Nextcloud 17-ks uuendamiseks optimaalseks MariaDB uuendamine viimasele stabiilsele versioonile 10.4 ning PHP uuendamine versioonile 7.2. Just 7.2, mitte viimase 7.4. Asja Ă€rakiri on see, et Nextcloud 13 nĂ”uab PHP-d 5.6, 7.0 – 7.2, ja Nextcloud 17 nĂ”uab PHP-d 7.1 – 7.3. Siin on mugav kasutada PHP 7.2, et minimeerida uuendustegevusi. Apache-serveri uuendamine ei ole vajalik — piisab, kui paigaldada turvauuendused, mida annab Debian. Aga MariaDB ja PHP uuendamiseks on vajalikud vĂ€lised repositooriumid.

Kui ma alles tutvusin Nextcloudiga, uuendasin seda „kĂ€sitsi“: konsoolist spetsiaalse kĂ€suga viidi sait hooldusse, laadisin kĂ€sitsi alla ja pakkisin vĂ€lja uue versiooni arhiivi, uuendati faile ja kĂ€ivitati uuendusprotseduur. Selline uuendamine andis tavaliselt oodatud tulemusi, kuigi ma ei unustanud teha varukoopiaid saidist, andmebaasist ja kasutajate andmetest. Kuid automaatne uuendamine tĂ”i mĂ”nikord mitmesuguseid ĂŒllatusi. Kuid see oli ammu, mootori stabiilsus on sellest ajast vĂ€ga tĂ”usnud ja seekord tegin uuendusi ainult veebiliidese kaudu. Kuid kĂ€skude realt ei suutnud ma siiski kĂ”rvale hoida. Iteratiivse uuendamise kĂ€igus ilmuvad iga uue versiooniga juhtpaneelile erinevad hoiatused ja teated, mida tuleb „eemaldada“, tĂ€ites arusaadavalt kĂ€ske kĂ€sureas. VĂ”ib ka mitte teha — teenus töötab ikkagi. Kuigi selline lĂ€henemine on pĂ”himĂ”tteliselt vale, töötas minu Nextcloud sellises reĆŸiimis 3 kuud enne, kui hakkasin sihipĂ€raselt tegelema tekkinud kĂŒsimustega.

Debiani uuendamine

Peatame veebiserveri:

# service apache2 stop


Ja uuendame:

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


PĂ€rast uuendamist saab kontrollida operatsioonisĂŒsteemi versiooni ja teha kontrollrehhaali, et veenduda, et kĂ”ik töötab pĂ€rast uuendamist normaalselt:

# cat /etc/debian_version
# reboot


PHP uuendamine versioonile 7.2

Peatame veebiserveri:

# service apache2 stop


Lisame PPA sertifikaadi ja vÔtmed, PHP repositooriumi:

# 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


Kuna vana PHP 7.0 versiooni eemaldamisel eemaldatakse ka phpmyadmin, siis 'jÀljed' eemaldatud pakettidest puhastame autoremove kÀsu abil. See ei valmista erilisi raskusi, kuna phpmyadmin'i jaoks ei olnud mingeid erilisi seadistusi tehtud ja selle taasinstallimine ei valmista mingeid probleeme.

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


Nextcloud 17 jaoks vajalike moodulite installimine:

# 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


[ See tekst on kirjutatud spetsiaalselt veebilehe jaoks habr.com autorilt AlexanderS.
Viitega allika juurde pole kohustuslik, kuid selle mainimine on vÀga soovitatav!

Kontrollime PHP versiooni, kÀivitame veebi serveri ja kontrollime Nextcloud'i töökindlust:

# php -v
# service apache2 start


MariaDB uuendamine versioonile 10.4

Projektilehel on huvitav leht, kus tuleb mÀrkida oma OS, selle vÀljalase ja valida andmebaasi versioon. PÀrast valimist genereeritakse kood repositooriumi lisamiseks.

Peatame veebiserveri:

# service apache2 stop


Lisame repositooriumi ja uuendame paketid:

# 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


MariaDB installimisel eemaldab pakihaldur korrektselt eelmise versiooni ja installib uue, kÔik andmebaasid jÀÀvad alles. Siiski on soovitatav varundada Nextcloud'i andmebaas.

Installime MariaDB ja kÀivitame tÀiendamise protseduuri:

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


PÀrast MariaDB parooli sisestamist toimub uuendamine ja seda saab konfigureerida, jÀrgides teise osa juhiseid:

# mysql_secure_installation


KÀivitame veebi serveri ja kontrollime Nextcloud'i töökindlust:

# service apache2 start


Nextcloudi uuendamine versioonile 17

Uuendamise alustamiseks tuleb autoriseeruda teenuses administraatori kontoga, minna seadistustesse ja avada 'Üldseaded' administratiivosas. Nextcloud nĂ€itab paigaldatud versiooni ja versiooni, mis on kĂ€ttesaadav uuendamiseks, mida saab kĂ€ivitada, vajutades nuppu 'Ava uuendamisaken'. PĂ€rast algatamist teeb Nextcloud varukoopia, laadib alla ja kontrollib uuendusfailide terviklikkust, aktiveerib hooldusreĆŸiimi ja uuendab faile. Edasi tuleb kĂŒsimus 'Hoia hooldusreĆŸiim aktiivne'? Siin tuleb olla ettevaatlik. Jah vastus jĂ€tab saidi hooldusreĆŸiimi — eeldatakse, et administraator teab, mis edasi teha ja teeb seda kĂ€sitsi. Vastasel juhul teeb Nextcloud kĂ”ik ise, seega vajutame nuppu 'Ei' jĂ€tkamiseks.

Uuendused toimuvad iteratiivselt. Esiteks uuendatakse Nextcloud 13.x versioon ÀÀrmise 14.x versioonini. PĂ€rast seda tuleb uuesti siseneda adminikeskusesse ja kĂ€ivitada uuendamine, seekord 14.x versioonist 15.x versioonini. Ja nii edasi, kuni saavutatakse viimane vĂ”imalik versioon. Iga uuenduse jĂ€rel avaneb administratiivosas lehe 'Üldseaded' all nimekiri soovitustest ja tekkinud probleemidest ning soovitustest nende lahendamiseks. Allpool rÀÀgime, mida tuleb teha pĂ€rast iga uuendamist.

Enne uuendamist

Viimastes Nextcloud'i versioonides on soovitatav aktiveerida PHP OPcache, et parandada töötluse kiirus. Imelik, et selle asja ma paar aastat tagasi unustasin, kuna OPcache ilmus juba PHP 5-s. Failis /etc/php/7.2/apache2/php.ini tuleb vÀlja kommenteerida ja redigeerida jÀrgmisi parameetreid:

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


Uuendus 13.x -> 14.x

Taastame tabelite indeksid:

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


Uuendus 14.x -> 15.x

Valmistame ette nextcloud'i andmebaasi nelja baitise kodeerimise jaoks:

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


LĂŒlitame sisse nelja baitise kodeerimise toetuse Nextcloud'is:

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


Tabelid konverteeritakse:

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


Kadunud tabelite indeksid taastatakse:

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


Tabelite indeksid konverteeritakse bigint:

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


Uuendus 15.x -> 16.x

Kadunud tabelite indeksid taastatakse:

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


Tabelite indeksid konverteeritakse bigint:

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


Uuendus 16.x -> 17.x

TĂ€iendavaid toiminguid ei ole vajalik.

JÀrelsÔna

Selle juhendi kohaselt uuendati virtuaalmasinat, kus oli Nextcloud 13. Virtuaalmasina kasutamine vĂ€listab Nextcloud'i failide ja andmebaasi varundamise vajaduse, kuna probleemide korral saab lihtsalt tagastada eelnevalt salvestatud virtuaalmasina faili ja alustada kĂ”ike otsast peale. Siiski ei kehti see kasutaja andmete kausta, mida soovitan samuti varundada koos Nextcloud'i virtuaalmasinaga. Minu puhul kasutatakse 'pilve' kui kaugkausta automaatversioonimisega, suunaga 'ainult sinna', ning nende andmete kadumine ei oleks kriitiline — oleks lihtsalt pidanud mitu tundi uuesti sĂŒnkroonima. Hoolimata minu hooletusest elust vĂ€ljakujunenud reegli 'salvesta igaks juhuks' vastu, kulges uuendamine probleemideta ja kĂ”ik kliendid töötasid samamoodi probleemideta Nextcloud 17-ga. Olen muljet avaldanud, Frank Karlitschke — teie ja teie meeskond teete suurepĂ€rast tööd!

PĂ€rast vĂ€rskendust otsustasin puhastada kasutajaandmed, mis statistika kohaselt vĂ”tsid peaaegu kaks terabaiti ruumi. Mul polnud nii palju aktiivseid andmeid — suurem osa mahust koosnes versioonifailidest ja kustutatud failidest. Probleem, millega ma silmitsi seisnud, oli see, et ĂŒhe kasutaja kustutatud andmeid oli nii palju (kĂŒsimus ei olnud isegi mahus, vaid just koguses — vĂ€ga palju vĂ€ikeseid faile), et Nextcloud ei suutnud neid veebiliideses kuvada. PĂ€rast halduskĂ€siraamatu uurimist leidsin lahenduse kĂ€surealt. VĂ”ib-olla on sellest kellelegi abi.

Kustutatud failide puhastamiseks kasutaja user:

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


Versioonifailide puhastamiseks kasutaja user:

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

Naasta algusesse, sisukorda.

Koduse pilve loomise ajalugu. Osa 5. Uuendamine 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17
Teksti versioon: 1.1.1.
Esimese avaldamise kuupÀev: 15.01.2020.
Viimase muudatuse kuupÀev: 15.01.2020.

Uuenduste logi1.1.1 [15-01-2020]
TrĂŒkivigade parandamine.

1.1.0 [15-01-2020]
Parandatud nexcloudi andmebaasi ettevalmistamise kood neljabaidilise kodeeringu lubamiseks.

1.0.0 [15-01-2020]
Esimene versioon.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster