hosting

Hosting'de PHP Hata Ayıklama: Beyaz Ekranı Okunabilir Hâle Getirmek

PHP hata ayıklama: hata kaydını açma, üç farklı log dosyası, en sık görülen beş hata ve sorunu daraltma yöntemi. Hosting'de PHP Hata Ayıklama: Beyaz Ekranı…

Hosting'de PHP Hata Ayıklama: Beyaz Ekranı Okunabilir Hâle Getirmek
İçindekiler
  1. İlk Adım: Hatayı Görünür Kılmak
  2. Log Nerede? Üç Farklı Dosya
  3. En Sık Karşılaşılan Beş Hata ve Anlamları
  4. 1. Bellek Limiti Aşıldı
  5. 2. Maksimum Çalışma Süresi Aşıldı
  6. 3. Dosya veya Sınıf Bulunamadı
  7. 4. Veritabanına Bağlanılamıyor
  8. 5. İzin Reddedildi
  9. Sorunu Daraltma Yöntemi
  10. Üretimde Hata Ayıklarken
  11. Sonuç
  12. Sıkça Sorulan Sorular (SSS)
  13. Beyaz ekran alıyorum, nereden başlamalıyım?
  14. Bellek limitini sürekli yükseltmek doğru mu?
  15. Log dosyasını bulamıyorum
  16. Windows'tan taşıdım, bazı dosyalar bulunamıyor

Hosting'de PHP Hata Ayıklama: Beyaz Ekranı Okunabilir Hâle Getirmek

Sitenize girdiniz ve karşınızda bomboş beyaz bir sayfa var. Hata mesajı yok, ipucu yok. Bu, PHP dünyasının en can sıkıcı durumudur ve nedeni aslında basittir: bir ölümcül hata oluşmuştur ama hata gösterimi kapalı olduğu için mesaj ekrana basılmamıştır.

Bu rehber, Linux barındırma veya Windows barındırma hesabınızda hataları görünür kılmayı ve doğru okumayı anlatıyor.

İlk Adım: Hatayı Görünür Kılmak

Üretim ortamında hata mesajlarının ziyaretçilere gösterilmemesi doğru bir tercihtir — mesajlar sunucu yollarını, veritabanı yapısını ve yapılandırma bilgilerini sızdırır. Ancak sorun ararken bu mesajlara ihtiyacınız vardır.

Doğru yaklaşım, mesajları ekrana değil log dosyasına yazdırmaktır. Böylece siz hatayı görürsünüz, ziyaretçiler görmez.

Hosting panelinizde PHP ayarları bölümünde şunları yapılandırın:

  • Hata gösterimi: Kapalı kalsın (ziyaretçiye gösterilmesin).
  • Hata kaydı: Açık olsun.
  • Hata seviyesi: Tüm hataları kapsayacak şekilde ayarlansın — uyarılar dahil.
  • Log dosyası yolu: Bilinen ve erişebildiğiniz bir konum olsun.

Log dosyasının konumunu bilmiyorsanız panelin hata log görüntüleyicisini kullanın; çoğu panel bunu hazır sunar.

Log Nerede? Üç Farklı Dosya

Karışıklığın yaygın nedeni, birden fazla log dosyasının var olmasıdır ve aradığınız satır hangisindeyse orada durur:

Log Ne içerir
PHP hata logu Kod hataları, uyarılar, ölümcül hatalar
Web sunucusu hata logu Yapılandırma hataları, izin sorunları, 500 kayıtları
Uygulama logu Uygulamanızın kendi yazdığı kayıtlar

Beyaz ekran genellikle birinci logdadır. Sayfa 500 hatası veriyorsa ikinciye de bakın — yönlendirme kuralı hatası veya izin sorunu orada görünür.

En Sık Karşılaşılan Beş Hata ve Anlamları

1. Bellek Limiti Aşıldı

Beyaz ekranın en yaygın nedenidir. Bir istek, PHP'ye tanımlanan bellek üst sınırını aşmıştır.

Çözüm sırası: Önce limiti panelden makul bir seviyeye yükseltin. Sorun çözülürse geçici olarak rahatlarsınız — ama asıl soruyu sorun: tek bir istek neden bu kadar bellek tüketiyor? Genellikle cevap, binlerce kaydı tek seferde belleğe çeken bir sorgudur. Limiti sürekli yükseltmek, sorunu ertelemektir.

2. Maksimum Çalışma Süresi Aşıldı

Betik, izin verilen süreden uzun çalışmıştır. Genellikle yavaş bir sorgu, yanıt vermeyen bir dış servis çağrısı veya büyük bir toplu işlem söz konusudur.

Çözüm: Uzun işlemleri web isteği içinde çalıştırmayın; zamanlanmış bir göreve taşıyın. Dış servis çağrılarına mutlaka zaman aşımı tanımlayın — zaman aşımı olmayan tek bir çağrı, tüm sayfayı kilitler.

3. Dosya veya Sınıf Bulunamadı

