Yalıtım
Rudel, istekle seçilen bir katman sistemidir. Seçili bir istek, ana makinenin WordPress kurulumunda çalışmaya devam ederken yalıtılmış ortam veritabanı tablolarını ve tema dosyalarını kullanır.
Her yalıtılmış ortam için ayrıdır
WordPress tabloları
Her yalıtılmış ortama, ana makinenin öneki ile yalıtılmış ortam kimliğinin MD5 değerindeki ilk yedi onaltılık karakterinden oluşan bir tablo öneki atanır.
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users
Rudel, WordPress başlatmayı bitirmeden önce WordPress tablo önekini değiştirir; böylece yalıtılmış ortam isteğindeki her sorgu yalıtılmış ortam kopyalarını okur ve yazar.
Kullanıcılar
users ve usermeta tabloları diğerleriyle birlikte klonlanır. Yalıtılmış ortam, oluşturulduğu anda ana makinenin kullanıcıları ve parolalarıyla başlar; sonrasında yalıtılmış ortamda oluşturulan, değiştirilen veya silinen kullanıcılar ana makineyi etkilemez ve ana makinedeki değişiklikler yalıtılmış ortama yansımaz.
Etkin tema dosyaları
Seçilen tema yalıtılmış ortam dizinine kopyalanır:
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}
Tema bir alt temaysa Rudel, şablon ilişkisini geçerli tutmak için üst temayı da kopyalar. Yalıtılmış ortam her zaman oluşturulurken kaydedilen temayı sunar; yalıtılmış ortamda tema değiştirmek hiçbir etki yaratmaz.
Ana makineyle paylaşılanlar
- WordPress çekirdeği
- eklenti dosyaları
- yüklenen medya dosyaları
Ana makineye yüklenen veya güncellenen bir eklenti, her yalıtılmış ortam için yüklenir veya güncellenir. Hangi eklentilerin etkin olduğu seçenekler tablosunda saklanır; dolayısıyla etkinleştirme durumu her yalıtılmış ortama özeldir. Yalıtılmış ortamda yapılan yüklemeler ana makinenin yüklemeler dizinine kaydedilir. Bu, yalıtılmış ortam oluşturmayı hızlandırır ve WP_CONTENT_DIR'yi genel olarak değiştirmekten kaçınır.
Her yalıtılmış ortamda Rudel eklentisini etkin tutun. Posta engelleme ve tema katmanı eklentiden çalışır; yalıtılmış ortam seçiliyken eklentiyi devre dışı bırakmak, paylaşılan wp-config.php dosyasındaki bootstrap satırını da kaldırarak tüm kurulum için yalıtılmış ortam seçimini kapatır (13. sorun).
Yalıtılmış ortam seçme
HTTP istekleri bir yalıtılmış ortamı şu yollarla seçer:
X-Rudel-Environmentbaşlığı (eski diğer adıX-Rudel-Sandbox)rudel_environmentçerezi (eski diğer adırudel_sandbox)
Rudel çerezi hiçbir zaman ayarlamaz veya temizlemez. Ana makineye dönmek için çerezi silin; yönetim çubuğundaki Yalıtılmış ortam öğesi ana makinenin URL adresine bağlantı verir, ancak çerezi olduğu gibi bırakır (10. sorun).
WP-CLI komutları bir yalıtılmış ortamı şu yollarla seçer:
RUDEL_ENVIRONMENTortam değişkeni- ana bilgisayar adı yalıtılmış ortam kimliğiyle başlayan bir
--url; örneğin--url=http://alpha-3be7.example.test
Seçici kimlik doğrulaması yapmaz. Siteye erişebilen ve geçerli bir yalıtılmış ortam kimliği gönderen her istemci o yalıtılmış ortama erişir; yalıtılmış ortam kimliklerini (ad ve dört onaltılık karakter) tahmin etmek kolaydır. Yalıtılmış ortam seçimini bir erişim denetimi sınırı olarak görmeyin; herkese açık bir ana makineyi web sunucusu veya ağ düzeyinde koruyun.
İstek varsayılanları
Seçili bir istek için Rudel şunları yapar:
pre_wp_mailfiltresiyle giden e-postayı engellerWP_TEMP_DIRdeğerini yalıtılmış ortamıntmpdizinine ayarlarWP_CACHE_KEY_SALTdeğerini, kalıcı nesne önbelleklerinin yalıtılmış ortam anahtarlarını ayrı tutmasını sağlayan, yalıtılmış ortama özgü bir değere ayarlarWP_DEBUGgünlüğünü yalıtılmış ortamındebug.logdeğerine ve yalıtılmış ortam kimliğinden türetilen kimlik doğrulama anahtarları ile tuzlarına ayarlar
Bootstrap, bu sabitlerin her birini yalnızca wp-config.php henüz tanımlamamışsa tanımlar. Standart bir wp-config.php, WP_DEBUG ile tüm anahtarları ve tuzları tanımlar; bu tür bir kurulumda yalıtılmış ortam istekleri ana makinenin hata ayıklama ayarını, anahtarlarını ve tuzlarını kullanır (4. sorun). Kullanıcılar da klonlandığı için ana makinenin oturum açma çerezi yalıtılmış ortamda geçerli olabilir.
Çalışma zamanı meta verileri
Rudel çalışma zamanı meta verileri ana makinenin WordPress MySQL tablolarında kalır:
wp_rudel_environments
wp_rudel_worktrees
Bu tablolar Rudel için tek doğruluk kaynağıdır. Ortam dizinleri yönetilen dosyaları ve yapıtları içerir; çalışma zamanı kayıt defteri durumunu içermez.