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

Kaks aastat tagasi avaldasin artiklite tsĂŒkli teemal veebiserveri loomine Debian 8-l ja Nextcloud 11 teenuse kĂ€ivitamine sellel. Paari kuu pĂ€rast ilmus tĂ€iendus, mis sisaldas «diferentsiaalset» teavet Nextcloud 13 installimise kohta Debian 9-l. 2018. aasta lĂ”puks vĂ€rskendasin ma lihtsalt Debianit ja Nextcloudi ega kohanud mingeid ebatavalisi vĂ”i huvitavaid probleeme. 2019. aasta lĂ”pu vĂ€rskendus oli juba huvitavam ja sellest tasus kirjutada.

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

See artikkel on eelkĂ”ige kasulik neile, kes koostasid varasemate nelja artikli pĂ”hjal oma Nextcloud 13 Debian 9-l (edastan tervitused kĂŒmnele minu Nextcloud'i valdkonna tellijale, eriti neile, kelle jaoks oli see esimene kogemus Linuxi maailmas). Neile, kes kavatsevad teenust nullist luua, soovitan vĂ”tta aluseks selle tsĂŒkli esimesed neli artiklit, muutes need vastavaks praegustele versioonidele Debian 10 ja Nextcloud 17. Kogemustega Linuxi kasutajate jaoks vĂ”ib artikkel jÀÀda mingisse kohta «triviaalne ja kasutu» ja «pĂ€ris hea, ĂŒhes kohas kokkuvĂ”te».

Sisukord

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

Kiire navigeerimine peatĂŒkis

EessÔna
Debiani vÀrskendamine
PHP vÀrskendamine versioonini 7.2
MariaDB vÀrskendamine versioonini 10.4
Nextcloudi vÀrskendamine versioonini 17
EessÔna

EessÔna

Algusest peale tahtsin Debian 10 peale seadistada ja installida Nginxi, mille peale oleks probleemideta installitud ka praegune Nextcloud 17. Kuid kogu selle jaoks ei leidnud ma aega, seetÔttu esindab see artikkel juhiste kogumit Nextcloudi vÀrskendamiseks versioonist 13 praegusele versioonile 17 eelneva veebiserveri ettevalmistusega.

Esmaltuseks on vaja selgitada, miks serveri poolel on radikaalsed muutused vajalikud. Meie server pĂ”hineb uusimal ja toetatud Debian 9-l. OperaSystemi ja kĂ”ikide veebiserveri komponente saab lihtsalt uuendada, et vĂ€hemalt turvaparandused oleksid olemas. KĂ”ik oleks suurepĂ€rane, kui jĂ€tkaksime Nextcloud 13 kasutamist vĂ”i uuendaksime ainult versioonile 14. Kuid Nextcloud 13 ei ole enam toetatud ja 14. versiooni toetus on lĂ”ppemas. Alates 15. versioonis pakub Nexctcloud andmebaasi muutmist big int-iks neljabaidise kodeeringu toetamiseks ja MariaDB 10.1-s on see ÀÀrmiselt keeruline. Nexctcloud 17 nĂ”uab PHP 7.1-7.3, samas kui Debian 9 sisaldab oma pĂ”hirepositooriumides ainult versiooni 7.0. TĂ”eliselt Ă”igem oleks, arvestades usaldusvÀÀrsust ja prognoositavust, uuendada enneviimasele Nextcloud versioonile, kuid paar aastat olen ma saanud nii kindlaks selle teenuse usaldusvÀÀrsuses, et soovin uuendada viimasele versioonile ja uuendada veebiserverit tulevikku silmas pidades. SeetĂ”ttu on Nexctcloud 17 uuendamiseks optimaalne vĂ€rskendada MariaDB praegusele stabiilsele versioonile 10.4 ja PHP-le 7.2. TĂ€pselt 7.2, mitte praegusele 7.4. Asi on selles, et Nextcloud 13 nĂ”uab PHP 5.6, 7.0-7.2, ja Nexctcloud 17 vajab PHP 7.1-7.3. PHP 7.2 kasutamine on mugav uuendustegevuse minimeerimise eesmĂ€rgil. Apache serverit ei pea uuendama — piisab Debian'i tugimeeskonna vĂ€lja antud turvaparanduste installimisest. Kuid MariaDB ja PHP uuendamiseks tuleb kasutada vĂ€liseid reposiitore.

Kui ma Nextcloudiga tutvust tegin, uuendasin seda kĂ€sitsi: konsoolist spetsiaalse kĂ€suga viidi sait hooldusreĆŸiimi, seejĂ€rel laadisin kĂ€sitsi alla ja pakkisin vĂ€lja uue versiooni arhiivi, uuendati faile ja kĂ€ivitati uuendamisprotseduur. Selline uuendamine viis tavaliselt oodatud tulemusteni, kuigi ma ei unustanud teha saitidest, andmebaasidest ja kasutajate andmetest varukoopiaid. Kuid automaatne uuendamine tĂ”i mĂ”nikord igasuguseid ĂŒllatusi. Kuid see oli ammu, toote stabiilsus on sellest ajast palju paranenud ja seekord tegin uuendusi ainult veebiliidese kaudu. TĂ”si, kĂ€surealt ei Ă”nnestunud siiski kĂ”rvale hiilida. Iteratiivse uuendamise kĂ€igus ilmub iga uue versiooni puhul juhtpaneelile erinevaid hoiatavaid teateid ja teateid, mida tuleb

Debiani uuendamine

Seisame veebiserveri:

# service apache2 stop


Ja uuendame:

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


PĂ€rast uuendamist saab kontrollida operatsioonisĂŒsteemi versiooni ja teha kontrollperioodi taaskĂ€ivitamise, et veenduda, et pĂ€rast uuendamist kĂ€ivitub kĂ”ik normaalselt:

# cat /etc/debian_version
# reboot


PHP vÀrskendamine versioonini 7.2

Seisame veebiserveri:

# service apache2 stop


Lisame sertifikaadi ja PPA vÔtmised, 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


Vana versiooni PHP 7.0 eemaldamisel eemaldatakse ka phpmyadmin, kuna eemaldatud paketidest „jÀÀnustega“ tegeleme autoremove abil. See ei tekita erilisi raskusi, kuna phpmyadmini jaoks ei ole tehtud spetsiaalseid seadistusi 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 saidile habr.com autorilt AlexanderS.
Allika link ei ole kohustuslik, kuid selle mainimine on vÀga soovitatav! ]

