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.
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.
| Belirti | Gerçek neden | İlk bakılacak yer | Ortalama çözüm |
|---|---|---|---|
| Tamamen beyaz ekran | Ölümcül PHP hatası, gösterim kapalı | PHP error log, son 50 satır | 10-25 dakika |
| 500 sunucu hatası | Bozuk .htaccess veya bellek limiti | Sunucu error log | 5-20 dakika |
| Panel açılıyor, ödeme kapalı | Sağlayıcı modülü yeni sürümle uyumsuz | Modül sürüm notları | 30-90 dakika |
| Tablo yok hatası | Yarım kalmış veritabanı migrasyonu | Migrasyon kayıt tablosu | 20-60 dakika |
| Sayfa bozuk görünüyor | Eski önbellek ve varlık sürümü | Önbellek klasörü, CDN | 5 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.
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ım | Ne yaparsın | Zaman | Atlanırsa |
|---|---|---|---|
| Tam yedek | Dosya + veritabanı + yapılandırma | 15 dk | Geri dönüş imkânı yok |
| Sürüm notları | Kırıcı değişiklikleri oku | 10 dk | Modül uyumsuzluğu sürprizi |
| Kopya deneme | Alt alan adında güncelle | 25 dk | Canlıda ilk kez denemiş olursun |
| Bakım modu | Sipariş akışını durdur | 1 dk | Yarı bozuk kayıtlar oluşur |
| Doğrulama turu | 6 kritik akışı test et | 10 dk | Hatayı müşteri haber verir |
| Önbellek temizliği | Uygulama ve CDN önbelleği | 3 dk | Bozuk 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.

