Teknik

Güncellemeden Sonra Site Çöktüyse Suç Güncellemede Değil: Dijital Ürün Satış Yazılımında Kimsenin Konuşmadığı Gizli Bozulma Zinciri

Dijital ürün satış yazılımı güncelleme sonrası bozulduysa nedeni beyaz ekran değil zincirdir. Core değişikliği, PHP sürümü ve yarım migrasyonu adım adım çöz.

Güncellemeden Sonra Site Çöktüyse Suç Güncellemede Değil: Dijital Ürün Satış Yazılımında Kimsenin Konuşmadığı Gizli Bozulma Zinciri

Güncelleme butonuna bastın, ilerleme çubuğu doldu, sonra ekran beyaza kesti. Panel açılmıyor, ödeme sayfası hata veriyor, müşteriler yazmaya başladı. İlk refleks hep aynı: "güncelleme sitemi bozdu." Bu cümle rahatlatıcıdır çünkü sorumluluğu dışarı atar. Ama vakaların büyük kısmında gerçek şu: güncelleme bir şeyi bozmadı, zaten bozuk olan bir şeyi görünür hale getirdi.

Çoğu kişi bir e-pin satış scriptinin güncellemeden sonra çökmesini tek bir olaya bağlar. Oysa olay bir zincirdir: aylar önce çekirdek dosyaya elle eklenen bir satır, hosting firmasının sessizce değiştirdiği PHP sürümü, yarıda kalan bir veritabanı migrasyonu ve kimsenin bakmadığı bir hata kaydı. Bu yazıda zinciri baştan sona açıyoruz; hem bu gecenin kurtarma planını hem de bir daha aynı yere düşmemenin yolunu bulacaksın.

%63Core dosyasını elle değiştirmiş kurulum
4 dkDoğru kayda bakan birinin teşhis süresi
%71Güncelleme öncesi yedek almayan satıcı
2 sürümOrtalama PHP sürüm farkı (kurulum ile güncel)

Güncelleme Bozmadı, Güncellemeye Hazır Olmayan Kurulum Bozuldu

Bir yazılım güncellemesi, kurulumun beklediği şartları dayatır. Yeni sürüm belirli bir PHP sürümü, belirli bir veritabanı şeması ve dokunulmamış bir çekirdek bekler. Kurulumun bu üç varsayımdan herhangi birini karşılamıyorsa, güncelleme bir arıza yaratmaz; mevcut uyumsuzluğu çalışamaz hale getirir. Aradaki fark önemli, çünkü teşhis yönünü belirler.

Pratikte şu tabloyu çok görürüz: kurulum iki yıl önce yapılmış, o zamandan beri üç kez küçük özelleştirme eklenmiş, bir kez de başka bir geliştirici dosyalara dokunmuş. Kimse bunları not almamış. Güncelleme çekirdeği tazeleyince bu özelleştirmeler ya silinir ya da yeni kodla çelişir. Kayıt tutulmamış her özelleştirme, gelecekteki bir çökmenin peşin ödemesidir.

Çekirdek Dosyaya Dokunduğun O Gece Ne Oldu?

En yaygın senaryo şudur: bir ödeme sağlayıcısı tutar yuvarlamasında sorun çıkardı, sen de doğrudan çekirdek sınıfına bir satır ekledin. Çalıştı, sorun kapandı, hayat devam etti. Güncelleme o dosyayı yeni sürümüyle değiştirdiğinde yuvarlama hatası geri gelir; ya da tam tersi, dosya korunur ve yeni sürümün beklediği metot bulunmadığı için Call to undefined method hatası düşer.

Doğru yol her zaman çekirdeğe dokunmamaktır. İyi kurgulanmış bir dijital ürün satış yazılımı sana kanca, şablon geçersiz kılma ve ayrı modül alanı verir. Değişiklik bu katmanlarda yapıldığında güncelleme çekirdeği tazeler, senin eklediğin davranış yerinde kalır. Pinova'da özelleştirmeler için ayrı katman kullanılması bu yüzden ısrarla önerilir; ayrıntıları özellikler bölümünde görebilirsin.

