1.2.1. Drupal 8 մոդուլների և միջուկի թարմացում։
Շատ հաճախ Drupal 8–ի մոդուլների և միջուկի համար դուրս են գալիս թարմացումներ։ Չպետք է տեղադրել բոլոր թարմացումներն առանց տարբերակման՝ կարևոր է հետևել անվտանգության թարմացումներին։ Drupal–ը նման թարմացումները 표시ում է կարմիր գույնով։ Թարմացման եղանակը կախված է նրանից, թե ինչպես եք տեղադրել Drupal–ը. եթե Composer–ով եք ստեղծել նախագիծ, կարող եք օգտագործել Composer–ը Drupal–ը թարմացնելու համար։ Եթե Drupal–ը ներբեռնել եք drupal.org–ից, ստիպված կլինեք թարմացնել Drupal–ը ձեռքով։
Drupal–ի թարմացում Composer–ով
Drupal–ը Composer–ով թարմացնելը սովորական աշխատանք է, որը կատարվում է մեկ հրամանով՝
composer update drupal/core --with-dependencies
Կարևոր է թարմացնել drupal–ը --with-dependencies
դրոշմով, որպեսզի բերվեն բոլոր անհրաժեշտ կախված paket–երը։ Թարմացումից հետո պետք է գործարկել update.php
–ն, կամ օգտագործել drush updatedb
, կամ drupal update:execute
։
Drupal–ի ձեռքով թարմացում առանց Composer–ի և Drush–ի
Դուք նաև կարող եք կարդալ այս հոդվածը՝ Drupal–ը ձեռքով թարմացնելու մասին՝
https://drupalbook.org/ru/drupal/122-obnovlenie-drupal-8-bez-drush-i-bez-composer
Drupal 8 թարմացնելու մասին պաշտոնական փաստաթղթերը կարելի է կարդալ նաև drupal.org–ի վրա՝
https://www.drupal.org/node/1494290
Բայց ինձ մտահոգիչ է, որ առաջարկում են ջնջել բոլոր հին Drupal ֆայլերը, իսկ դրանց մեջ կարող են լինել երրորդ կողմի գրադարաններ, օրինակ՝ Drupal Commerce–ի համար։
1. Ուստի, նախքան Drupal–ի և մոդուլների թարմացումները, անհրաժեշտ է կատարել կայքի և տվյալների բազայի ամբողջական պատճեն (բեքափ):
Տվյալների բազան կարող եք պատճենել adminer–ով, տես հոդվածը՝
https://drupalbook.org/ru/drupal/15-vybor-hostinga-pokupka-domennogo-imeni-perenos-sayta-na-hosting
2. Ներբեռնեք վերջին մոդուլի (Drupal միջուկի) վարկյանը 8.x ճյուղի համար։
3. Ավելացրեք կամ հանեք արխիվը առանձին թղթապանակում՝ ոչ կայքի մեջ։ Ստուգեք vendor թղթապանակը՝ հնարավոր է, որ այնտեղ պակասեն որոշ գրադարաններ, որոնք պետք է հետո առանձին պատճենել։ Նոր վարկյանի հետ կարող են ավելանալ լրացուցիչ գրադարաններ։ Օրինակ, ես տեղադրել էի Drupal Commerce և ունեի լրացուցիչ գրադարաններ՝
Կրկնակի ստուգեք, որ ունեք կայքի պատճեն թարմացումից առաջ։
Ես չեմ համոզված, թե արդյոք ճիշտ է ֆայլերը պարզապես վերագրել, երբեմն չեմ հաջողվում. օրինակ β տարբերակից β տարբերակ տեղափոխվելիս հնարավոր է կայքը կոտրվի, բայց 8.0.1–ից 8.0.5 թարմացնելիս սովորաբար խնդիր չկա։ Սակայն 8.1.0 ճյուղ տեղափոխվելիս նման եղանակը կդժվարի։
4. Ուղղեք սպասարկման ռեժիմ՝ որպեսզի ոչ ոք չմտնի և սխալներ չստեղծի թարմացման ժամանակ՝
/admin/config/development/maintenance
Չմոռանաք թարմացումից հետո դուրս բերել սպասարկման ռեժիմից։
5. Հաջորդ քայլը ջնջել բոլոր Drupal–ի ֆայլերը root–ից, բացի /sites, /themes, /modules թղթապանակներից։ /sites-ում գտնվում են նկարներ, կոնֆիգուրացիաներ, գեներացված ֆայլեր; /themes-ում՝ ձեր թեմաները; /modules-ում՝ ձեր մոդուլները: Մեջբերեք ձեռնարկը մինչև վերջ նախքան ֆայլերը ջնջելը և երրորդ անգամ ստուգեք բեքափի առկայությունը։ Ֆայլերը ջնջելուց հետո կայքը չի աշխատի մինչև չպատճենեք նոր միջուկի ֆայլերը, իսկ դրանք մոտավոր 10 000 են. FTP–ով 2–3 concurrent հոսքով պատճենելիս կարող է տեղը մեկուկես ժամ տևել։ Եթե հնարավոր է, աշխատեք SSH–ով կամ տեղական машине՝ OpenServer–ով, ավելի արագ։
6. Հետո նոր Drupal–ի ֆայլերը պատճենեք root–ում, բացի /sites, /themes, /modules թղթապանակներից։ Եթե հոստինգը թույլ է տալիս SSH, архивը պատճեք server–ին և ճիշտ թղթապանակում բացեք՝
tar -xvzf archive.tar.gz
or
unzip archive.zip
Եթե ունեք WinSCP, կարող եք օգտվել նրա custom commands ֆունկցիոնալից՝
https://winscp.net/eng/docs/lang:ru
https://winscp.net/eng/docs/custom_commands
Կամ վերագրանցեք gzip արխիվ առանց թղթապանակի, օգտագործելով 7-Zip՝
Ստեղծեք tar.gz, փոխանցեք սերվեր, ապա SSH–ով կամ WinSCP–ով բացեք:
7. Կարող է պահանջվել ձեռքով խմբագրել settings.php, սակայն սա հաճախ նշված կլինի կայքի վիճակի էջում՝
/admin/reports/status
8. Եթե փոխել եք .htaccess, robots.txt, վերաթողարկեք փոփոխությունները։
9. Եթե ունեք հատուկ favicon.ico, կրկին պատճենեք այն։
10. Մուտք գործեք կայք ադմինի հաշիվով։
11. Գործարկեք update.php, օրինակ՝ https://drupalbook.org/update.php
12. Անջատեք սպասարկման ռեժիմը՝
/admin/config/development/maintenance
Եթե կայքը կարևոր է, թարմացումներ փորձեք նախ տեղական պատճենին OpenServer–ում և միայն հաջողության դեպքում կիրառեք պրոդաքշնին։ Հարցերի դեպքում գրեք մեկնաբանություններում՝ կօգնենք լուծել։