Երկու տարի առաջ ես հրապարակեցի մի շարք հոդվածներ Debian 8-ի վրա հիմնված վեբ սերվեր ստեղծելու և դրա վրա Nextcloud 11 ծառայությունը գործարկելու թեմայով: Մի քանի ամիս անց հայտնվեց հավելում, որը պարունակում էր «դիֆերենցիալ» տեղեկատվություն Debian-ում Nextcloud 13-ը տեղադրելու վերաբերյալ: 9. 2018-ի վերջում ես պարզապես թարմացրեցի Debian-ը և Nextcloud-ը և չհանդիպեցի որևէ արտասովոր կամ հետաքրքիր խնդրի: 2019-ի վերջին թարմացումն արդեն ավելի հետաքրքիր էր և արժե գրել:
Այս հոդվածը հիմնականում օգտակար կլինի նրանց համար, ովքեր, ըստ նախորդ չորս հոդվածների ցուցումների, «հավաքեցին» Nextcloud 13-ը Debian 9-ում (ես բարև եմ ասում իմ մոտ մեկ տասնյակ բաժանորդներին Nextcloud-ի թեմայով, հատկապես նրանց, ում համար սա նրանց առաջին փորձն էր Linux-ի աշխարհում): Նրանց համար, ովքեր ծրագրում են զրոյից ծառայություն ստեղծել, խորհուրդ եմ տալիս հիմք ընդունել այս շարքի առաջին չորս հոդվածները՝ հարմարեցված Debian 10-ի և Nextcloud 17-ի ընթացիկ տարբերակների համար: Փորձառու Linux օգտագործողների համար հոդվածը կարող է որոշ չափով պահանջել: տեղ «չնչին և անօգուտ» և «վատ չէ, բոլորը մեկ տեղում խաբեության թերթիկի» միջև:
Պահեստավորված նյութեր
Գլխի արագ նավարկություն
Նախաբան
Սկզբում ես ուզում էի տեղադրել և կարգավորել Nginx-ը Debian 10-ում, որի վերևում կարող էր առանց որևէ խնդրի տեղադրվել ներկայիս Nextcloud 17-ը: Բայց ես չկարողացա ժամանակ գտնել այս ամենի համար, ուստի այս հոդվածը թարմացման հրահանգների մի շարք է: Nextcloud-ը 13-ից մինչև ընթացիկ տարբերակ 17՝ վեբ սերվերի նախնական պատրաստմամբ:
Նախ, մենք պետք է բացատրենք, թե ինչու էին արմատական փոփոխություններ պահանջվում վեբ սերվերի կողմից: Մեր սերվերը հիմնված է ընթացիկ և աջակցվող Debian 9-ի վրա: Դուք կարող եք պարզապես թարմացնել օպերացիոն համակարգը, և վեբ սերվերի բոլոր բաղադրիչները կստանան առնվազն անվտանգության թարմացումներ: Ամեն ինչ հիանալի կլիներ, եթե մենք շարունակեինք օգտագործել Nextcloud 13-ը կամ թարմացնեինք միայն 14-րդ տարբերակին: Սկսած 13-րդ տարբերակից՝ Nexctcloud-ը կառաջարկի տվյալների բազան վերածել big int-ի՝ չորս բայթ կոդավորումն աջակցելու համար, իսկ MariaDB 14-ի դեպքում դա շատ խնդրահարույց կլինի: Nexctcloud 15-ը պահանջում է PHP 10.1-17, մինչդեռ Debian 7.1-ը պարունակում է միայն 7.3 տարբերակը իր բնածին պահոցներում: Հուսալիության և կանխատեսելիության առումով ավելի ճիշտ կլինի նորացնել Nextcloud-ի նախավերջին տարբերակին, բայց մի քանի տարի անց ես այնքան վստահ դարձա այս ծառայության հուսալիության մեջ, որ ցանկացա թարմացնել վերջին տարբերակը և թարմացնել վեբ սերվեր ապագայի համար պահուստով: Հետևաբար, Nexctcloud 9-ին թարմացնելու համար օպտիմալ է MariaDB-ն թարմացնել ներկայիս կայուն 7.0 տարբերակին, իսկ PHP-ը՝ 17-ին։ Հենց 10.4-ը, ոչ թե ներկայիս 7.2-ը: Փաստն այն է, որ Nextcloud 7.2-ը պահանջում է PHP 7.4, 13 - 5.6, իսկ Nexctcloud 7.0-ը պահանջում է PHP 7.2 - 17: Հարմար է օգտագործել PHP 7.1՝ թարմացման ջանքերը նվազագույնի հասցնելու համար: Ձեր Apache սերվերը թարմացնելու կարիք չկա. պարզապես տեղադրեք անվտանգության թարմացումները, որոնք տարածվում են Debian-ի աջակցման թիմի կողմից: Բայց MariaDB-ի և PHP-ի թարմացումների համար դուք պետք է միացնեք արտաքին պահոցները:
Երբ ես նոր էի ծանոթանում Nextcloud-ի հետ, թարմացրի այն «ձեռքով». մխիթարիչի հատուկ հրամանի միջոցով կայքը անցավ սպասարկման ռեժիմի, կայքի նոր տարբերակով արխիվը ձեռքով ներբեռնվեց և բացվեց, ֆայլերը։ թարմացվել են և սկսվել է թարմացման ընթացակարգը: Նման թարմացումը սովորաբար բերում էր ակնկալվող արդյունքների, չնայած ես չէի ծուլանում կայքի, տվյալների բազայի և օգտատերերի տվյալների կրկնօրինակը պատրաստելիս։ Սակայն ավտոմատ թարմացումները երբեմն հանգեցնում էին ամենատարբեր անակնկալների: Բայց դա շատ վաղուց էր, այդ ժամանակից ի վեր շարժիչի կայունությունը մեծապես աճել է, և այս անգամ ես թարմացումներ էի կատարել բացառապես վեբ ինտերֆեյսի միջոցով: Ճիշտ է, ես դեռ չկարողացա հեռանալ հրամանի տողից: Յուրաքանչյուր նոր տարբերակի կրկնվող թարմացման ժամանակ կառավարման վահանակում կհայտնվեն տարբեր նախազգուշացումներ և ծանուցումներ, որոնք պետք է «հեռացվեն» հրամանների տողում իմաստալից կերպով կատարելով հրամաններ: Պետք չէ դա անել, ծառայությունը դեռ կաշխատի: Չնայած այս մոտեցումը սկզբունքորեն սխալ է, Nextcloud-ն ինձ համար այս ռեժիմով աշխատեց 3 ամիս, մինչև ես նպատակաուղղված զբաղվեի ծագած խնդիրների հետ:
Debain-ի թարմացում
Դադարեցրեք վեբ սերվերը.
# service apache2 stop
Եվ մենք թարմացնում ենք.
# apt-get update
# apt-get dist-upgrade
Թարմացումից հետո կարող եք ստուգել OS-ի տարբերակը և կատարել փորձնական վերագործարկում՝ համոզվելու համար, որ թարմացումից հետո ամեն ինչ նորմալ է սկսվում.
# 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/XNUMX/XNUMX:
Թարմացնել գրանցամատյանը1.1.1 [15-01-2020] Տառասխալների ուղղում.
1.1.0 [15-01-2020] Հաստատվել է nexcloud տվյալների բազայի պատրաստման կոդը՝ չորս բայթ կոդավորումը միացնելու համար:
1.0.0 [15-01-2020] Առաջին տարբերակը.
Source: www.habr.com