Bir WordPress sitesini ön üretime kopyalama
Üretime dokunmadan önce bir güncellemeyi veya geliştirmeyi sitenin birebir bir kopyası üzerinde test etmek, neredeyse her zaman URL’nin değişmesini gerektirir (site.fr’den preprod.site.fr’ye veya bir alt klasöre). Bu URL değişikliği, bu tür bir kopyalamanın en sık yanlış yönetilen teknik noktasıdır.
Yanlış yapılırsa URL değişikliği neden ayarları bozar
WordPress, verilerinin bir kısmını (tema ayarları, widget yapılandırması, bazı meta veriler, eklenti seçenekleri) MySQL veritabanının metin sütunlarında serileştirilmiş PHP verisi olarak saklar. Serileştirilmiş bir dize, içerdiği her alt dizinin tam uzunluğunu kodlar; örneğin s:20:"https://eski-site.fr". URL, UPDATE wp_options SET option_value = REPLACE(...) gibi bir sorguyla düz bir SQL arama-değiştirme ile değiştirilirse, tırnak işaretlerinden önce belirtilen sayı yeni dize uzunluğuyla artık uyuşmaz ve WordPress veriyi çözemez.
Bir ön üretim kopyası bu tuzağa düşme olasılığını çoğaltır, çünkü URL genellikle sonrasında ikinci kez daha değişir: kopyalama anında geçici bir test adresi, ardından ortam oturduğunda kalıcı bir ön üretim adresi. Her değişiklik, yalnızca ilki değil, aynı araçtan geçmelidir.
Sonuç her zaman hemen görünmez: sıfırlanan tema ayarları, kaybolan widget’lar, boşalan eklenti seçenekleri, bazen net bir hata mesajı olmadan. Doğru yöntem, her değiştirmede bu uzunlukları yeniden hesaplayan bir araç kullanmaktır; genellikle WP-CLI’nin wp search-replace eski-url yeni-url --all-tables komutu veya All-in-One WP Migration ya da WP Migrate DB gibi bu işi dahili olarak yapan bir geçiş eklentisi.
Klasik bir kopyalamaya ek olarak planlanması gerekenler
- Arama motorları tarafından dizine eklenmeyi engellemek: dizine eklenmiş yinelenen içerik ana sitenin sıralamalarına zarar verir
- Test sırasında gerçek müşterileri uyarmamak için gerçek e-posta gönderimini (sipariş onayları, bildirimler) kesmek
- Ödeme geçitlerini kesinlikle test modunda tutarak etkisiz hâle getirmek, gerçek bir ödemeyi asla tetiklememek
- Düzenli bir yeniden senkronizasyon planlanmazsa zamanla ön üretim ile üretim arasında açılan fark
Bir ön üretim kopyalamasını nasıl yürütüyorum
-
Dosyaların ve veritabanının tam kopyası
Sitenin tüm dosyalarını ve veritabanının bir dışa aktarımını ön üretim ortamına kopyalarım.
-
wp search-replace ile URL değişikliği
Üretim URL’si, serileştirilmiş veri uzunluklarını doğru şekilde yeniden hesaplayan WP-CLI kullanılarak ön üretim URL’siyle değiştirilir.
-
Dizine eklenmeyi engelleme
Hiçbir arama motorunun yinelenen içeriği dizine eklememesi için ön üretime özel bir noindex etiketi veya robots.txt dosyası eklerim.
-
Giden e-postaları etkisizleştirme
Ön üretimden gerçek bir müşteriye hiçbir bildirim gitmemesi için bir e-posta yakalama servisi kullanır veya gönderim eklentisini devre dışı bırakırım.
-
Ödeme geçitlerini test moduna alma
Gerçek bir para hareketinin asla tetiklenmemesi için gerçek ödeme kimlik bilgileri test eşdeğerleriyle değiştirilir.
-
Gerektiğinde yeniden senkronizasyon
Ön üretim ile üretim arasındaki fark zamanla çok büyürse, ön üretimi tek tek düzeltmek yerine üretimden tam bir kopyayı yeniden başlatırım.
Daha fazlası için
-
Kesintisiz barındırma geçişi
Gerçek bir barındırma değişikliğine uygulanan aynı serileştirme mekanizması.
-
PHP serileştirmesini anlama
Mekanizmanın ve tuzaklarının tam tanımı.
-
Müdahale öncesi mağazayı yedekleme
Herhangi bir site kopyalamasından önce yedeklenmesi gerekenler.
-
WordPress hata ayıklama modunu etkinleştirme
Ön üretim ortamında sessiz bir hatayı tespit etmek için kullanışlı.
İhtiyacınızı bir dakikada anlatın
Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.