Pereiti prie turinio

Izoliavimas

Rudel yra užklausos pasirenkamų perdangų sistema. Pasirinkta užklausa naudoja smėlio dėžės duomenų bazės lenteles ir temos failus, tačiau veikia pagrindinės aplinkos WordPress dieginyje.

Atskiri kiekvienoje smėlio dėžėje

WordPress lentelės

Kiekviena smėlio dėžė gauna sugeneruotą lentelių prefiksą: pagrindinės aplinkos prefiksą ir pirmus septynis šešioliktainius smėlio dėžės ID MD5 simbolius.

Text
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users

Rudel pakeičia WordPress lentelių prefiksą prieš baigiant WordPress įkėlimą, todėl kiekviena užklausa smėlio dėžėje skaito ir įrašo jos lentelių kopijas.

Naudotojai

users ir usermeta lentelės klonuojamos kartu su kitomis. Sukūrimo metu smėlio dėžėje yra pagrindinės aplinkos naudotojai ir jų slaptažodžiai; vėliau smėlio dėžėje sukurti, pakeisti ar ištrinti naudotojai pagrindinės aplinkos neveikia, o pagrindinės aplinkos pakeitimai smėlio dėžės nepasiekia.

Aktyvios temos failai

Pasirinkta tema nukopijuojama į smėlio dėžės katalogą:

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

Jei tema yra dukterinė, Rudel nukopijuoja ir pagrindinę temą, kad šablono ryšys liktų galiojantis. Smėlio dėžė visada pateikia kuriant įrašytą temą; temos pakeitimas pačioje smėlio dėžėje nieko nekeičia.

Bendra su pagrindine aplinka

  • WordPress branduolys
  • papildinių failai
  • įkelti medijos failai

Pagrindinėje aplinkoje įdiegtas ar atnaujintas papildinys įdiegiamas arba atnaujinamas visose smėlio dėžėse. Aktyvūs papildiniai saugomi parinkčių lentelėje, todėl kiekvienos smėlio dėžės aktyvinimo būsena atskira. Smėlio dėžėje įkelti failai patenka į pagrindinės aplinkos įkėlimų katalogą. Taip smėlio dėžės sukuriamos greitai ir išvengiama visuotinio WP_CONTENT_DIR pakeitimo.

Palikite Rudel aktyvų kiekvienoje smėlio dėžėje. Pašto blokavimas ir temos perdanga veikia per šį papildinį, o jį išjungus, kai pasirinkta smėlio dėžė, iš bendro wp-config.php pašalinama ir įkrovos eilutė, todėl smėlio dėžių pasirinkimas išjungiamas visame dieginyje (issue #13).

Smėlio dėžės pasirinkimas

HTTP užklausos pasirenka smėlio dėžę per:

  • X-Rudel-Environment antraštę (senasis alias X-Rudel-Sandbox)
  • rudel_environment slapuką (senasis alias rudel_sandbox)

Rudel niekada nenustato ir neištrina slapuko. Norėdami grįžti į pagrindinę aplinką, ištrinkite slapuką; administravimo juostos elementas Sandbox pateikia nuorodą į pagrindinės aplinkos URL, bet slapuką palieka (issue #10).

WP-CLI komandos pasirenka smėlio dėžę per:

  • RUDEL_ENVIRONMENT aplinkos kintamąjį
  • --url, kurio pagrindinis kompiuteris prasideda smėlio dėžės ID, pavyzdžiui, --url=http://alpha-3be7.example.test

Pasirinkimo mechanizmas nėra autentifikuotas. Bet kuris klientas, galintis pasiekti svetainę ir nusiųsti galiojantį smėlio dėžės ID, patenka į tą smėlio dėžę, o smėlio dėžių ID (pavadinimas ir keturi šešioliktainiai simboliai) lengva atspėti. Smėlio dėžės pasirinkymo nelaikykite prieigos kontrolės riba; viešą pagrindinę aplinką apsaugokite žiniatinklio serverio arba tinklo lygmeniu.

Numatytoji užklausos elgsena

Pasirinktoje užklausoje Rudel:

  • blokuoja siunčiamus el. laiškus per pre_wp_mail filtrą
  • nustato WP_TEMP_DIR į smėlio dėžės tmp katalogą
  • nustato WP_CACHE_KEY_SALT į smėlio dėžei skirtą reikšmę, kad nuolatinės objektų talpyklos raktai nesusimaišytų
  • siūlo WP_DEBUG registravimą smėlio dėžės debug.log bei autentifikavimo raktus ir druskas, išvestus iš smėlio dėžės ID

Įkrovos procesas apibrėžia kiekvieną iš šių konstantų tik tada, jei wp-config.php jos dar neapibrėžė. Standartinis wp-config.php apibrėžia WP_DEBUG ir visus raktus bei druskas, todėl tokiame dieginyje smėlio dėžės užklausos naudoja pagrindinės aplinkos derinimo nustatymą, raktus ir druskas (issue #4). Kadangi naudotojai taip pat klonuojami, pagrindinės aplinkos prisijungimo slapukas gali galioti smėlio dėžėje.

Vykdymo metaduomenys

Rudel vykdymo metaduomenys lieka pagrindinės aplinkos WordPress MySQL lentelėse:

Text
wp_rudel_environments
wp_rudel_worktrees

Šios lentelės yra Rudel pagrindinis patikimos informacijos šaltinis. Aplinkų kataloguose yra valdomi failai ir artefaktai, o ne vykdymo registro būsena.