Historia e krijimit të një reje shtëpiake. Pjesa 5. Përditësimi 2019 – PHP 7.2, MariaDB 10.4 dhe Nextcloud 17

Dy vjet më parë, botova një seri artikujsh mbi temën e krijimit të një serveri në internet bazuar në Debian 8 dhe ekzekutimit të shërbimit Nextcloud 11 në të. Disa muaj më vonë, u shfaq një shtesë që përmban informacione "diferenciale" për instalimin e Nextcloud 13 në Debian 9. Në fund të 2018, sapo përditësova Debian dhe Nextcloud dhe nuk hasa ndonjë problem të pazakontë ose interesant. Përditësimi në fund të 2019 ishte tashmë më interesant dhe ia vlente të shkruhej.

Historia e krijimit të një reje shtëpiake. Pjesa 5. Përditësimi 2019 – PHP 7.2, MariaDB 10.4 dhe Nextcloud 17

Ky artikull do të jetë kryesisht i dobishëm për ata që, sipas udhëzimeve të katër artikujve të mëparshëm, "mblodhën" Nextcloud 13 në Debian 9 (u them përshëndetje rreth një duzinë prej pajtimtarëve të mi në temën e Nextcloud, veçanërisht për ata për të cilët kjo ishte përvoja e tyre e parë në botën e Linux). Për ata që planifikojnë të krijojnë një shërbim nga e para, ju këshilloj të merrni si bazë katër artikujt e parë të kësaj serie, të përshtatur për versionet aktuale të Debian 10 dhe Nextcloud 17. Për përdoruesit me përvojë të Linux, artikulli mund të marrë disa vendoseni mes "të parëndësishme dhe të padobishme" dhe "jo të keqe, fletë mashtrimi të gjitha në një vend".

Përmbajtje

Pjesa 1: Vendosja e një mjedisi Debian për përdorim të përditshëm
Pjesa 2: Krijimi i një serveri - konfigurimi i LAMP në Debian
Pjesa 3. Krijimi i një reje personale - instalimi dhe konfigurimi i Nextcloud
Pjesa 4. Përditësimi 2018 – Debian 9 dhe Nextcloud 13
Pjesa 5. Përditësimi 2019 – PHP 7.2, MariaDB 10.4 dhe Nextcloud 17

Navigim i shpejtë i kapitujve

Parathënie libri
Përditësimi i Debian
Përditësimi i PHP në versionin 7.2
Përmirësimi i MariaDB në versionin 10.4
Përditësimi i Nextcloud në versionin 17
pasthënje

Parathënie libri

Fillimisht doja të instaloja dhe konfiguroja Nginx në Debian 10, në krye të të cilit mund të instalohej pa problem Nextcloud 17 aktual. Por nuk gjeta kohën për të gjitha këto, kështu që ky artikull është një grup udhëzimesh për përditësimin Nextcloud nga 13 në versionin aktual 17 me një përgatitje paraprake të serverit në internet.

Së pari, ne duhet të shpjegojmë pse kërkoheshin ndryshime rrënjësore në anën e serverit të uebit. Serveri ynë bazohet në Debian 9 aktual dhe të mbështetur. Ju thjesht mund të përditësoni sistemin operativ dhe të gjithë komponentët e serverit në internet do të marrin të paktën përditësime sigurie. Gjithçka do të ishte mirë nëse do të vazhdonim të përdornim Nextcloud 13 ose të përditësonim vetëm në versionin 14. Por Nextcloud 13 nuk mbështetet më dhe mbështetja për versionin e 14-të është në përfundim. Duke filluar me versionin 15, Nexctcloud do të ofrojë konvertimin e bazës së të dhënave në big int për të mbështetur kodimin me katër bajt, dhe me MariaDB 10.1 kjo do të jetë shumë problematike. Nexctcloud 17 kërkon PHP 7.1-7.3, ndërsa Debian 9 përmban vetëm versionin 7.0 në depot e tij amtare. Do të ishte më e saktë, për sa i përket besueshmërisë dhe parashikueshmërisë, të përmirësohesha në versionin e parafundit të Nextcloud, por pas disa vitesh u bëra aq i sigurt në besueshmërinë e këtij shërbimi sa doja të përmirësoja në versionin më të fundit dhe të përditësoja server në internet me një rezervë për të ardhmen. Prandaj, për të përditësuar në Nexctcloud 17, është optimale të përditësoni MariaDB në versionin aktual të qëndrueshëm 10.4 dhe PHP në 7.2. Pikërisht 7.2, jo 7.4 aktual. Fakti është se Nextcloud 13 kërkon PHP 5.6, 7.0 - 7.2 dhe Nexctcloud 17 kërkon PHP 7.1 - 7.3. Është i përshtatshëm për të përdorur PHP 7.2 për të minimizuar përpjekjet për përditësimin. Nuk ka nevojë të përditësoni serverin tuaj Apache - thjesht instaloni përditësimet e sigurisë të shpërndara nga ekipi mbështetës i Debian. Por për përditësimet e MariaDB dhe PHP do të duhet të lidhni depo të jashtme.

