Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

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.

Sorunumu anlatayım Mesaj gönderin

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Ö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.

  6. 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

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

origine
catalogue
extensions-premium (facultatif)
conserver (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

Hiç paylaşmadığım hâlde ön üretim sitem neden Google’da çıkıyor?
Bir noindex etiketi veya özel bir robots.txt dosyası olmadan, arama motorları ön üretimi herhangi bir genel site gibi keşfedip dizine ekleyebilir; bu da ana sitenin sıralamalarına zarar veren yinelenen içerik oluşturur.
Ön üretimdeki testlerimden gerçek bir müşteri e-posta alabilir mi?
Evet, e-posta gönderimi kesilmezse. Bu yüzden ön üretimde siparişleri test etmeye başlamadan önce gönderim eklentisini devre dışı bırakır veya bir e-posta yakalama servisi kullanırım.
Ön üretimde URL’yi değiştirmek için basit bir SQL kopyala-yapıştır kullanılabilir mi?
Hayır. WordPress bazı verileri veritabanında serileştirir ve her dizinin tam uzunluğunu kodlar. Düz bir metin değişikliği bu uzunlukları bozar ve tema ile eklenti ayarlarını sessizce bozar.
Her testte tam bir kopyalama yapmak gerekir mi?
Sistematik olarak gerekmez, ama ön üretim ile üretim arasındaki fark zamanla büyürse, farkları tek tek düzeltmek yerine tam bir yeniden senkronizasyon yaparım.
Ön üretimde bir test sırasında gerçek bir ödeme tetiklenebilir mi?
Yalnızca ödeme geçidi gerçek modda yapılandırılmış kalırsa. Sipariş süreci üzerinde herhangi bir işlem yapmadan önce gerçek kimlik bilgilerini her zaman test eşdeğerleriyle değiştiririm.