Isoleerimine
Rudel on päringuga valitav ülekatete süsteem. Valitud päring kasutab liivakasti andmebaasi tabeleid ja liivakasti teemafaile, kuid käivitub endiselt hosti WordPress installi kaudu.
Iga liivakasti eraldatus
WordPress tabelid
Iga liivakast saab genereeritud tabeli eesliite: hosti eesliide pluss liivakasti ID MD5 esimesed seitse kuueteistkümnendmärki.
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users
Rudel vahetab tabeli WordPress enne, kui WordPress on käivitumise lõpetanud, nii et liivakasti päringu iga päring loeb liivakasti koopiaid ja kirjutab nendesse.
Kasutajad
Tabelid users ja usermeta kloonitakse koos ülejäänutega. Liivakast alustab loomise hetkel hosti kasutajate ja paroolidega; hiljem liivakastis loodud, muudetud või kustutatud kasutajad hosti ei mõjuta ning hostis tehtud muudatused liivakasti ei jõua.
Aktiivse teema failid
Valitud teema kopeeritakse liivakasti kataloogi:
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}
Kui teema on alateema, kopeerib Rudel ka emateema, et mallide seos jääks kehtima. Liivakast kasutab alati loomise ajal salvestatud teemat; teemade vahetamine liivakastis ei avalda mõju.
Hostiga jagatud
- WordPress tuum
- pluginafailid
- üles laaditud meediafailid
Hostis installitud või uuendatud plugin installitakse või uuendatakse kõigi liivakastide jaoks. Aktiivsete pluginate loend salvestatakse valikute tabelis, seega on aktiveerimisolek iga liivakasti puhul eraldi. Liivakastis üles laaditud failid satuvad hosti üleslaadimiste kataloogi. Nii on liivakastide loomine kiire ja välditakse WP_CONTENT_DIR globaalset asendamist.
Hoidke Rudel aktiivsena igas liivakastis. Selle e-posti blokeerimine ja teemade ülekate töötavad plugina kaudu ning selle desaktiveerimine valitud liivakasti ajal eemaldab jagatud failist wp-config.php ka algkäivituse rea, lülitades liivakasti valimise kogu installis välja (probleem nr 13).
Liivakasti valimine
HTTP päringud valivad liivakasti järgmise kaudu:
- päis
X-Rudel-Environment(vana aliasX-Rudel-Sandbox) - küpsis
rudel_environment(vana aliasrudel_sandbox)
Rudel ei määra ega kustuta kunagi küpsist. Hosti naasmiseks kustutage see; haldusriba üksus Liivakast lingib hosti URL-ile, kuid jätab küpsise alles (probleem nr 10).
WP-CLI käsud valivad liivakasti järgmise kaudu:
- keskkonnamuutuja
RUDEL_ENVIRONMENT --url, mille host algab liivakasti ID-ga, näiteks--url=http://alpha-3be7.example.test
Valijat ei autentita. Iga saitile ligi pääsev klient, kes saadab kehtiva liivakasti ID, saab selle liivakasti ning liivakasti ID-sid (nimi pluss neli kuueteistkümnendmärki) on lihtne ära arvata. Ärge käsitlege liivakasti valimist juurdepääsupiirina; kaitske avalikku hosti veebiserveri või võrgu tasandil.
Päringu vaikeväärtused
Valitud päringu puhul Rudel:
- blokeerib väljamineva e-posti
pre_wp_mailfiltri kaudu - määrab
WP_TEMP_DIRliivakastitmpkataloogiks - määrab
WP_CACHE_KEY_SALTliivakastipõhise väärtuse, et püsivate objektide vahemälud hoiaksid liivakastide võtmed lahus - võimaldab
WP_DEBUGlogimise liivakastidebug.log-i ning liivakasti ID-st tuletatud autentimisvõtmed ja soolad
Algkäivitus määrab kõik need konstandid ainult siis, kui wp-config.php pole neid juba määranud. Tavaline wp-config.php määrab WP_DEBUG ning kõik võtmed ja soolad, seega kasutavad liivakasti päringud sellises installis hosti silumisseadet ning hosti võtmeid ja soolasid (probleem nr 4). Kuna ka kasutajad kloonitakse, võib hosti sisselogimisküpsis kehtida liivakastis.
Käitusaja metaandmed
Rudel käitusaja metaandmed jäävad hosti WordPress MySQL tabelitesse:
wp_rudel_environments
wp_rudel_worktrees
Need tabelid on Rudel tõeallikas. Keskkondade kataloogid sisaldavad hallatavaid faile ja artefakte, mitte käitusaja registri olekut.