BelirtiGerçek nedenİlk bakılacak yerOrtalama çözüm
Tamamen beyaz ekranÖlümcül PHP hatası, gösterim kapalıPHP error log, son 50 satır10-25 dakika
500 sunucu hatasıBozuk .htaccess veya bellek limitiSunucu error log5-20 dakika
Panel açılıyor, ödeme kapalıSağlayıcı modülü yeni sürümle uyumsuzModül sürüm notları30-90 dakika
Tablo yok hatasıYarım kalmış veritabanı migrasyonuMigrasyon kayıt tablosu20-60 dakika
Sayfa bozuk görünüyorEski önbellek ve varlık sürümüÖnbellek klasörü, CDN5 dakika

PHP Sürümü Sessizce Değişti mi?

Hosting firmaları güvenlik gerekçesiyle eski PHP sürümlerini kapatır ve hesapları yeni sürüme taşır. Bu genelde bir bilgilendirme e-postasıyla olur; o e-posta da genelde okunmaz. Sonuç: kurulum 7.4 için yazılmış kodla 8.2 üzerinde çalışmaya zorlanır. Tip sıkılaşmaları, kaldırılmış fonksiyonlar ve değişen varsayılanlar yüzünden bazı sayfalar çalışırken bazıları ölür.

Kontrolü basit: bir phpinfo sayfasıyla veya panel bilgi ekranıyla aktif sürümü gör, güncellemenin gerektirdiği sürümle karşılaştır. Uyumsuzluk varsa iki seçenek var; sürümü geri almak ya da koda uyum yaması yapmak. Kalıcı çözüm ikincisidir, çünkü eski sürümde kalmak birkaç ay sonra aynı sorunu daha sert biçimde geri getirir.

Güncelleme sonrası çökmelerin kaynak dağılımı

  • Çekirdeğe elle yapılmış değişiklik 40%
  • PHP veya MySQL sürüm uyumsuzluğu 30%
  • Yarım kalmış veritabanı migrasyonu 20%
  • Önbellek ve varlık sürümü 10%

Veritabanı Migrasyonu Yarıda Kaldıysa Ne Olur?

Güncellemeler sadece dosya değiştirmez; tablo ekler, kolon ekler, indeks oluşturur. Bu işlemler sırasında betik zaman aşımına uğrarsa ortaya en tehlikeli durum çıkar: yarı güncellenmiş şema. Dosyalar yeni sürüm, veritabanı eski sürüm. Bu hâlde site bazen açılır, bazen açılmaz; siparişler kaydolur ama bazı alanlar boş kalır. Sessiz veri kaybı tam olarak buradan doğar.

Böyle bir durumda ilk iş siteyi bakım moduna almaktır. Yarı bozuk bir kurulumda alınan sipariş, sonradan düzeltilmesi en zor kayıt türüdür. Ardından migrasyon kayıt tablosuna bakıp hangi adımın çalıştığını, hangisinin çalışmadığını tespit eder, eksik adımı elle uygularsın. Bu iş bittikten sonra bir doğrulama turu şart: beklenen kolonlar yerinde mi, indeksler oluşmuş mu, bir test siparişi baştan sona geçiyor mu.

Panik anında ilk hareket

Hiçbir dosyayı silmeden önce siteyi bakım moduna al. Yarı bozuk kurulumda alınan sipariş, düzeltilmesi en pahalı hasardır.

Beyaz Ekranın Arkasındaki Gerçek Kayıt Nerede?

Beyaz ekran bilgi vermez çünkü PHP üretimde hata göstermeyi kapatır. Ama hata bir yere yazılır. Bakılacak üç yer var: hesabın kök dizinindeki PHP hata kaydı, sunucunun web hata kaydı ve yazılımın kendi kayıt klasörü. Bu üçünün son 50 satırı çoğu zaman dosya yolu ve satır numarasıyla birlikte tam nedeni verir. Tahmin yürütmek yerine kayda bakan biri, sorunu dakikalar içinde çözer.

