Modul 6 · 6.2
Uppdateringar, säkerhetskopior och roller
Modul 6: Förvaltning och säkerhet · Lästid: 11 minuter
Lärandemål: Efter den här lektionen kan du uppdatera och säkerhetskopiera en WooCommerce-butik utan att tappa beställningar, och fördela behörigheter så att alla bara kan göra det som behövs.
Nyckelbegrepp: stor och liten uppdatering, databasuppdatering, tillägg och kompatibilitet, mallöverskrivningar (template overrides), föråldrade mallar, säkerhetskopia före uppdateringen, beställningar mellan säkerhetskopia och återställning, HPOS-tabeller, rollerna Butiksägare (Shop manager) och Kund (Customer), minsta möjliga behörighet, synliga versioner, xmlrpc.php
Varför en butik skiljer sig från en vanlig webbplats
I WordPress-kursen (lektion 7.2, 8.1 och 8.2) går vi igenom hur du uppdaterar WordPress, hur du gör säkerhetskopior och hur du återställer. För en butik gäller allt det, med en stor skillnad: databasen ändras hela dagen. Varje beställning, varje kund, varje lagerändring och varje betalning hamnar där. På en informationssajt förlorar du med gårdagens säkerhetskopia högst ett inlägg. I en butik förlorar du beställningar som redan är betalda.
Därför två tumregler för den här lektionen:
- I en butik är återställning det sista steget, inte det första.
- Uppdatera enligt en plan, inte "snabbt i förbifarten på fredagseftermiddagen".
Uppdateringar av WooCommerce
WooCommerce släpper regelbundet nya versioner, med små korrigeringar emellan. Versionsnumret har tre delar, till exempel 11.2.2. En ändring i den sista siffran är en liten korrigering eller säkerhetsuppdatering. En ändring i den första eller andra siffran ger nya funktioner och ibland förändringar som tillägg eller ditt tema måste anpassas till.
Tre saker händer vid en uppdatering av WooCommerce som du ser mer sällan med ett vanligt tillägg:
- En databasuppdatering. Ibland måste WooCommerce ändra tabellerna. Då ser du ett meddelande i adminpanelen om att databasen uppdateras. Det körs i bakgrunden via de schemalagda åtgärderna (lektion 7.3). Avbryt inte, och kontrollera under WooCommerce > Status om det är klart.
- Tilläggen måste hänga med. Betaltillägg, fraktkopplingar och bokföringskopplingar anger upp till vilken WooCommerce-version de är testade. På sidan för tillägg ser du en varning om ett tillägg inte nämner en nyare version. Läs ändringarna för ditt betaltillägg innan du uppdaterar: ett betaltillägg som slutar fungera betyder en butik som inte säljer.
- Mallöverskrivningar. Många teman har egna kopior av WooCommerce-mallar (mappen
woocommerce/i temat). Om WooCommerce ändrar originalet blir kopian föråldrad. Under WooCommerce > Status (Systemstatus) visas längst ned, vid temat, vilka mallar det skriver över och vilka som är föråldrade. Föråldrade mallar kan sakna nya fält eller ge fel. Uppdatera temat eller be utvecklaren om en uppdatering.
Små uppdateringar (sista siffran) installerar du helst snabbt, gärna automatiskt, eftersom de ofta åtgärdar säkerhetsbrister. Stora uppdateringar testar du först i staging (lektion 7.3), vid en lugn tidpunkt, med en säkerhetskopia precis innan.
Säkerhetskopior: vad som försvinner vid återställning
Ett exempel. Theehuis Example gör en säkerhetskopia varje natt kl. 03.00. På tisdagen kl. 10.00 uppdaterar administratören WooCommerce, och sedan visar produktsidan ett fel. Mellan 03.00 och 10.00 kom sex beställningar in, betalda via betalleverantören. Om du nu återställer säkerhetskopian från 03.00 händer följande:
- de sex beställningarna försvinner ur databasen, medan pengarna finns hos leverantören;
- butiken vet inte längre att lagret har minskat;
- butiken kan senare få meddelanden (webhooks) från leverantören om beställningar som den inte känner till.
Därför:
- Gör en säkerhetskopia precis före en uppdatering, inte bara på natten. Då blir luckan så liten som möjligt.
- Anteckna vid återställning vilka beställningar som kom efter säkerhetskopian (från mejlen "Ny beställning" och din leverantörs kontrollpanel) och lägg in dem för hand efteråt, eller exportera dem i förväg.
- Återställ helst bara filerna (den gamla tilläggs- eller temamappen) om problemet sitter i koden, och låt databasen vara. En uppdatering kan ofta backas genom att du installerar den tidigare versionen av tillägget. I WordPress-kursen, lektion 8.2, ser du hur du återställer selektivt. Har uppdateringen redan ändrat databasen kanske den gamla versionen inte längre fungerar med den: därför testar du först i staging.
- Säkerhetskopiera oftare än för en vanlig webbplats: en butik med beställningar hela dagen behöver minst dagligen, helst oftare, en säkerhetskopia av databasen, och en kopia utanför servern (3-2-1-regeln, WordPress-kursen lektion 8.1).
Sedan WooCommerce 8.2 lagras beställningar i nya butiker i egna tabeller (HPOS, lektion 1.2), till exempel wp_wc_orders. Ett säkerhetskopieringstillägg som bara tar med "inlägg" eller väljer tabeller efter namn måste också ta med de tabellerna. Kontrollera vid ett återställningstest (WordPress-kursen, lektion 8.2) att beställningarna verkligen finns med.
Hos WebOké gör WebOké Backups varje natt en säkerhetskopia som sparas i 30 dagar i ett annat datacenter (DA 16.1). Dessutom kan du själv göra en säkerhetskopia i DirectAdmin eller Installatron före en uppdatering. Hos andra webbhotell fungerar det på liknande sätt; fråga hur ofta och hur länge.
Roller: vem får göra vad
WooCommerce lägger till två roller i WordPress (WordPress-kursen, lektion 3.3):
- Kund (Customer): en kund med konto. Kan bara se sina egna beställningar och uppgifter. Ge aldrig den här rollen administrationsbehörighet.
- Butiksägare (Shop manager): kan hantera produkter, beställningar, kunder, rabattkoder och inställningarna i WooCommerce, men kan inte installera tillägg eller byta tema.
För medarbetare som packar beställningar, svarar på kundfrågor eller lägger in produkter räcker Butiksägare. Administratör är bara för den som sköter tekniken. Varje medarbetare får ett eget konto med tvåstegsverifiering (WordPress-kursen, lektion 7.3), inget delat konto "butik". En butiksägare ser alla kunduppgifter, så ta bort konton när någon slutar.
API-nycklar (lektion 2.4) är också en form av behörighet: ge en koppling bara läsrätt om den inte behöver skriva något, och ta bort nycklar som inte längre används.
Vad din butik visar för alla
Angripare letar efter butiker med en gammal version av WooCommerce eller ett betaltillägg med en känd sårbarhet. WooCommerce lägger som standard in raden <meta name="generator" content="WooCommerce 11.2.2"> i källkoden, och versionen finns också efter stilmallarna (?ver=). Att dölja ger en liten vinst, att uppdatera en stor. En butik som är uppdaterad behöver inte oroa sig mycket för ett synligt versionsnummer. En butik som ligger efter avslöjar det.
Filen xmlrpc.php är en gammal koppling som appar använder för att logga in i WordPress. Den missbrukas ofta för att gissa lösenord. Om du inte använder någon app eller tjänst som behöver den stänger du den (hos WebOké är den stängd som standard, KB 169). En öppen xmlrpc.php svarar på en vanlig förfrågan i webbläsaren med "XML-RPC server accepts POST requests only." och status 405. En stängd ger 403 eller 404.
Sammanfattning
- En butiksdatabas ändras hela dagen: en återställning kostar beställningar som redan är betalda.
- Små uppdateringar snabbt, stora uppdateringar först i staging; håll koll på databasuppdateringen, tilläggen och föråldrade mallar under WooCommerce > Status.
- Säkerhetskopiera precis före en uppdatering och oftare än för en vanlig webbplats; kontrollera att beställningstabellerna kommer med.
- Medarbetare får rollen Butiksägare, inte Administratör; var och en med ett eget konto med tvåstegsverifiering.
- Att dölja versioner hjälper lite, att uppdatera mycket; stäng xmlrpc.php om du inte använder den.
Quiz
Uppgift
Uppgift A6.2: Visar din butik versioner? Fyll i adressen till din butik, din WordPress-version (Adminpanel > Uppdateringar) och din WooCommerce-version (Tillägg). Programmet hämtar startsidan och flödet, och filen /wp-content/plugins/woocommerce/readme.txt (bara de första 2 kB, raden "Stable tag"). Det letar efter versionsnummer för WordPress och WooCommerce i generator-raderna och efter ?ver= vid WooCommerce stilmallar, och hämtar de senaste versionerna från wordpress.org. Grönt om dina versioner är de senaste och det som syns stämmer med dem. Orange om bara en liten uppdatering återstår, eller om versionen syns men är aktuell. Rött om du ligger en stor version efter, om den synliga versionen skiljer sig från det du fyllde i (något annat körs än du tror), eller vid ogiltig inmatning.
Uppgift A6.2b: Är xmlrpc stängt? Fyll i adressen till din butik och kryssa i om du använder en app eller tjänst som behöver xmlrpc.php. Programmet hämtar /xmlrpc.php med en vanlig GET, utan att skicka något. Grönt vid 401, 403, 404, 410, en omdirigering eller en vanlig HTML-sida. Rött vid 405 med texten "XML-RPC server accepts POST requests only." utan kryss; orange om du angav att du behöver den. Det kontrollerar också om listan med användarnamn via /wp-json/wp/v2/users är offentlig (orange om namn syns).
En grön bock betyder att den här kontrollen stämmer just nu, inte att din butik är säker.
Läs mer
Stegen i en kontrollpanel gäller för WebOké; hos andra leverantörer fungerar det på liknande sätt.
- Gratis WordPress-kurs 7.2: Hålla koll på uppdateringar
- Gratis WordPress-kurs 8.1: Säkerhetskopior: vad, var och hur ofta
- Gratis WordPress-kurs 8.2: Återställa och testa
- Gratis WordPress-kurs 3.3: Användare och roller
- DirectAdmin-guide 16.1: Vilka backuper finns hos WebOké
- WebOké Backups: visa, återställa eller ladda ner en backup
- WordPress: åtkomst till xmlrpc.php fungerar inte
- High Performance Order Storage (developer.woocommerce.com, engelska): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