Kontrollime PHP versiooni, kÀivitame veebiserveri ja kontrollime Nextcloudi tööd:

# php -v
# service apache2 start


MariaDB vÀrskendamine versioonini 10.4

Projektilehel on huvitav leht, kus tuleb mĂ€rkida oma opsĂŒsteem, selle vĂ€ljaanne ja valida andmebaasi versioon. PĂ€rast valimist genereeritakse kood repositooriumi lisamiseks.

Seisame veebiserveri:

# service apache2 stop


Lisame repositooriumi ja uuendame pakette:

# 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


Kui MariaDB installitakse, eemaldab pakihaldur korrektselt eelmise versiooni ja installib uue, kÔik andmebaasid jÀÀvad alles. Siiski on soovitatav teha varukoopia Nextcloudi andmebaasist.

Installime MariaDB ja kÀivitame uuendamisprotsessi:

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


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

# mysql_secure_installation


KĂ€ivitame veebiserveri ja kontrollime Nextcloudi toimivust:

# service apache2 start


Nextcloudi vÀrskendamine versioonini 17

Uuendamise kĂ€ivitamiseks peab teenusele sisenema administraatori kontoga, minema seadistustesse ja avama "Üldseaded" administraatori osas. Nextcloud nĂ€itab installitud versiooni ja versiooni, mis on uuendamiseks saadaval, mida saab alustada, vajutades nuppu "Avage uuendamisakna". PĂ€rast algatamist teeb Nextcloud varukoopia, laadib alla ja kontrollib uuendusteadete failide terviklikkust, aktiveerib hooldusreĆŸiimi ja uuendab faile. SeejĂ€rel kĂŒsitakse: "Kas hoida hooldusreĆŸiim aktiivne?" Siin tuleb olla ettevaatlik. Positiivne vastus jĂ€tab saidi hooldusreĆŸiimi — eeldatakse, et administraator teab, mida edasi teha, ja teeb seda kĂ€sitsi. Vastasel juhul teeb Nextcloud kĂ”ik ise, seega vajutame jĂ€tkamiseks nuppu "Ei".

