logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll
21/06/2025, by Ivan

Drupal կայքի թարմացումը բարդ, ծախսատար և ժամանակատար գործընթաց է։ Դա բարդ խնդիր է, որը առաջին հայացքից թվում է պարզ, ապահովելով անվտանգ և վստահելի թարմացումներ, որոնք վստահություն են ներշնչում կայքի սեփականատերերին և ապահովում կայքի այցելուների հասանելիությունը։

Drupal-ի ավտոմատ թարմացման ծառայությունը նպատակ ունի պարզեցնել այս գործընթացը և երաշխավորել, որ թարմացումը կատարվի ճիշտ կերպով։

Նշեք, որ ավտոմատ թարմացումը Drupal նախագծի ռազմավարական նախաձեռնություն է։ Ինիցիատիվը դեռ գտնվում է իր իրականացման փուլում, ուստի կան մի քանի կարևոր տարրեր, որոնց պետք է ուշադրություն դարձնել՝

  • Ավտոմատ թարմացման մոդուլը դեռ չի մտել հիմքում։ Այն սկզբնական փուլում հասանելի է որպես հավելյալ մոդուլ այստեղ՝ https://drupal.org/project/automatic_updates.
  • Մոդուլը ներկայումս գտնվում է թեստավորման փուլում։ Կայուն թողարկումը սպասվում է շատ շուտով։
  • Այս առաջին փուլում ավտոմատ թարմացման մոդուլը ներառում է ընդհանուր ծառայությունների ծանուցման ֆունկցիոնալություն և պատրաստության ստուգումներ և կարող է կիրառել թարմացումները տեղում ձեռքով կամ cron-ի միջոցով։ Տվյալների բազայի թարմացումները առաջացնելու դեպքում թարմացումը կվերադարձվի։
  • Մոդուլը դեռ չի աջակցում Contribute թարմացումներին կամ Composer-ով հիմնված տեղադրումներին։ Դրանք նախատեսված են 2-րդ փուլի համար։

Ավտոմատ թարմացման մոդուլի հիմնական հատկանիշները

Հանրային անվտանգության հայտարարություններ (PSA)

Հիմնական և հավելյալ մոդուլների անվտանգության կարևոր թողարկումների մասին հայտարարությունները հաճախ չեն լինում։ Երբ PSA թողարկում է հրապարակվում, կայքի սեփականատերերը պետք է ստուգեն իրենց կայքերը՝ համոզվելու, որ տեղեկացված են վերջին թողարկումներին, և կայքը պատրաստ է արագ թարմացման՝ շտկումների տրամադրման պահից հետո։

Պատրաստության ստուգումներ

Բոլոր կայքերը չեն կարող միշտ թարմացվել։ Պատրաստության ստուգումը ավտոմատ մեթոդ է՝ որոշելու, արդյոք կայքը պատրաստ է ավտոմատ թարմացմանը նոր թողարկում տրամադրման պահից հետո։ Օրինակ՝ կայքերը, որոնք ունեն չվիրահատված տվյալների բազայի թարմացումներ, կամ գտնվում են միայն կարդալու ֆայլային համակարգերում, կամ չունեն բավարար ազատ տեղ դիսկում, չեն կարող ավտոմատ թարմացումներ ստանալ։ Եթե ձեր կայքը չի անցնում պատրաստության ստուգումը, իսկ PSA թողարկում կա, կարևոր է լուծել պատրաստության հիմնական խնդիրները՝ կայքի արագ թարմացման համար։

Թարմացումներ տեղում

Երբ PSA ծառայությունը Drupal կայքի սեփականատիրոջը տեղեկացնում է մատչելի թարմացման մասին, և պատրաստության ստուգումները հաստատում են, որ կայքը պատրաստ է թարմացման, ավտոմատ թարմացման ծառայությունը կարող է կիրառել թարմացումը։

Հատուկ կայքը (կամ գործակալությունը, կամ հոսթինգ պրովայդերը) կարող է որոշել տրամադրել լրացուցիչ տվյալների բազայի մշակման ընտրանքներ։ Օրինակ՝ տվյալների բազայի կաթիլումնե կատարել և տեղափոխել S3 կամ ուղարկել էլփոստ / ծանուցումներ։ Եվ վերջապես, գործարկել տվյալների բազայի թարմացումները։

