Երկու տարի առաջ ես հրապարակեցի մի շարք հոդվածներ՝ վեբ սերվերի ստեղծման թեմայով, որը հիմնված էր Debian 8-ը և դրա վրա Nextcloud 11 ծառայության գործարկումը: Մի քանի ամիս անց հայտնվեց հավելված, որը պարունակում էր Nextcloud 13-ը տեղադրելու վերաբերյալ «դիֆերենցիալ» տեղեկատվություն: Debian 9. 2018 թվականի վերջին ես նոր թարմացրի Debian և Nextcloud-ը և որևէ անսովոր կամ հետաքրքիր խնդիր չհանդիպեց։ 2019 թվականի վերջին թարմացումն ավելի հետաքրքիր էր և արժեր գրել դրա մասին։

Այս հոդվածը հիմնականում օգտակար կլինի նրանց համար, ովքեր, նախորդ չորս հոդվածներում տրված հրահանգներին հետևելով, իրենց համար «հավաքել» են Nextcloud 13-ը։ Debian 9 (Ես ողջունում եմ իմ տասը բաժանորդներին Nextcloud-ի թեմայով, հատկապես նրանց, ում համար սա աշխարհում առաջին փորձն էր) Linux)։ Նրանց համար, ովքեր պլանավորում են ծառայությունը զրոյից կառուցել, խորհուրդ եմ տալիս որպես հիմք օգտագործել այս շարքի առաջին չորս հոդվածները՝ ներկայիս տարբերակների համար համապատասխան փոփոխություններով։ Debian 10 և Nextcloud 17: Առաջադեմ օգտատերերի համար Linux Հոդվածը կարող է դասվել «աննշան և անօգուտ» և «վատ չէ, ամեն ինչ մեկում խաբեբա թերթիկի» միջև։
Պահեստավորված նյութեր
Գլխի արագ նավիգացիա
Նախաբան
Սկզբում ես ուզում էի Debian 10-ում տեղադրեք և կարգավորեք Nginx-ը, որը հեշտությամբ կաջակցեր Nextcloud 17-ի վերջին տարբերակին։ Սակայն ես ժամանակ չունեի այս ամենի համար, ուստի այս հոդվածը Nextcloud-ը 13-ից 17-ի վերջին տարբերակին թարմացնելու հրահանգների հավաքածու է՝ վեբ սերվերի նախնական նախապատրաստմամբ։
Նախ, մենք պետք է բացատրենք, թե ինչու էին արմատական փոփոխություններ անհրաժեշտ վեբ սերվերի կողմից։ Մեր սերվերը հիմնված է արդիական և աջակցվող Debian 9. Դուք կարող եք պարզապես թարմացնել օպերացիոն համակարգը, և վեբ սերվերի բոլոր բաղադրիչները կստանան առնվազն անվտանգության թարմացումներ: Ամեն ինչ լավ կլիներ, եթե մենք շարունակեինք օգտագործել Nextcloud 13-ը կամ թարմացնեինք միայն 14-րդ տարբերակին: Այնուամենայնիվ, Nextcloud 13-ը այլևս չի աջակցվում, և 14-րդ տարբերակի աջակցությունը նվազում է: Սկսած 15-րդ տարբերակից, Nextcloud-ը կառաջարկի տվյալների բազան փոխարկել big int-ի՝ չորս բայթանոց կոդավորումը աջակցելու համար, և MariaDB 10.1-ի դեպքում դա շատ խնդրահարույց կլինի: Nextcloud 17-ը պահանջում է PHP 7.1-7.3, մինչդեռ Debian 9-ը իր բնօրինակ պահոցներում պարունակում է միայն 7.0 տարբերակը: Հուսալիության և կանխատեսելիության առումով ճիշտ լուծումը կլինի Nextcloud-ի նախավերջին տարբերակին անցնելը, բայց վերջին մի քանի տարիների ընթացքում ես այնքան վստահ եմ դարձել ծառայության հուսալիության մեջ, որ ցանկացա անցնել վերջին տարբերակին և թարմացնել վեբ սերվերը ապագայի համար: Հետևաբար, Nextcloud 17-ին անցնելու համար օպտիմալ է MariaDB-ն թարմացնել ներկայիս կայուն տարբերակին՝ 10.4-ին, իսկ PHP-ն՝ 7.2-ին: Մասնավորապես՝ 7.2-ին, այլ ոչ թե ներկայիս 7.4-ին: Փաստն այն է, որ Nextcloud 13-ը պահանջում է PHP 5.6, 7.0-ը՝ 7.2, իսկ Nextcloud 17-ը՝ PHP 7.1-7.3: PHP 7.2-ի օգտագործումը հարմար է՝ թարմացման ջանքերը նվազագույնի հասցնելու համար: Ձեզ անհրաժեշտ չի լինի թարմացնել Apache սերվերը. բավական է տեղադրել աջակցության թիմի կողմից բաշխված անվտանգության թարմացումները: DebianԱյնուամենայնիվ, MariaDB-ի և PHP-ի թարմացումների համար դուք պետք է միացնեք արտաքին պահոցներ։
Երբ նոր էի ծանոթանում Nextcloud-ի հետ, ես այն թարմացնում էի «ձեռքով». կոնսոլից հատուկ հրաման էր օգտագործվում կայքը սպասարկման ռեժիմի անցնելու համար, կայքի նոր տարբերակի արխիվը ձեռքով ներբեռնվում և բացվում էր, ֆայլերը թարմացվում էին և գործարկվում էր թարմացման ընթացակարգը: Նման թարմացումը սովորաբար հանգեցնում էր սպասվող արդյունքների, չնայած ես չափազանց ծույլ չէի կայքի, տվյալների բազայի և օգտատիրոջ տվյալների պահուստային պատճենը պատրաստելու համար: Բայց ավտոմատ թարմացումը երբեմն հանգեցնում էր բոլոր տեսակի անակնկալների: Բայց դա վաղուց էր, շարժիչի կայունությունը զգալիորեն բարձրացել էր այդ ժամանակվանից ի վեր, և այս անգամ ես թարմացումներ էի անում բացառապես վեբ ինտերֆեյսի միջոցով: Այնուամենայնիվ, դեռևս անհնար էր հեռանալ հրամանի տողից: Յուրաքանչյուր նոր տարբերակի համար իտերատիվ թարմացման ժամանակ կառավարման վահանակում կհայտնվեն տարբեր նախազգուշացումներ և ծանուցումներ, որոնք անհրաժեշտ կլինի «հեռացնել» հրամանի տողում հրամաններ գիտակցաբար կատարելով: Դուք չեք կարող դա անել. ծառայությունը դեռ կաշխատի: Չնայած այս մոտեցումը հիմնարար սխալ է, Nextcloud-ը ինձ համար այս ռեժիմով աշխատեց 3 ամիս, մինչև ես նպատակասլաց կերպով լուծեցի առաջացած խնդիրները:
Դեբեյնի թարմացում
Դադարեցրեք վեբ սերվերը.
# service apache2 stop
Եվ մենք թարմացնում ենք.
# apt-get update
# apt-get dist-upgrade
Թարմացումից հետո կարող եք ստուգել օպերացիոն համակարգի տարբերակը և կատարել փորձնական վերագործարկում՝ համոզվելու համար, որ թարմացումից հետո ամեն ինչ նորմալ է սկսվում։
# cat /etc/debian_version
# reboot
PHP-ի թարմացում 7.2 տարբերակին
Դադարեցրեք վեբ սերվերը.
# service apache2 stop
Ավելացրեք PPA վկայականը և բանալիները, 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
Երբ դուք հեռացնում եք PHP 7.0-ի հին տարբերակը, phpmyadmin-ը նույնպես կհեռացվի, քանի որ մենք կմաքրենք հեռացված փաթեթների «հետքերը»՝ օգտագործելով autoremove-ը: Սա որևէ հատուկ դժվարություն չի առաջացնի, քանի որ phpmyadmin-ի համար հատուկ կարգավորումներ չեն արվել, և այն կրկին տեղադրելը խնդիր չի լինի:
# apt-get purge php7*
# apt-get --purge autoremove
# apt-get update
# apt-get install php7.2 phpmyadmin
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
[ գրված է հատուկ կայքի համար հեղինակ .
Աղբյուրի հղումը պարտադիր չէ, բայց դրա հիշատակումը խիստ ցանկալի է։]
Մենք ստուգում ենք PHP տարբերակը, գործարկում ենք վեբ սերվերը և ստուգում Nextcloud-ի ֆունկցիոնալությունը։
# php -v
# service apache2 start
MariaDB-ի թարմացում 10.4 տարբերակին
Նախագծի կայքը ունի , որտեղ դուք պետք է նշեք ձեր օպերացիոն համակարգը, դրա թողարկումը և ընտրեք տվյալների բազայի տարբերակը: Ընտրելուց հետո կստեղծվի պահոցը ավելացնելու կոդը:
Դադարեցրեք վեբ սերվերը.
# service apache2 stop
Ավելացրեք պահոցը և թարմացրեք փաթեթները՝
# 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-ն տեղադրելիս փաթեթների կառավարիչը ճիշտ կհեռացնի նախորդ տարբերակը և կտեղադրի նորը, բոլոր տվյալների բազաները կպահպանվեն։ Այնուամենայնիվ, խորհուրդ է տրվում ստեղծել Nextcloud տվյալների բազայի պահուստային պատճեն։
Տեղադրեք MariaDB-ն և գործարկեք թարմացման ընթացակարգը.
# apt-get install mariadb-server
# mysql_upgrade u root -p
Գաղտնաբառը մուտքագրելուց հետո MariaDB-ն կթարմացվի, և դուք կարող եք կարգավորել այն հետևյալ կերպ :
# mysql_secure_installation
Եկեք գործարկենք վեբ սերվերը և ստուգենք, որ Nextcloud-ը աշխատում է։
# service apache2 start
Nextcloud-ի թարմացում մինչև 17-րդ տարբերակը
Թարմացումը սկսելու համար անհրաժեշտ է մուտք գործել ծառայություն՝ որպես ադմինիստրատոր, մտնել կարգավորումներ և բացել «Ընդհանուր կարգավորումներ» բաժինը ադմինիստրատորի բաժնում: Nextcloud-ը ցույց է տալիս տեղադրված և թարմացման համար հասանելի տարբերակը, որը կարելի է սկսել՝ սեղմելով «Բացել թարմացման պատուհանը» կոճակը: Սկսելուց հետո Nextcloud-ը ստեղծում է պահուստային պատճեն, ներբեռնում և ստուգում է թարմացման ֆայլերի ամբողջականությունը, միացնում է սպասարկման ռեժիմը և թարմացնում ֆայլերը: Հաջորդը հարցն է՝ «Պահպանե՞լ սպասարկման ռեժիմը ակտիվ»: Այստեղ պետք է զգույշ լինել: Դրական պատասխանը կայքը կթողնի սպասարկման ռեժիմում. ենթադրվում է, որ ադմինիստրատորը գիտի, թե ինչ անել հաջորդը և կանի դա ձեռքով: Հակառակ դեպքում, Nextcloud-ը ամեն ինչ կանի ինքնուրույն, ուստի շարունակելու համար սեղմեք «Ոչ» կոճակը:
Թարմացումները կատարվում են իտերատիվ կերպով։ Սկզբում Nextcloud 13.x-ը կթարմացվի 14.x մասնաճյուղի վերջին տարբերակին։ Դրանից հետո դուք պետք է կրկին գնաք կառավարման կենտրոն և գործարկեք թարմացումը՝ այժմ 14.x-ից մինչև 15.x։ Եվ այսպես շարունակ, մինչև հասնեք հնարավոր ամենավերջին ընթացիկ տարբերակին։ Յուրաքանչյուր թարմացումից հետո առաջացած առաջարկների և խնդիրների ցանկը, ինչպես նաև դրանց լուծման առաջարկությունները, կցուցադրվեն վարչական բաժնի «Ընդհանուր կարգավորումներ» էջում։ Ստորև կխոսենք այն մասին, թե ինչ պետք է անեք յուրաքանչյուր թարմացումից հետո։
Թարմացումից առաջ
Nextcloud-ի վերջին տարբերակներում խորհուրդ է տրվում միացնել PHP OPcache-ը՝ կատարողականությունը բարելավելու համար: Տարօրինակ է, որ ես ինչ-որ կերպ բաց թողեցի այս կետը մի քանի տարի առաջ, քանի որ OPcache-ը հայտնվել է PHP 5-ում: /etc/php/7.2/apache2/php.ini-ում դուք պետք է հեռացնեք մեկնաբանությունները և խմբագրեք հետևյալ պարամետրերը.
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
Թարմացնել 13.x -> 14.x
Աղյուսակի ինդեքսների վերականգնում.
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Թարմացնել 14.x -> 15.x
Պատրաստեք nextcloud տվյալների բազան չորս բայթանոց կոդավորումը միացնելու համար.
# mysql -u root -p
MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> quit
Միացնել չորս բայթանոց կոդավորման աջակցությունը Nextcloud-ում՝
# sudo -u www-data php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
Փոխակերպման աղյուսակներ՝
# sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
Կորած աղյուսակային ինդեքսների վերականգնում.
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Փոխարկել աղյուսակի ինդեքսները bigint-ի՝
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Թարմացնել 15.x -> 16.x
Կորած աղյուսակային ինդեքսների վերականգնում.
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Փոխարկել աղյուսակի ինդեքսները bigint-ի՝
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Թարմացնել 16.x -> 17.x
Լրացուցիչ գործողություններ չեն պահանջվում։
Հետո
Հետևյալ հրահանգները օգտագործվել են Nextcloud 13-ով վիրտուալ մեքենան թարմացնելու համար: Վիրտուալ մեքենայի օգտագործումը թույլ է տալիս խուսափել Nextcloud ֆայլերի և դրա տվյալների բազայի պահուստային պատճեններ պատրաստելուց, քանի որ խնդիրների դեպքում կարող եք պարզապես վերադարձնել նախկինում պահպանված վիրտուալ մեքենայի ֆայլը և սկսել նորից: Սակայն սա չի վերաբերում օգտատիրոջ տվյալներով թղթապանակին, որը ես նույնպես խորհուրդ եմ տալիս պահուստավորել վիրտուալ մեքենայի հետ միասին Nextcloud-ով: Իմ դեպքում «ամպը» օգտագործվում է որպես հեռակա թղթապանակ՝ ավտոմատ տարբերակմամբ և «միայն այնտեղ» համաժամեցման ուղղությամբ, և այս տվյալների կորուստը ինձ համար կարևոր չէր. ես պարզապես պետք է մի քանի ժամով նորից կատարեի համաժամեցումը: Չնայած կյանքի ընթացքում մշակված «պահպանել ամեն դեպքում» կանոնի անտեսմանը, թարմացումն անցավ առանց խնդիրների, և բոլոր հաճախորդները նույնպես առանց խնդիրների աշխատեցին Nextcloud 17-ի հետ: Ես տպավորված եմ, Ֆրենկ Կարլիչեկ, դուք և ձեր թիմը հիանալի աշխատանք եք կատարում:
Թարմացումից հետո որոշեցի մաքրել օգտատիրոջ տվյալները, որոնք, ըստ վիճակագրության, զբաղեցնում էին գրեթե երկու տերաբայթ։ Ես այդքան շատ օպերացիոն տվյալներ չունեի՝ տարածքի մեծ մասը զբաղեցնում էին տարբերակների ֆայլերը և ջնջված ֆայլերը։ Խնդիրը, որին ես հանդիպեցի, այն էր, որ մեկ օգտատիրոջ համար այնքան շատ ջնջված տվյալներ կային (խոսքը նույնիսկ ծավալի մասին չէ, այլ քանակի՝ շատ փոքր ֆայլերի մասին է), որ Nextcloud-ը չէր կարողանում դրանք ցուցադրել վեբ ինտերֆեյսում։ Կառավարման ուղեցույցն ուսումնասիրելուց հետո լուծում գտա հրամանի տողի միջոցով։ Գուցե ինչ-որ մեկը սա օգտակար գտնի։
Օգտատիրոջ ջնջված ֆայլերը մաքրելու համար կատարեք հետևյալը.
# sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup user
Օգտատիրոջ տարբերակի ֆայլերը մաքրելու համար՝
# sudo -u www-data php /var/www/nextcloud/occ versions:cleanup userՎերադառնալ .
Տնային ամպի ստեղծման պատմությունը. Մաս 5. Թարմացում 2019 – PHP 7.2, MariaDB 10.4 և Nextcloud 17
Տեքստային տարբերակ՝ 1.1.1։
Առաջին հրապարակման ամսաթիվ՝ 15.01.2020։
Վերջին փոփոխությունը՝ 15.01.2020։
Թարմացնել գրանցամատյանը1.1.1 [15-01-2020]
Տեքստիլ սխալների ուղղում։
1.1.0 [15-01-2020]
Ուղղվել է nexcloud տվյալների բազայի նախապատրաստման կոդը՝ չորս բայթանոց կոդավորումը միացնելու համար։
1.0.0 [15-01-2020]
Առաջին տարբերակը։
Source: www.habr.com