Kur sapo po njihesha me Nextcloud, e përditësova "me dorë": duke përdorur një komandë të veçantë nga tastiera, faqja u kalua në modalitetin e mirëmbajtjes, arkivi me versionin e ri të faqes u shkarkua dhe shpaketua manualisht, skedarët u përditësuan dhe filloi procedura e përditësimit. Një përditësim i tillë zakonisht çoi në rezultatet e pritura, megjithëse nuk isha dembel për të bërë një kopje rezervë të faqes, bazës së të dhënave dhe të dhënave të përdoruesit. Por përditësimet automatike ndonjëherë çonin në lloj-lloj surprizash. Por kjo ishte shumë kohë më parë, qëndrueshmëria e motorit është rritur shumë që atëherë, dhe këtë herë bëra përditësime ekskluzivisht përmes ndërfaqes në internet. Vërtetë, unë ende nuk mund të largohesha nga vija e komandës. Gjatë një përditësimi përsëritës të çdo versioni të ri, në panelin e kontrollit do të shfaqen paralajmërime dhe njoftime të ndryshme, të cilat do të duhet të "hiqen" duke ekzekutuar në mënyrë kuptimplotë komanda në vijën e komandës. Ju nuk duhet ta bëni këtë - shërbimi do të vazhdojë të funksionojë. Edhe pse kjo qasje është thelbësisht e gabuar, Nextcloud punoi për mua në këtë mënyrë për 3 muaj përpara se të merresha qëllimisht me çështjet që u shfaqën.

Përditësimi i Debain

Ndaloni serverin në internet:

# service apache2 stop


Dhe ne përditësojmë:

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


Pas përditësimit, mund të kontrolloni versionin e OS dhe të bëni një rinisje provë për t'u siguruar që gjithçka fillon normalisht pas përditësimit:

# cat /etc/debian_version
# reboot


Përditësimi i PHP në versionin 7.2

Ndaloni serverin në internet:

# service apache2 stop


Shto certifikatën dhe çelësat PPA, depo PHP:

# 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


Kur fshini versionin e vjetër të PHP 7.0, phpmyadmin gjithashtu do të fshihet, pasi ne do të pastrojmë "gjurmët" nga paketat e fshira duke përdorur heqjen automatike. Kjo nuk do të shkaktojë ndonjë vështirësi të veçantë, pasi nuk janë bërë cilësime të veçanta për phpmyadmin dhe instalimi i tij përsëri nuk do të ketë ndonjë problem.

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


Instalimi i moduleve të kërkuara për 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


[ Ky tekst shkruar posaçërisht për sitin www.habr.com nga autori AleksandërS.
Një lidhje me burimin është opsionale, por rekomandohet shumë të përmendet! ]

Ne kontrollojmë versionin PHP, nisim serverin në internet dhe kontrollojmë funksionalitetin e Nextcloud:

# php -v
# service apache2 start


Përmirësimi i MariaDB në versionin 10.4

Në faqen e projektit ka faqe interesante, ku duhet të tregoni OS tuaj, lëshimin e tij dhe zgjidhni versionin e bazës së të dhënave. Pasi të zgjidhet, do të gjenerohet kodi për shtimin e depove.

Ndaloni serverin në internet:

# service apache2 stop


Shtoni një depo dhe përditësoni paketat:

# 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


Kur instaloni MariaDB, menaxheri i paketave do të heqë saktë versionin e mëparshëm dhe do të instalojë të riun, ndërsa të gjitha bazat e të dhënave do të ruhen. Sidoqoftë, sigurisht që rekomandohet të bëni një kopje rezervë të bazës së të dhënave Nextcloud.

Instaloni MariaDB dhe filloni procedurën e përditësimit:

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


Pas futjes së fjalëkalimit, MariaDB do të përditësohet dhe mund ta konfiguroni duke ndjekur udhëzime nga pjesa e dytë:

# mysql_secure_installation


Ne hapim serverin në internet dhe kontrollojmë funksionalitetin e Nextcloud:

# service apache2 start


Përditësimi i Nextcloud në versionin 17

Për të filluar përditësimin, duhet të identifikoheni në shërbim nën një llogari administrative, të shkoni te cilësimet dhe të hapni "Cilësimet e përgjithshme" në seksionin administrativ. Nextcloud tregon versionin e instaluar dhe versionin e disponueshëm për përditësim, i cili mund të hapet duke klikuar butonin "Hap dritaren e përditësimit". Pasi të inicohet, Nextcloud bën një kopje rezervë, shkarkon dhe verifikon integritetin e skedarëve të përditësimit, aktivizon modalitetin e mirëmbajtjes dhe përditëson skedarët. Më pas vjen pyetja "Mbani aktiv modalitetin e mirëmbajtjes"? Këtu duhet të keni kujdes. Një përgjigje pozitive do ta lërë sitin në modalitetin e mirëmbajtjes - supozohet se administratori e di se çfarë të bëjë më pas dhe do ta bëjë atë me dorë. Përndryshe, Nextcloud do të bëjë gjithçka vetë, kështu që klikoni butonin "Jo" për të vazhduar.

Përditësimet kryhen në mënyrë të përsëritur. Së pari, Nextcloud 13.x do të përditësohet në versionin më të fundit të degës 14.x. Pas kësaj, do t'ju duhet të shkoni përsëri në qendrën e administratorit dhe të filloni përditësimin, tani nga 14.x në 15.x. Dhe kështu me radhë derisa të arrihet versioni i fundit i mundshëm aktual. Pas çdo përditësimi, në faqen "Cilësimet e përgjithshme" në seksionin administrativ, do të shfaqet një listë e sugjerimeve dhe problemeve të hasura, si dhe rekomandime për zgjidhjen e tyre. Më poshtë do të flasim për atë që duhet bërë pas çdo përditësimi.

Përpara përditësimit

Në versionet më të fundit të Nextcloud, rekomandohet të aktivizoni PHP OPcache për të përmirësuar performancën. Është e çuditshme që disi e humba këtë pikë disa vjet më parë, pasi OPcache u shfaq në PHP 5. Në /etc/php/7.2/apache2/php.ini ju duhet të hiqni komentet dhe të modifikoni parametrat e mëposhtëm:

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


Përditëso 13.x -> 14.x

Rivendosja e indekseve të tabelës:

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


Përditëso 14.x -> 15.x

Ne përgatisim bazën e të dhënave nextcloud për të mundësuar kodimin me katër bajtë:

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


Aktivizo mbështetjen për kodimin me katër bajtë në Nextcloud:

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


Konvertimi i tabelave:

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


Rikuperimi i indekseve të humbura të tabelës:

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


Konvertoni indekset e tabelave në bigint:

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


Përditëso 15.x -> 16.x

Rikuperimi i indekseve të humbura të tabelës:

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


Konvertoni indekset e tabelave në bigint:

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


Përditëso 16.x -> 17.x

Asnjë veprim shtesë nuk kërkohet.

pasthënje

Pas këtyre udhëzimeve, një makinë virtuale me Nextcloud 13 u përditësua. Përdorimi i një makine virtuale ju lejon të mos bëni kopje rezervë të skedarëve Nextcloud dhe bazës së të dhënave të tij, pasi në rast problemesh thjesht mund të ktheni skedarin e makinës virtuale të ruajtur më parë dhe të filloni nga e para. përsëri. Sidoqoftë, kjo nuk vlen për dosjen me të dhënat e përdoruesit, të cilat unë rekomandoj gjithashtu t'i rezervoni së bashku me makinën virtuale me Nextcloud. Në rastin tim, "cloud" përdoret si një dosje në distancë me versionim automatik, dhe me drejtimin e sinkronizimit "vetëm atje", dhe humbja e këtyre të dhënave nuk ishte kritike për mua - thjesht do të më duhej të bëja përsëri sinkronizimin për disa orë . Pavarësisht nga shpërfillja ime për rregullin e përjetshëm "ruaj për çdo rast", përditësimi shkoi pa asnjë problem dhe të gjithë klientët filluan të punojnë me Nextcloud 17 pa asnjë problem. Jam i impresionuar, Frank Karlitshek - ti dhe ekipi yt po bëni një punë të mirë punë!

Pas përditësimit, vendosa të pastroj të dhënat e përdoruesit, të cilat, duke gjykuar nga statistikat, zinin rreth dy terabajt. Nuk kisha aq shumë të dhëna operative - pjesa më e madhe e vëllimit ishte e zënë nga skedarët e versionit dhe skedarët e fshirë. Problemi që hasa ishte se për një përdorues kishte aq shumë të dhëna të fshira (nuk është as çështje vëllimi, por sasie - shumë skedarë të vegjël) sa Nextcloud nuk mund t'i shfaqte në ndërfaqen e uebit. Pasi studiova manualin e administrimit, gjeta një zgjidhje përmes linjës së komandës. Ndoshta kjo do të jetë e dobishme për dikë.

Për të pastruar skedarët e fshirë të përdoruesit:

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


Për të pastruar skedarët e versionit të përdoruesit:

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

Kthehu në fillim, në tabelën e përmbajtjes.

Historia e krijimit të një reje shtëpiake. Pjesa 5. Përditësimi 2019 – PHP 7.2, MariaDB 10.4 dhe Nextcloud 17
Versioni i tekstit: 1.1.1.
Data e publikimit të parë: 15.01.2020.
Data e fundit e redaktimit: 15.01.2020.

Përditëso regjistrin1.1.1 [15-01-2020] Korrigjimi i gabimeve shkrimore.

1.1.0 [15-01-2020] Rregulloi kodin e përgatitjes së bazës së të dhënave nexcloud për të mundësuar kodimin me katër bajtë.

1.0.0 [15-01-2020] Versioni i parë.

Burimi: www.habr.com