Եթե դուք մշակում եք ձեր սեփական հատուկ գործողություններ, նկատի ունեցեք, որ ցանկացած գործողություն, որի համար պահանջվում է կոդ, որը կարող է փոփոխվել թարմացման ընթացքում, պետք է կատարվի հատուկ CLI հրամանների միջոցով։ Հակառակ դեպքում՝ կկատարվի հին կոդի տարբերակը։ Սա PHP-ի ներքին սահմանափակում է։ Օրինակներ տեսեք execute_updates պլագինում, որը կանչում է Symfony կոնսոլ հրամանը։

Տեղադրում

Արդեն հասանելի է որպես հավելյալ մոդուլ Drupal.org-ում՝ մոդուլ ավտոմատ թարմացումների համար։ Ներկա փուլի և համայնքային լայն փորձարկումներից հետո այն կմտնի Drupal-ի հիմքում։ Այդ ժամանակ ձեզ անհրաժեշտ կլինի միայն թարմացնել Drupal-ի այն տարբերակը, որն արդեն պարունակում է այս ֆունկցիան։

Automatic Updates մոդուլի contrib տարբերակի տեղադրման համար հետևեք նույն հրահանգներին, ինչ մյուս Drupal.org մոդուլների դեպքում․

  1. Շատ կարևոր՝ ներբեռնեք մոդուլը tarball ֆայլով։ Composer-ով տեղադրում ներկայումս չի աջակցվում։
  2. Այնուհետև տեղադրեք մոդուլը նախընտրելի եղանակով։

 

Այս ռեսուրսի օգտագործումը ներկայումս նախատեսված չէ Composer օգտագործող կայքերի համար։ Ընդունվել են որոշ ենթադրություններ, որ կայքը տեղադրվել և կառավարվել է արխիվային ֆայլերից։ Հավելյալից, այն մտադիր է աջակցել միայն Drupal Core թարմացումներին։ Տվյալ մոդուլի հաջորդ տարբերակները ավելի ամբողջական աջակցություն կտրամադրեն Drupal Composer-ով տեղադրված կայքերին։

Մոդուլի օգտագործում

Այցելվող օգտագործում

PSA ֆունկցիան Drupal.org-ից PSA հաղորդագրությունները ցուցադրում է Drupal ադմինիստրատորի ինտերֆեյսում՝ օգտատերերին նախազգուշացնելու մոտակա թողարկումների մասին։

Պատրաստության ստուգումները պարբերաբար գործարկվում են՝ համոզվելու համար, որ թարմացման կիրառմանը խանգարող խնդիրներ չկան։

Մոդուլի կարգավորման էջում օգտատերը կարող է ձեռքով գործարկել թարմացումներ տեղում։

Անհսկող օգտագործում

Ավտոմատ թարմացումները միացնելու համար պարզապես նշեք կարգավորման էջում՝ թարմացումները գործարկելու cron-ի միջոցով։ Թարմացումները կիրականացվեն միայն այն դեպքում, եթե կայքը պատրաստության ստուգում անցնի։

Ավտոմատ թարմացումների ընդարձակում

Տվյալների բազայի թարմացումները կարող են բարդ լինել, և կայքի սեփականատերերը տարբեր մոտեցումներ ունեն թարմացումների մշակման հարցում։ Drupal 8-ի ավտոմատ թարմացման մոդուլը օգտագործում է plugin-ների ճարտարապետություն՝ տվյալների բազայի թարմացումների մշակումը ընդարձակելու համար։

Սովորական կարգավորումը կայքը տեղափոխել սպասարկման ռեժիմ, գործարկել տվյալների բազայի թարմացումները, ապա դուրս բերել սպասարկման ռեժիմից։ Այս պահին փոփոխության UI չի պարունակում։ Թարմացումների կարգավորման հերթականությունը կարող է սահմանվել automatic_updates.settings.yml ֆայլի config պարամետրով։ Կարող եք նաև վերին գրանցել settings.php-ում՝ $config['automatic_updates.settings']['database_update_handling'] = ['rollback', 'alternative_plugin_id', 'yet_another_plugin']։ Սա plugin-ների ID-ների զանգված է։

Մոդուլի կազմում հասանելի plugin-ները՝

  • 'execute_updates'
  • 'ignore_updates'
  • 'maintenance_mode_activate'
  • 'maintenance_mode_disactivate'
  • 'rollback'

Կայքի սեփականատեր կամ ծառայության մատակարար կարող է գրել հավելյալ plugin-ներ՝ այս ֆունկցիոնալությունը ընդլայնելու համար, օրինակ՝ տվյալների բազայի պահուստավորման plugin։

Ավտոմատ թարմացման համակարգի ճարտարապետություն

Հիմնական հատկանիշներ

Հանրային անվտանգության հայտարարություններ (PSA)

Հանրային անվտանգության հայտարարությունները ցուցադրվում են Drupal.org-ի տրամադրած PSA.json ալիքի միջոցով և ցուցադրվում են simple drupal_set_message() ֆունկցիայով։

Պատրաստության ստուգումներ

Պատրաստության ստուգումները բազմազան ստուգումներ են, որոնք ցուցադրվում են Drupal ադմինիստրատորի ինտերֆեյսում որպես նախազգուշացումներ կամ սխալներ։

Թարմացումներ տեղում

Թարմացումները տեղում նախագծված են օգտագործելով Drupal.org-ի կողմից ստեղծված կիսատ պաչեր (quasi-patches), որոնք հեշավորված և ստորագրված են՝ օգտագործելով php-libsodium գրադարանը, որը հասանելի է և ներառված է PHP 5.3 տարբերակից։

Հաշվարկման անցնելուց հետո կիսատ պաչերը կիրառվում են PHP-ի ֆայլերի պատճենման ֆունկցիայի միջոցով՝ պարզապես թարմացնելու տեղաշարժված ֆայլերը։

Թեստավորման հնարավորություններ

Ավտոմատ թարմացման մոդուլի ներկայիս տարբերակում օգտատերը կարող է միացնել Drupal.org PSA JSON ալիքի թեստային տարբերակը, որը ցույց կտա PSA-ի ցուցադրման ձևը։

Արդյունքում.

1. Միացրեք automatic_updates_test մոդուլը Drupal ադմինիստրատորի ինտերֆեյսով կամ հետևյալ հրամանով.

$ drush pm-enable automatic_updates_test

2. Սահմանեք թեստային ալիքի URL-ը հետևյալով.

$ drush vset automatic_updates_psa_endpoint http://localhost/automatic_updates/test-json

Եթե ունեք ձեր սեփական թեստային ալիք, կարող եք այս հրամանով փոխարինել URL-ը ձեր ալիքի հասցեով։

Վերադարձնելու համար Drupal.org պաշտոնական PSA ալիքը.

1. Գործարկեք հրամանը.

$ drush vset automatic_updates_psa_endpoint https://updates.drupal.org/psa.json

2. Անջատեք automatic_updates_test մոդուլը Drupal ադմինիստրատորի ինտերֆեյսով կամ հրամանի միջոցով.

$ drush pm-disable automatic_updates_test

 

Drupal.org ենթակառուցվածք

Drupal ավտոմատ թարմացումները աջակցվում են Drupal.org ենթակառուցվածքի կողմից և ֆինանսավորվում են Drupal Association-ի կողմից։

Հանրային անվտանգության հայտարարությունների հոսք (PSA)

Drupal.org-ը տրամադրում է Drupal Public Security հայտարարությունների JSON հոսքը, որն օգտագործվում է ավտոմատ թարմացման մոդուլի կողմից։

Կանոնիկ URL-ը՝ https://updates.drupal.org/psa.json, թեստային ալիքը՝ https://updates.drupal.org/psa-this-is-only-a-test.json, որն օգտագործվում է անհրաժեշտության դեպքում թեստավորման համար։