Uuendused toimuvad iteratiivselt. Esiteks uuendatakse Nextcloud 13.x viimaseks versiooniks 14.x. PĂ€rast seda tuleb uuesti adminnakeskusesse siseneda ja kĂ€ivitada uuendamine, nĂŒĂŒd juba 14.x versioonilt 15.x versioonile. Ja nii edasi, kuni saavutatakse viimane vĂ”imalik versioon. Iga uuendamise jĂ€rel kuvatakse "Üldseaded" lehe administraatori osas soovituste ja tekkivate probleemide nimekiri, samuti soovitused nende lahendamiseks. Edasi rÀÀgitakse sellest, mida tuleb teha pĂ€rast iga uuendamist.

Enne uuendamist

Viimastel versioonidel on Nextcloudis soovitatav lubada PHP OPcache, et parandada jÔudlust. Imelik, et ma selle punkte paar aastat tagasi tÀhelepanuta jÀtsin, kuna OPcache ilmus juba PHP 5-s. Failis /etc/php/7.2/apache2/php.ini tuleb jÀrgmised parameetrid lahti kommenteerida ja redigeerida:

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


Uuendamine 13.x -> 14.x

Taastame tabelite indeksid:

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


Uuendamine 14.x -> 15.x

Valmistame Nextcloud'i andmebaasi nelja baitise kodeeringu aktiveerimiseks:

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


Aktiveerime nelja baitise kodeeringu toe Nextcloud'is:

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


Muudame tabelid:

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


Taastame kadunud tabeli indeksid:

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


Muudame tabeli indeksid bigint-iks:

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


Uuendamine 15.x -> 16.x

Taastame kadunud tabeli indeksid:

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


Muudame tabeli indeksid bigint-iks:

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


Uuendamine 16.x -> 17.x

Lisategevusi ei vajata.

EessÔna

Selle juhendi kohaselt uuendati virtuaalmasinat Nextcloud 13-lt. Virtuaalmasina kasutamine vĂ”imaldab mitte teha varukoopiaid Nextcloud'i failidest ja andmebaasist, kuna probleemide korral saab lihtsalt taastada eelnevalt salvestatud virtuaalmasina faili ja alustada alates algusest. Kuid see ei kehti kasutajaandmete kausta kohta, mille samuti soovitan varundada koos Nextcloud'i virtuaalmasinaga. Minu puhul kasutatakse 'pilve' kaugkaustana automaatse versioonimisega, kus sĂŒnkroniseerimise suund on 'ainult sinna', ja nende andmete kaotus ei oleks kriitiline — oleks lihtsalt pidanud paar tundi uuesti sĂŒnkroniseerima. Hoolimata minu tĂ€helepanuta jĂ€tmisest elu reegli 'salvesta varuks' osas, lĂ€ks uuendamine probleemideta ja kĂ”ik kliendid töötasid probleemideta Nextcloud 17-ga. Olen muljetavaldatud, Frank Karlitschek — sina ja sinu meeskond teete suurepĂ€rast tööd!

PĂ€rast uuendamist otsustasin puhastada kasutajaandmed, mis statistika jĂ€rgi vĂ”tsid ligi kaks terabaiti. Mul ei olnud nii palju operatiivandmeid — enamik mahtudest oli versioonifailide ja kustutatud failide tĂ”ttu. Probleem, millega ma kokku puutusin, oli see, et ĂŒhel kasutajal oli kustutatud andmeid nii palju (kĂŒsitav ei ole mitte maht, vaid just see, et neid oli vĂ€ga palju vĂ€ikeseid faile), et Nextcloud ei suutnud neid veebiliideses kuvada. PĂ€rast haldusuuringute juhendi uurimist leidsin lahenduse kĂ€surea kaudu. VĂ”ib-olla on see kellelegi kasulik.

Kustutamiseks kasutaja user kustutatud failid:

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


Kustutamiseks kasutaja user versioonifailid:

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

Tagasi algusesse, sisukorda.

Koduse pilve loomise ajalugu. Osa 5. Aktuaalsus 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17
Teksti versioon: 1.1.1.
Esitluse kuupÀev: 15.01.2020.
Viimase redaktsiooni kuupÀev: 15.01.2020.

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

1.1.0 [15-01-2020]
Parandatud valmis kood nelja baitise kodeeringu aktiveerimiseks Nextcloud'i andmebaasis.

1.0.0 [15-01-2020]
Esimene versioon.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster