6 modulis · 6.2
Atnaujinimai, atsarginės kopijos ir vaidmenys
6 modulis: Valdymas ir saugumas · Skaitymo laikas: 11 min.
Mokymosi tikslas: Po šios pamokos galėsite atnaujinti WooCommerce parduotuvę ir daryti jos atsargines kopijas neprarasdami užsakymų, o teises paskirstyti taip, kad kiekvienas galėtų atlikti tik tai, ko jam reikia.
Pagrindinės sąvokos: didelis ir mažas atnaujinimas, duomenų bazės atnaujinimas, plėtiniai ir suderinamumas, šablonų perrašymai (template overrides), pasenę šablonai, atsarginė kopija prieš atnaujinimą, užsakymai tarp atsarginės kopijos ir atkūrimo, HPOS lentelės, vaidmenys Parduotuvės valdytojas (Shop manager) ir Pirkėjas (Customer), mažiausių teisių principas, versijų rodymas, xmlrpc.php
Kuo parduotuvė skiriasi nuo įprastos svetainės
WordPress kurse (pamokos 7.2, 8.1 ir 8.2) aprašyta, kaip atnaujinti WordPress, kaip daryti atsargines kopijas ir kaip jas atkurti. Parduotuvei visa tai galioja, tačiau su vienu dideliu skirtumu: duomenų bazė keičiasi visą dieną. Į ją patenka kiekvienas užsakymas, kiekvienas pirkėjas, kiekvienas atsargų pokytis ir kiekvienas mokėjimas. Informacinėje svetainėje, atkūrę vakarykštę atsarginę kopiją, prarasite daugiausia vieną įrašą. Parduotuvėje prarasite užsakymus, už kuriuos jau sumokėta.
Todėl šiai pamokai taikomos dvi pagrindinės taisyklės:
- Parduotuvėje atkūrimas yra paskutinis žingsnis, o ne pirmasis.
- Atnaujinkite pagal planą, o ne "greitai tarp kitų darbų penktadienio popietę".
WooCommerce atnaujinimai
WooCommerce reguliariai išleidžia naujas versijas, o tarp jų pasirodo smulkūs pataisymai. Versijos numerį sudaro trys dalys, pavyzdžiui, 11.2.2. Pasikeitęs paskutinis skaičius reiškia smulkų pataisymą arba saugumo atnaujinimą; pasikeitęs pirmas arba antras skaičius atneša naujų funkcijų, o kartais ir pakeitimų, prie kurių turi prisitaikyti plėtiniai arba Jūsų tema.
Atnaujinant WooCommerce vyksta trys dalykai, kurių atnaujinant įprastą įskiepį matote rečiau:
- Duomenų bazės atnaujinimas. Kartais WooCommerce turi pakeisti lenteles. Tuomet valdymo skydelyje matysite pranešimą, kad duomenų bazė atnaujinama; tai vyksta fone per suplanuotus veiksmus (pamoka 7.3). Nenutraukite šio proceso ir skiltyje WooCommerce > Statusas patikrinkite, ar jis baigtas.
- Plėtiniai turi neatsilikti. Mokėjimų įskiepiai, pristatymo ir buhalterinės apskaitos integracijos nurodo, su kuria WooCommerce versija jie išbandyti. Įskiepių ekrane matysite įspėjimą, jei plėtinys nenurodo naujesnės versijos. Prieš atnaujindami perskaitykite savo mokėjimų įskiepio pakeitimų sąrašą: sugedęs mokėjimų įskiepis reiškia, kad parduotuvė nieko neparduoda.
- Šablonų perrašymai. Daugelis temų turi savo WooCommerce šablonų kopijas (temos aplankas
woocommerce/). Kai WooCommerce pakeičia originalą, kopija tampa pasenusi. Skilties WooCommerce > Statusas (Sistemos būsena) apačioje, prie temos, matyti, kuriuos šablonus tema perrašo ir kurie iš jų pasenę. Pasenusiuose šablonuose gali trūkti naujų laukų arba jie gali sukelti klaidų. Atnaujinkite temą arba paprašykite jos kūrėjo atnaujinimo.
Mažus atnaujinimus (paskutinis skaičius) geriausia įdiegti greitai, pageidautina automatiškai, nes jie dažnai taiso saugumo spragas. Didelius atnaujinimus pirmiausia išbandykite bandomojoje aplinkoje (staging, pamoka 7.3), ramiu metu, prieš tai iškart padarę atsarginę kopiją.
Atsarginės kopijos: kas dingsta atkuriant
Pavyzdys. Theehuis Example kiekvieną naktį 03.00 val. daro atsarginę kopiją. Antradienį 10.00 val. administratorius atnaujina WooCommerce, o po to prekės puslapyje rodoma klaida. Nuo 03.00 iki 10.00 gauti šeši užsakymai, apmokėti per mokėjimų paslaugų teikėją. Jei dabar atkursite 03.00 val. atsarginę kopiją:
- tie šeši užsakymai dings iš duomenų bazės, nors pinigai bus pas mokėjimų paslaugų teikėją;
- parduotuvė nebežinos, kad atsargų liko mažiau;
- vėliau parduotuvė dar gali gauti teikėjo pranešimų (webhooks) apie užsakymus, kurių ji nežino.
Todėl:
- Atsarginę kopiją darykite iškart prieš atnaujinimą, o ne tik naktį. Tada spraga bus kuo mažesnė.
- Atkurdami užsirašykite, kurie užsakymai gauti po atsarginės kopijos (iš laiškų "Naujas užsakymas" ir savo mokėjimų paslaugų teikėjo valdymo skydelio), ir vėliau juos atkurkite rankiniu būdu arba iš anksto eksportuokite.
- Jei įmanoma, atkurkite tik failus (seną įskiepio ar temos aplanką), kai problema slypi kode, o duomenų bazę palikite. Atnaujinimą dažnai galima atšaukti įdiegus ankstesnę įskiepio versiją; WordPress kurso pamokoje 8.2 parodyta, kaip atkurti tikslingai. Jei atnaujinimas jau pakeitė duomenų bazę, senoji versija gali su ja nebeveikti: todėl pirmiausia išbandykite bandomojoje aplinkoje.
- Atsargines kopijas darykite dažniau nei įprastai svetainei: parduotuvei, kuri gauna užsakymų visą dieną, reikia bent kasdienės, o geriausia dar dažnesnės duomenų bazės atsarginės kopijos, taip pat kopijos už serverio ribų (taisyklė 3-2-1, WordPress kurso pamoka 8.1).
Nuo WooCommerce 8.2 naujose parduotuvėse užsakymai saugomi atskirose lentelėse (HPOS, pamoka 1.2), pavyzdžiui, wp_wc_orders. Atsarginių kopijų įskiepis, kuris įtraukia tik "įrašus" arba renkasi lenteles pagal pavadinimą, turi įtraukti ir šias lenteles. Atlikdami atkūrimo bandymą (WordPress kurso pamoka 8.2) patikrinkite, ar užsakymai tikrai yra kopijoje.
WebOké atveju WebOké Backups kiekvieną naktį daro atsarginę kopiją, kuri 30 dienų saugoma kitame duomenų centre (DA 16.1); be to, prieš atnaujinimą galite patys padaryti atsarginę kopiją DirectAdmin arba Installatron. Pas kitus talpinimo paslaugų teikėjus tai veikia panašiai; pasiteiraukite, kaip dažnai ir kiek laiko kopijos saugomos.
Vaidmenys: kas ką gali
WooCommerce prideda prie WordPress du vaidmenis (WordPress kurso pamoka 3.3):
- Pirkėjas (Customer): pirkėjas, turintis paskyrą. Gali matyti tik savo užsakymus ir duomenis. Niekada nesuteikite šiam vaidmeniui administravimo teisių.
- Parduotuvės valdytojas (Shop manager): gali tvarkyti prekes, užsakymus, pirkėjus, kuponus ir WooCommerce nustatymus, tačiau negali diegti įskiepių ar keisti temos.
Darbuotojams, kurie pakuoja užsakymus, atsako į pirkėjų klausimus ar įveda prekes, pakanka vaidmens Parduotuvės valdytojas. Administratorius skirtas tik tam, kas rūpinasi technine dalimi. Kiekvienam darbuotojui sukurkite atskirą paskyrą su dviejų veiksnių autentifikavimu (WordPress kurso pamoka 7.3); jokios bendros paskyros "parduotuvė". Parduotuvės valdytojas mato visus pirkėjų duomenis, todėl, darbuotojui išėjus, jo paskyrą pašalinkite.
API raktai (pamoka 2.4) taip pat yra teisių forma: integracijai suteikite tik skaitymo teisę, jei jai nereikia nieko rašyti, ir ištrinkite nebenaudojamus raktus.
Ką Jūsų parduotuvė rodo visiems
Užpuolikai ieško parduotuvių, kuriose veikia sena WooCommerce versija arba mokėjimų įskiepis su žinoma spraga. WooCommerce pagal numatytuosius nustatymus į pirminį kodą įterpia eilutę <meta name="generator" content="WooCommerce 11.2.2">, o versija nurodoma ir prie stilių failų (?ver=). Paslėpimas duoda nedaug naudos, atnaujinimas duoda daug. Tvarkingai atnaujinta parduotuvė dėl matomo versijos numerio gali per daug nesijaudinti. Atsiliekanti parduotuvė save išduoda.
Failas xmlrpc.php yra senas sąsajos būdas, per kurį programėlės prisijungia prie WordPress. Juo dažnai piktnaudžiaujama bandant atspėti slaptažodžius. Jei nenaudojate programėlės ar paslaugos, kuriai jo reikia, jį uždarykite (WebOké jis pagal numatytuosius nustatymus uždarytas, KB 169). Atviras xmlrpc.php į įprastą užklausą naršyklėje atsako tekstu "XML-RPC server accepts POST requests only." ir statusu 405. Uždarytas grąžina 403 arba 404.
Santrauka
- Parduotuvės duomenų bazė keičiasi visą dieną: atkūrus atsarginę kopiją prarandami jau apmokėti užsakymai.
- Mažus atnaujinimus diekite greitai, didelius pirmiausia išbandykite bandomojoje aplinkoje; atkreipkite dėmesį į duomenų bazės atnaujinimą, plėtinius ir pasenusius šablonus skiltyje WooCommerce > Statusas.
- Atsarginę kopiją darykite iškart prieš atnaujinimą ir dažniau nei įprastai svetainei; patikrinkite, ar į ją patenka užsakymų lentelės.
- Darbuotojams skirkite vaidmenį Parduotuvės valdytojas, o ne Administratorius; kiekvienam atskirą paskyrą su dviejų veiksnių autentifikavimu.
- Versijų paslėpimas padeda mažai, atnaujinimas daug; uždarykite xmlrpc.php, jei jo nenaudojate.
Testas (quiz)
Užduotis
Užduotis A6.2: Ar Jūsų e. parduotuvė rodo versijas? Įveskite savo parduotuvės adresą, WordPress versiją (Pultas > Atnaujinimai) ir WooCommerce versiją (Įskiepiai). Programa užklausia pagrindinį puslapį, sklaidos kanalą (feed) ir failą /wp-content/plugins/woocommerce/readme.txt (tik pirmuosius 2 kB, eilutę "Stable tag"). Ji ieško WordPress ir WooCommerce versijų numerių generator eilutėse ir po ?ver= prie WooCommerce stilių failų, o naujausias versijas užklausia wordpress.org. Žalia, jei Jūsų versijos yra naujausios ir tai, kas matoma, su jomis sutampa. Oranžinė, jei laukia tik mažas atnaujinimas arba versija matoma, bet yra naujausia. Raudona, jei atsiliekate didele versija, jei matoma versija skiriasi nuo įvestos (veikia kas nors kita, nei manote) arba įvedus neteisingus duomenis.
Užduotis A6.2b: Ar xmlrpc uždarytas? Įveskite savo parduotuvės adresą ir pažymėkite, jei naudojate programėlę ar paslaugą, kuriai reikia xmlrpc.php. Programa užklausia /xmlrpc.php įprasta GET užklausa, nieko nesiųsdama. Žalia, jei gaunamas 401, 403, 404, 410, nukreipimas arba įprastas HTML puslapis. Raudona, jei gaunamas 405 su tekstu "XML-RPC server accepts POST requests only." ir varnelė nepažymėta; oranžinė, jei nurodėte, kad Jums jo reikia. Ji taip pat tikrina, ar naudotojų vardų sąrašas per /wp-json/wp/v2/users yra viešas (oranžinė, jei vardai matomi).
Žalia varnelė reiškia, kad šis patikrinimas šiuo metu tvarkingas, o ne tai, kad Jūsų parduotuvė saugi.
Platesniam skaitymui
Žingsniai valdymo skydelyje taikomi WebOké; pas kitus paslaugų teikėjus tai veikia panašiai.
- Nemokamas WordPress kursas 7.2: Atnaujinimų sekimas
- Nemokamas WordPress kursas 8.1: Atsarginės kopijos: kas, kur ir kaip dažnai
- Nemokamas WordPress kursas 8.2: Atkūrimas ir testavimas
- Nemokamas WordPress kursas 3.3: Vartotojai ir rolės
- DirectAdmin vadovas 16.1: Kokios atsarginės kopijos yra prieinamos „WebOké“
- WebOké atsarginės kopijos: kaip peržiūrėti, atkurti arba atsisiųsti atsarginę kopiją
- WordPress: nepavyksta pasiekti xmlrpc.php
- High Performance Order Storage (developer.woocommerce.com, anglų kalba): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