Այս ալիքում ներառված է PSA-ների ակտիվ ցուցակը հետևյալ մանրամասներով՝

  • title: PSA-ի վերնագիր։
  • link: PSA-ի լիարժեք URL Drupal.org-ում։
  • project: PSA-ի նախատեսված նախագծի կարճ անունը։
  • type: PSA-ի նախատեսված նախագծի տեսակը՝ հիմնական, մոդուլ, թեմա, դիստրիբյուտիվ և այլն։
  • is_psa: դրոշակ, որը ցույց է տալիս, որ հաղորդագրությունը PSA է, այլ ոչ թե անվտանգության այլ տեսակ։
  • insecure: աղտոտված նախագծի տարբերակների ցուցակ, որոնք ներկայումս վտանգավոր են։ Սա չի ցույց տալիս, թե որ տարբերակներն են նշվելու որպես վտանգավոր, ցուցակը թարմացվում է անվտանգության թողարկման հետ։
  • pubDate: PSA-ի հրապարակման ամսաթիվը։

 

Օրինակ, եթե Drupal 7 և 8 թողարկումները 2019 թվականի մայիսի 8-ը - PSA-2019-05-07 և երրորդ կողմի տարբեր խոցելիություններ - PSA-2019-09-04 ներառված են psa.json-ում, ալիքը կարող է ունենալ հետևյալ տեսքը՝

[
   {
      "title" : "Drupal 7 and 8 release on May 8th, 2019 - PSA-2019-05-07",
      "insecure" : [
         "4.7.0-beta3",
         …
         "8.7.0-rc1",
         "8.7.0",
         "8.7.4"
      ],
      "link" : "https://www.drupal.org/psa-2019-05-07",
      "pubDate" : "2019-09-20T22:09:16+00:00",
      "project" : "drupal",
      "type" : "core",
      "is_psa" : "1"
   },
   {
      "project" : "securitydrupalorg",
      "pubDate" : "2019-09-12T21:35:55+00:00",
      "is_psa" : "1",
      "type" : "module",
      "insecure" : [],
      "title" : "Various 3rd Party Vulnerabilities - PSA-2019-09-04",
      "link" : "https://www.drupal.org/psa-2019-09-04"
   }
]

Այնուհետև այս ալիքը վերլուծվում է ավտոմատ թարմացման մոդուլով՝ ցուցադրելու Drupal ադմինիստրատորի ինտերֆեյսում։ Այլ մոդուլներ կամ ծառայություններ նույնպես կարող են օգտագործել և ցուցադրել այս ալիքը։

Փաթեթների գեներացում

Drupal.org-ի փաթեթավորման համակարգը ստեղծում է .tar.gz և .zip ֆայլերի բեռնման տարբերակները Drupal.org-ում։ Երբ համակարգը աշխատում է, այն նաև թարմացնում է Composer-ի ֆասադը և, ավտոմատ թարմացման համակարգի ավելացումով, ստեղծում է «quasi-patch»-եր, որոնք օգտագործվում են automatic_update մոդուլի միջոցով կայքի թարմացման համար։

Փաթեթների ստորագրում և անվտանգություն

Փաթեթների «quasi-patch»-երի անվտանգությունն ու վավերականությունը երաշխավորելու համար Drupal.org օգտագործում է hash-ման և ստորագրության ճարտարապետություն՝ հիմնված BSD Signify նախագծի վրա։

Drupal-ի մասնակիցները ստեղծել են PHP-հիմնված Signify իրականացման տարբերակը, որը հասանելի է Drupal GitHub տարածքում՝ https://github.com/drupal/php-signify։

Այս գրադարանը օգտագործվում է նախագծի հեշ կոդում ընդգրկված ֆայլերի SHA հեշներ ստեղծելու համար, որոնք հետո ստորագրվում են բաց/գաղտնի բանալի զույգով, որը գեներացվում է Drupal.org ենթակառուցվածքի HSM-ով։

Արդյունաբերության ֆիդբեք

Այս ավտոմատ թարմացման մոդուլի առաջին սերնդի վերաբերյալ ձեր կարծիքն արտահայտելու համար ստեղծեք հարց՝ ավտոմատ թարմացումների խնդիրների հերթում։

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.