Ugrás a tartalomhoz

Elkülönítés

A Rudel kérés alapján kiválasztott rétegként működik. A kiválasztott kérések a sandbox adatbázistábláit és témájának fájljait használják, miközben a gazdagép WordPress telepítésén futnak.

Sandboxedként elkülönített elemek

WordPress táblái

Minden sandbox egy generált táblaprefixumot kap: a gazdagép prefixumát, kiegészítve a sandboxazonosító MD5 értékének első hét hexadecimális karakterével.

Text
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users

A Rudel még azelőtt átállítja az WordPress táblaprefixumát, hogy a WordPress befejezné az indulást, így a sandboxkérés összes lekérdezése a sandbox másolatából olvas és oda ír.

Felhasználók

Az users és az usermeta tábla a többi táblával együtt klónozódik. A sandbox létrehozásakor a gazdagép felhasználói és jelszavai kerülnek bele; ezt követően a sandboxban létrehozott, módosított vagy törölt felhasználók nem érintik a gazdagépet, és a gazdagép módosításai sem jutnak el a sandboxba.

Aktív tém fájljai

A kiválasztott téma a sandbox könyvtárába másolódik:

Text
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}

Ha a téma gyermek téma, a Rudel a szülő témát is átmásolja, hogy a sablonkapcsolat érvényes maradjon. A sandbox mindig a létrehozásakor rögzített témát szolgálja ki; a sandboxon belüli témaváltásnak nincs hatása.

Megosztva a gazdagéppel

  • WordPress mag
  • bővítményfájlok
  • feltöltött médiafájlok

A gazdagépen telepített vagy frissített bővítmény minden sandboxban települ vagy frissül. Az aktív bővítményeket az options tábla tárolja, ezért az aktiválási állapot sandboxonként különbözik. A sandboxban végzett feltöltések a gazdagép uploads könyvtárába kerülnek. Így a sandboxok gyorsan létrehozhatók, és elkerülhető a WP_CONTENT_DIR globális lecserélése.

A Rudel maradjon aktív minden sandboxban. A levelek blokkolása és a téma rétegezése a bővítményből fut; ha kiválasztott sandbox mellett deaktiválja, a megosztott wp-config.php fájlból is eltávolítja az indítósort, így a sandbox kiválasztása az egész telepítésen kikapcsol (13. számú probléma).

Sandbox kiválasztása

A HTTP kérések az alábbi módokon választanak ki sandboxot:

  • a X-Rudel-Environment fejléc (régi aliasa: X-Rudel-Sandbox)
  • a rudel_environment süti (régi aliasa: rudel_sandbox)

A Rudel soha nem állítja be és nem törli a sütit. A gazdagépre való visszatéréshez törölje a sütit; az adminisztrációs sáv Sandbox eleme a gazdagép URL oldalára mutat, de a sütit meghagyja (10. számú probléma).

A WP-CLI parancsok az alábbi módokon választanak ki sandboxot:

  • a RUDEL_ENVIRONMENT környezeti változóval
  • egy olyan --url használatával, amelynek gazdagépneve a sandboxazonosítóval kezdődik, például: --url=http://alpha-3be7.example.test

A kiválasztó nincs hitelesítve. Bármelyik, a webhelyet elérő kliens megkapja az adott sandboxot, ha érvényes sandboxazonosítót küld; a sandboxazonosítók (név és négy hexadecimális karakter) könnyen kitalálhatók. Ne tekintse a sandbox kiválasztását hozzáférés-vezérlési határnak; nyilvános gazdagépet webszerver- vagy hálózati szinten védjen.

Kérés alapértelmezett beállításai

Kiválasztott kérés esetén a Rudel:

  • pre_wp_mail szűrővel blokkolja a kimenő e-maileket
  • a WP_TEMP_DIR értékét a sandbox tmp könyvtárára állítja
  • a WP_CACHE_KEY_SALT értékét sandboxonként egyedire állítja, hogy a tartós objektumgyorsítótárak elkülönítsék a sandbox kulcsait
  • WP_DEBUG naplózást kínál a sandbox debug.log fájljába, valamint a sandboxazonosítóból származtatott hitelesítési kulcsokat és sókat

Az indító csak akkor definiálja ezeket az állandókat, ha a wp-config.php még nem definiálta őket. Egy szabványos wp-config.php definiálja a WP_DEBUG értékét, valamint az összes kulcsot és sót; ilyen telepítésen tehát a sandboxkérések a gazdagép hibakeresési beállításait, kulcsait és sóit használják (4. számú probléma). Mivel a felhasználók is klónozódnak, a gazdagép bejelentkezési sütije a sandboxban is érvényes lehet.

Futásidejű metaadatok

A Rudel futásidejű metaadatai a gazdagép WordPress MySQL tábláiban maradnak:

Text
wp_rudel_environments
wp_rudel_worktrees

Ezek a táblák jelentik a Rudel hiteles adatforrását. A környezeti könyvtárak a kezelt fájlokat és elemeket tartalmazzák, nem a futásidejű nyilvántartás állapotát.