Testovací prostředí (staging): bezpečné testování
Modul 8: Zálohy, testovací prostředí a aktualizace PHP · Doba čtení: 9 minut
Cíl lekce: Po této lekci dokážete vytvořit testovací prostředí (staging), zabezpečit ho a bezpečně přenést změny zpět na Váš ostrý web.
Klíčové pojmy: staging, produkce, klonování, subdoména, noindex, heslo na adresáři, vypnutí pošty, platební brána v testovacím režimu, synchronizace, přepsání databáze, lokální vývojové prostředí
Co je staging
Testovací prostředí (staging) je kopie Vašeho skutečného webu, na vlastní adrese, kde zkoušíte změny. Váš skutečný web se pak nazývá produkce. Na stagingu může cokoliv selhat: nová šablona, velká aktualizace, upgrade PHP (lekce 8.4), nový plugin. Teprve až to funguje, provedete změnu na produkci.
Staging používáte pro rizikové změny: velké verze WordPressu nebo pluginu pro e-shop, jinou šablonu, upgrade PHP, úklid pluginů (lekce 5.4), redesign. Pro textovou úpravu nebo malou aktualizaci pluginu to není nutné.
Způsoby vytvoření stagingu
| Způsob | Jak | Pro koho |
|---|---|---|
| Klonovací funkce Vašeho instalátoru | U Installatronu „Kopírovat“ s volbou „Create a staging site“, u Softaculous „Create Staging“, u WP Toolkitu „Clone“ | Nejjednodušší cesta, pokud byl Váš web vytvořen instalátorem |
| Staging od Vašeho hostingu | U spravovaného WordPress hostingu často jediné tlačítko | Pokud to Váš hosting nabízí |
| Plugin pro staging | Plugin vytvoří kopii v podadresáři nebo na subdoméně | Pokud nemáte instalátor nebo funkci hostingu |
| Ručně | Obnovení zálohy vedle webu (lekce 8.2) a úprava adres | Poučné a vždy možné |
| Lokálně na vlastním počítači | Program pro lokální vývoj WordPressu nebo prostředí Docker | Pro vývojáře a rozsáhlejší úpravy |
Staging na subdoméně (staging.example.com) bývá obvykle lepší než v podadresáři (example.com/staging): chová se víc jako Váš skutečný web a cookies i pravidla v .htaccess se navzájem nepletou. Subdoménu nejprve vytvořte, s certifikátem.
Zabezpečení: tři věci, které vyřešíte hned
Kopie Vašeho webu je plnohodnotný web se vším Vaším obsahem, a někdy i se všemi údaji o zákaznících. Proto hned zařiďte:
1. Žádné vyhledávače
Bez ochrany může Google Váš staging najít a zaindexovat. Pak máte duplicitní obsah a lidé z vyhledávání se dostanou na Váš testovací web. Udělejte alespoň jednu, nejlépe obě tyto věci:
- Heslo na celém stagingu (basic authentication přes panel hostingu, „zabezpečený adresář“). Bez hesla pak web nevidí nikdo, ani vyhledávače. Toto je nejsilnější varianta.
- Odrazení vyhledávačů v Nastavení > Zobrazování (lekce 2.4). Tím se na každou stránku nastaví
noindex. Vyhledávače to většinou respektují, ale jde o žádost, ne o zámek.
Pozor na opačný případ: pokud staging později synchronizujete zpět na produkci, zaškrtávací políčko noindex s sebou nepřenášejte. Produkční web, který po „úspěšné“ synchronizaci zmizí z Google, je klasický příklad. Úkol k této lekci kontroluje obě možnosti.
2. Žádná pošta skutečným lidem
Kopie e-shopu nebo webu s členstvím může odesílat poštu: potvrzení, připomenutí, newslettery, odkazy na obnovení hesla. Zákazníci pak dostávají matoucí e-maily z Vašeho testovacího webu. Vypněte odchozí poštu na stagingu, nebo ji přesměrujte na vlastní adresu (pomocí pluginu pro zachytávání pošty, nebo vypnutím SMTP pluginu na stagingu, lekce 9.1). Vypněte také naplánované úlohy, které odesílají poštu.
3. Platby a propojení v testovacím režimu
E-shop na stagingu by měl fungovat v testovacím režimu platební brány, ne se skutečnými platbami. Ostatní propojení (účetnictví, sklad, CRM) vypněte, nebo přepněte na testovací prostředí, jinak dostanou testovací objednávky jako skutečné.
Pokud na stagingu pracujete se skutečnými údaji zákazníků, platí tam stejně GDPR (lekce 9.3): neuchovávejte je déle, než je nutné, a staging po dokončení odstraňte.
Zpět na produkci: záludnost databáze
Nejtěžší krok je přenesení Vašich změn zpět na produkci. Instalátory a stagingové pluginy k tomu mají funkci (u Installatronu „Synch“, u jiných „Push to live“). Riziko:
- V pondělí vytvoříte staging. Od úterý do čtvrtka testujete novou šablonu.
- Mezitím na produkci přibude dvacet objednávek, tři nové příspěvky a padesát komentářů.
- V pátek synchronizujete databázi ze stagingu na produkci. Databáze stagingu je ta z pondělí: objednávky, příspěvky a komentáře od úterý do pátku zmizí.
Proto:
- Nejprve udělejte zálohu produkce (lekce 8.1), těsně před synchronizací.
- Synchronizujte jen to, co je potřeba. Aktualizace šablony nebo pluginu je otázkou souborů; databáze tak často nemusí jít s sebou. Mnoho synchronizačních funkcí umožňuje volbu: jen soubory, nebo jen určité tabulky.
- U e-shopu nebo vytíženého webu: změnu raději proveďte znovu přímo na produkci (stejné kroky jako na stagingu, teď už víte, že fungují), místo přenášení databáze. Nebo naplánujte klidnou chvíli s krátkým pozastavením obchodu.
- Poté zkontrolujte produkci: kontrolní seznam z lekce 8.2 a zaškrtávací políčko noindex.
Staging je místo, kde se učíte, co se stane. Samotnou změnu nejbezpečněji provedete znovu přímo na produkci.
Úklid
Staging, který zůstává stát měsíce, se stává zapomenutým webem: neaktualizovaným, se starými pluginy a skutečnými údaji. Přesně to je slabé místo z lekce 7.1. Po dokončení staging odstraňte, nebo ho udržujte jako plnohodnotný web (aktualizace, heslo). Klon zabírá stejně místa jako originál a má vlastní databázi.
Shrnutí
- Staging je kopie Vašeho webu na vlastní adrese pro testování rizikových změn.
- Vytvořte ho pomocí instalátoru, hostingu, pluginu nebo ručně, nejlépe na subdoméně s certifikátem.
- Hned ho zabezpečte: heslo a/nebo noindex, žádná pošta skutečným lidem, platby v testovacím režimu.
- Nesynchronizujte zpět naslepo: databáze stagingu přepíše to, co na produkci přibylo. Nejprve zálohujte, přeneste jen to, co je potřeba, nebo proveďte změnu znovu.
- Po dokončení staging odstraňte a zaškrtávací políčko noindex s sebou nepřenášejte na produkci.
Kvíz
Úkol
Úkol A8.3: Je Vaše testovací prostředí (staging) zabezpečené? Vyplňte adresu svého stagingu (subdoména Vaší vlastní domény, například z úkolu D8.2) a adresu svého skutečného webu. Pomocí kódu úkolu prokažte, že doména je Vaše. Program na stagingu zkontroluje: odpovídá přes https a je zabezpečený (dotaz na heslo, nebo noindex v HTML či v hlavičce X-Robots-Tag)? Ukazuje odkaz na REST (wp-json) na samotný staging, a ne na Váš skutečný web? A na Vašem skutečném webu: není tam noindex?
Doporučené čtení
Tyto články popisují kroky v panelech WebOké; v jiných panelech fungují obdobně.