Beklenen dosya yerinde değil. Dört olası neden vardır ve üçüncüsü en sinsi olanıdır:

  • Dosya gerçekten eksik (aktarım tamamlanmamış)
  • Yol yanlış yazılmış
  • Büyük/küçük harf uyuşmazlığı — Linux'ta Logo.png ile logo.png farklı dosyalardır. Windows'tan taşınan sitelerde bu sorun sıkça yaşanır ve teşhisi zordur çünkü kod "doğru görünür".
  • İzin sorunu — dosya var ama okunamıyor

4. Veritabanına Bağlanılamıyor

Bağlantı bilgileri hatalı, veritabanı kullanıcısının yetkisi yok veya veritabanı sunucusu yanıt vermiyor.

Teşhis: Panelden veritabanı yönetim aracına aynı bilgilerle girmeyi deneyin. Giriş yapabiliyorsanız sorun bilgilerde değil, uygulamanın yapılandırma dosyasındadır. Giremiyorsanız kullanıcı veya yetki sorunudur.

5. İzin Reddedildi

Uygulama bir dosyaya yazmaya çalışıyor ama yetkisi yok. Genellikle yükleme, önbellek veya log dizinlerinde görülür.

Dikkat: Çözüm olarak her şeye geniş yazma izni vermeyin. Yalnızca gerçekten yazılması gereken dizine, gereken izni verin.

Sorunu Daraltma Yöntemi

Hata mesajı belirsizse veya hangi bileşenin sorumlu olduğu anlaşılmıyorsa, sistematik daraltma en hızlı yoldur:

  1. Ne zaman bozuldu? Son değişiklik neydi — bir eklenti güncellemesi, bir kod dağıtımı, bir PHP sürüm değişikliği? Zaman çizelgesi genellikle suçluyu doğrudan gösterir.
  2. Her sayfada mı, tek sayfada mı? Tek sayfadaysa o sayfanın koduna odaklanın. Hepsinde ise ortak bir bileşen (tema, temel yapılandırma) sorumludur.
  3. Eklentileri devre dışı bırakın. Hepsini kapatıp sorun geçiyorsa, tek tek açarak sorumluyu bulun.
  4. Varsayılan temaya geçin. Sorun kayboluyorsa tema kaynaklıdır.
  5. Log zaman damgasıyla eşleştirin. Sayfayı yenileyin, o anki zaman damgasına sahip log satırını bulun. Bu, ilgisiz eski hatalarla vakit kaybetmenizi önler.

Üretimde Hata Ayıklarken

  • Ekrana hata bastırmayın. Log dosyasına yazdırın. Ayrıntılı hata mesajları sunucu yolları ve veritabanı yapısı sızdırır.
  • Hata ayıklama modunu açık unutmayın. Sorun çözüldükten sonra kapatın. Açık unutulmuş bir hata ayıklama modu, hem güvenlik hem performans sorunudur.
  • Mümkünse test kopyasında çalışın. Alt alan adında bir kopya oluşturup denemeleri orada yapın.
  • Değişiklik öncesi yedek alın. Özellikle yapılandırma dosyalarına dokunmadan önce.

Sonuç

PHP hata ayıklamada işin yarısı, hatayı görünür kılmaktır — beyaz ekran bir bilgi eksikliğidir, çözümsüzlük değil. Hata kaydını log dosyasına yönlendirin, doğru log dosyasına bakın ve zaman damgasıyla eşleştirin. Bu üç adım, teşhis süresini saatlerden dakikalara indirir. Bellek limiti gibi hataları kalıcı olarak yükselterek çözmek yerine, tek bir isteğin neden o kadar kaynak tükettiğini sorun — asıl çözüm oradadır.

Sıkça Sorulan Sorular (SSS)

Beyaz ekran alıyorum, nereden başlamalıyım?

PHP hata kaydını açıp log dosyasına bakın. Beyaz ekran, ölümcül bir hatanın oluştuğu ama mesajın ekrana basılmadığı anlamına gelir — mesaj logdadır. En yaygın neden bellek limitinin aşılmasıdır.

Bellek limitini sürekli yükseltmek doğru mu?

Geçici çözüm olarak makul, kalıcı çözüm olarak değil. Bir isteğin çok fazla bellek tüketmesi genellikle kod sorununa işaret eder — örneğin binlerce kaydı tek seferde belleğe çeken bir sorgu. Limiti yükseltmek sorunu erteler, büyümeyle birlikte geri gelir.

Log dosyasını bulamıyorum

Hosting panelinizin hata log görüntüleyicisini kullanın; çoğu panel bunu hazır sunar. Yoksa PHP ayarlarında log dosyası yolunu kendiniz tanımlayabilirsiniz — hesabınız içinde, web erişimine kapalı bir konum seçin.

Windows'tan taşıdım, bazı dosyalar bulunamıyor

Neredeyse kesinlikle büyük/küçük harf uyuşmazlığı. Windows dosya sistemi harf duyarsızdır, Linux duyarlıdır. Koddaki dosya referanslarıyla gerçek dosya adlarını karşılaştırın — bu, platform değiştiren taşımalarda en sık yaşanan sorundur.