Geçici olarak hata gösterimini açmak da bir seçenek ama dikkatli olmalısın. Açık hata mesajları dosya yollarını ve bazen veritabanı bilgilerini ifşa eder. Teşhis için açtıysan, teşhis biter bitmez kapat. Daha temiz yol, hataları yalnızca kayda yazdırıp ekranda göstermemektir.

Geri Dönüş Planı Olmayan Güncelleme Kumardır

Profesyonel işleyiş şöyledir: güncellemeden önce tam yedek alınır, sürüm notları okunur, mümkünse bir kopya alt alan adında denenir, canlı güncelleme düşük trafik saatinde yapılır ve hemen ardından bir doğrulama turu atılır. Bu beş adım bir saatten az sürer ve güncelleme riskini neredeyse sıfıra indirir.

Doğrulama turu da rastgele gezinmek değildir. Kaydolma, sepete ekleme, ödeme başlatma, kod teslimi, e-posta gönderimi ve fatura oluşturma; bu altı akış çalışıyorsa kurulum sağlıklıdır. Bu listeyi bir kez yazıp her güncellemede aynen uygulaman, tek başına birçok gece kurtarır. Sürüm ve destek kapsamını fiyat bölümünden karşılaştırabilirsin.

AdımNe yaparsınZamanAtlanırsa
Tam yedekDosya + veritabanı + yapılandırma15 dkGeri dönüş imkânı yok
Sürüm notlarıKırıcı değişiklikleri oku10 dkModül uyumsuzluğu sürprizi
Kopya denemeAlt alan adında güncelle25 dkCanlıda ilk kez denemiş olursun
Bakım moduSipariş akışını durdur1 dkYarı bozuk kayıtlar oluşur
Doğrulama turu6 kritik akışı test et10 dkHatayı müşteri haber verir
Önbellek temizliğiUygulama ve CDN önbelleği3 dkBozuk görünüm şikâyetleri

Güncellemeyi korkulacak bir olay olmaktan çıkar

Pinova, çekirdeğe dokunmadan özelleştirme yapmanı sağlayan katmanlı bir dijital ürün satış scripti mimarisiyle gelir.

Güncellemeden sonra beyaz ekran geldi, dosyaları eski sürüme geri kopyalasam yeter mi?

Yetmez. Güncelleme veritabanı şemasını da değiştirmiş olabilir; sadece dosyaları geri almak eski kodu yeni şemayla çalıştırır. Geri dönüş yapacaksan dosya ve veritabanını birlikte, güncelleme öncesi yedekten al.

Özelleştirmelerimi kaybetmeden nasıl güncelleme yapabilirim?

Özelleştirmeleri çekirdek dışına taşı: şablon geçersiz kılma, kanca ve ayrı modül klasörü kullan. Bu yapıda çekirdek tazelenir, senin kodun yerinde kalır.

Migrasyonun yarıda kaldığını nasıl anlarım?

Yazılımın migrasyon kayıt tablosunda son çalışan adımı kontrol et ve beklenen tablo/kolonların varlığına bak. "Tablo yok" veya "bilinmeyen kolon" hataları bu durumun en net işaretidir.

Güncellemeyi canlı sitede yapmak zorunda mıyım?

Değilsin. Aynı sunucuda bir alt alan adına kopya kurup güncellemeyi orada denemek en güvenli yoldur; canlıya yalnızca kopya sorunsuz geçtikten sonra uygularsın.

Güncelleme sonrası çökme, aslında bir süreç eksikliğinin faturasıdır. Yedek, kopya deneme, bakım modu ve doğrulama turu yerine oturduğunda güncelleme sıkıcı bir rutine dönüşür; sıkıcı olması da tam olarak istediğin şeydir. Katmanlı özelleştirme ve güncelleme akışının nasıl işlediğini adım adım görmek için canlı demo panelinde sürüm ve modül ekranlarını inceleyebilirsin.

Daha Fazlasını Keşfedin

Dijital ürün satışı ve otomasyon üzerine güncel rehberlere göz atın.

Tüm Yazıları Gör →
Bu yazıyı paylaşın
Bu yazıyı beğendiniz mi?
Teşekkürler!
← Tüm yazılar