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

Ziyaretçiler İçin Kesintiyi En Aza İndirerek WordPress Barındırma Sağlayıcısını Değiştirme

Barındırma sağlayıcısı değiştirmek yalnızca dosya kopyalamaktan ibaret değildir: WordPress veritabanı, URL’leri saran serileştirilmiş veriler içerir ve dikkatsiz bir değişiklik bunları sessizce bozar. İlk dışa aktarımdan son DNS geçişine kadar izlediğim yöntem şudur.

Sorunumu anlatayım Mesaj gönderin

URL değişikliği derinlemesine neyi etkiliyor

WordPress, bazı ayarlarını (tema seçenekleri, widget yapılandırması, eklenti tercihleri) 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:21:"https://eski-site.com", “21 karakterlik bir dize, işte içeriği” anlamına gelir. Test veya hedef site farklı bir URL kullanıyorsa (geçici adres, alt alan adı, IP) ve bu, REPLACE() ile basit bir SQL UPDATE’iyle değiştirilirse, tırnak işaretlerinden önce belirtilen sayı artık yeni dize uzunluğuyla uyuşmaz.

Bu göz ardı edilebilecek bir durum değildir: bir WooCommerce mağazasında, eski sitenin adresi düzinelerce farklı serileştirilmiş kayıtta (ödeme ağ geçidi ayarları, sepet widget’ları, kargo eklentisi tercihleri) karşımıza çıkabilir ve her biri ham bir değişiklikle bozulma riski taşır. Bu dağınık hacim, bir müşteri belirli bir aksaklığı bildirene kadar sorunu ilk bakışta fark etmeyi zorlaştıran şeydir.

Bu durumda WordPress veriyi doğru şekilde ters serileştiremez: tema ayarları varsayılan değerlere sıfırlanır, widget’lar kenar çubuğundan kaybolur, eklenti seçenekleri boşalır; genellikle günlerce görünür bir hata olmadan. Doğru yöntem, her değişiklikte bu uzunlukları yeniden hesaplayan bir araçtan geçer; genellikle WP-CLI’nin wp search-replace eski-url yeni-url --all-tables komutu kullanılır.

Görünür bir kesinti olmadan barındırma sağlayıcısını nasıl değiştiriyorum

  1. Dosyaları ve veritabanını kopyalama

    Canlı siteye dokunmadan sitenin tüm dosyalarını ve veritabanının tam bir dışa aktarımını yeni barındırmaya kopyalarım.

  2. wp-config.php dosyasını uyarlama

    Yeni ortamda wp-config.php içine yeni veritabanı bağlantı bilgilerini (ad, kullanıcı, parola, sunucu) girerim.

  3. wp search-replace ile URL düzeltme

    Test sitesi farklı bir adres altında (geçici alt alan adı, IP) erişilebiliyorsa, kayıtlı URL’leri, serileştirilmiş dize uzunluklarını bozmak yerine yeniden hesaplayan wp search-replace ile düzeltirim.

  4. Yerel hosts dosyası üzerinden doğrulama

    Makinemin hosts dosyasını geçici olarak düzenleyerek siteyi yeni barındırmada test ederim; bu, herkese açık DNS’e dokunmadan veya ziyaretçileri etkilemeden yeni sunucuya işaret etmemi sağlar.

  5. Geçiş öncesi DNS TTL’ini düşürme

    Geçişten birkaç gün önce, değişiklik gerçekleştiğinde yayılmayı hızlandırmak için DNS kayıtlarının TTL (yaşam süresi) değerini düşürürüm.

  6. Düşük trafikte DNS veya sunucu geçişi

    Geçişi düşük trafikli bir zaman dilimine planlarım ve site çevrimiçi satış yapıyorsa ilk kopyalama ile son geçiş arasında alınan siparişleri veya mesajları sisteme aktarı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

Geçiş sırasında site erişilemez olur mu?
Hazırlık tamamen yeni barındırmada, canlı siteye dokunmadan yapılır. Gerçek tek kesinti, yayılmaya bağlı olarak genellikle birkaç dakika ile birkaç saat arasında süren son DNS geçişidir.
DNS’i geçirmeden önce yeni siteyi nasıl test ederim?
Alan adını yeni IP’ye yönlendirmek için makinemin hosts dosyasını geçici olarak düzenleyerek; bu, başka kimseyi etkilemeden siteyi sıradan bir ziyaretçi gibi gezmemi sağlar.
Geçiş sırasında verilen siparişlere ne olur?
İlk kopyalamanın tam saatini not ederim ve bu kopyalama ile son geçiş arasında alınan siparişleri veya mesajları hiçbir şey kaybolmadan elle sisteme aktarırım.
Geçişten önce DNS TTL’ini neden düşürmeliyim?
Yüksek bir TTL, ara DNS sunucularının eski adresi daha uzun süre önbellekte tutması anlamına gelir. Birkaç gün önceden düşürmek, geçiş anında değişikliğin daha hızlı etkili olmasını sağlar.
DNS geçişinden sonra geçişi geri alabilir miyim?
Teknik olarak evet, DNS’i eski barındırmaya geri yönlendirerek; ancak geçişten bu yana yeni sitede oluşturulan tüm veriler (siparişler, hesaplar, içerik) kaybolur. Bu nedenle DNS geçişini geri dönüşün olmadığı nokta olarak kabul ederim.