WordPress Hata Ayıklama Rehberi

Geçen hafta bir müşterimin WordPress sitesi aniden çöktü. Panik içinde beni aradığında, ekranında sadece beyaz bir sayfa ve ürkütücü bir PHP hatası vardı. Bu, WordPress kullanıcılarının sıkça yaşadığı senaryolardan sadece biri. 10 yılı aşkın WordPress deneyimimde, bir sitenin çalışmaması kadar site sahiplerini endişelendiren başka bir durum görmedim. Ancak iyi haber şu ki, WordPress’teki hataların çoğu sistematik bir yaklaşımla çözülebiliyor.

WordPress dünya genelinde internet sitelerinin %43’ünden fazlasını güçlendiriyor ve bu kadar yaygın kullanım doğal olarak çeşitli hata senaryolarını da beraberinde getiriyor. Bu yazımda, WordPress sitelerinizde karşılaşabileceğiniz yaygın sorunları nasıl teşhis edeceğinizi ve çözeceğinizi detaylı bir şekilde ele alacağım. Acemi kullanıcıdan deneyimli geliştiriciye kadar herkesin faydalanabileceği bu rehber, site kesintilerini en aza indirmenize yardımcı olacak.

WordPress Kritik Hata Oluştu Sorunu
WordPress Kritik Hata Oluştu Sorunu

WordPress’te Hata Ayıklama Temel Prensipleri

WordPress hata ayıklama, sadece bir sorunu çözmekten ibaret değildir; sorunun kök nedenini anlamak ve benzer problemlerin tekrar oluşmasını önlemek için sistematik bir yaklaşım gerektirir. Birçok geliştirici, sorunları çözümlerken temel prensipleri atlar ve bu da geçici çözümlerle sonuçlanır.

Deneyimlerime dayanarak söyleyebilirim ki, etkili hata ayıklama için en önemli ilke, değişiklikleri adım adım yapmak ve her adımın etkisini gözlemlemektir. Birden fazla değişiklik yapmak, hangi değişikliğin sorunu çözdüğünü veya yeni sorunlara neden olduğunu belirlemeyi zorlaştırır.

Hata Ayıklama Modunu Etkinleştirme

WordPress’te hata ayıklama, wp-config.php dosyasında yapılacak küçük bir değişiklikle başlar. Bu dosyada, WP_DEBUG sabitini true olarak ayarlamanız, gizli hataları görünür hale getirecektir:

define( 'WP_DEBUG', true );

Elbette, canlı bir sitede bu modu açtığınızda, hatalar ziyaretçilerinize de görünür olacaktır. Bu nedenle, aşağıdaki konfigürasyonu kullanarak hataları bir log dosyasına yönlendirebilirsiniz:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Bu ayarlarla, hatalar wp-content klasöründeki debug.log dosyasına kaydedilecek ve ziyaretçilerinize gösterilmeyecektir. Geçen ay bir e-ticaret sitesindeki ödeme hatalarını çözerken tam olarak bu yaklaşımı kullandım ve müşteri deneyimini bozmadan gizli bir eklenti çakışmasını tespit edebildim.

Sık Karşılaşılan WordPress Hataları ve Çözümleri

WordPress kullanıcıları olarak, bazı hata türleriyle diğerlerinden daha sık karşılaşırız. İşte bunlardan en yaygın olanları ve çözüm yolları:

1. Beyaz Ekran Hatası (White Screen of Death)

Bir eklenti etkinleştirdiğinizde veya tema değiştirdiğinizde aniden beyaz bir ekranla karşılaşmak korkutucu olabilir. Bu genellikle PHP bellek sınırına ulaşıldığında veya bir kod hatası olduğunda meydana gelir.

Çözüm Yolları:

PHP bellek limitini artırın – wp-config.php dosyasına şu kodu ekleyin:

define('WP_MEMORY_LIMIT', '256M');

FTP üzerinden tüm eklentileri devre dışı bırakın – wp-content/plugins klasörünün adını geçici olarak “plugins_old” olarak değiştirin ve hangi eklentinin soruna neden olduğunu belirlemek için teker teker etkinleştirin.

Varsayılan temaya geçiş yapın – FTP üzerinden aktif temanızın klasör adını değiştirerek WordPress’in varsayılan temaya geçmesini sağlayın.

Geçen yıl bir müşterimin sitesinde, yeni bir sayfa oluşturucu eklenti etkinleştirdikten sonra beyaz ekran hatası oluşmuştu. Eklentiyi devre dışı bırakarak siteyi kurtardık ve ardından bellek limitini artırarak sorunun tekrarlanmasını önledik.

2. Veritabanı Bağlantı Hataları

“Veritabanı bağlantı hatası” mesajı, WordPress’in MySQL veritabanına bağlanamadığı anlamına gelir. Bu genellikle veritabanı kimlik bilgilerinin yanlış olduğu, veritabanı sunucusunun çalışmadığı veya kullanıcı izinlerinde sorun olduğu durumlarda ortaya çıkar.

Çözüm Yolları:

  • wp-config.php dosyasındaki veritabanı bilgilerini kontrol edin (kullanıcı adı, şifre, veritabanı adı ve sunucu).
  • Veritabanı sunucunuzun çalıştığından emin olun – hosting panelinizden veya MySQL komut satırından kontrol edebilirsiniz.
  • Veritabanı kullanıcı izinlerini gözden geçirin – kullanıcının ilgili veritabanına tam erişimi olduğundan emin olun.

Bir kurumsal müşterimiz, sunucu taşıma işlemi sırasında bu hatayı aldı. Sorunun, wp-config.php dosyasındaki veritabanı sunucu adresinin güncellenmemesi olduğunu tespit ettik – basit ama gözden kaçması kolay bir ayrıntı.

3. 500 Internal Server Error

500 hatası, sunucuda bir şeylerin yanlış gittiğini gösteren genel bir hata kodudur. WordPress bağlamında, bu genellikle .htaccess dosyasındaki sorunlar, PHP bellek sınırı veya kötü yazılmış eklenti/tema kodlarından kaynaklanır.

Çözüm Yolları:

  1. .htaccess dosyasını yeniden oluşturun – Mevcut .htaccess dosyasının adını değiştirin ve WordPress Yönetici Paneli > Ayarlar > Kalıcı Bağlantılar bölümünden ayarları tekrar kaydedin.
  2. PHP sürümünü kontrol edin – Hosting kontrol panelinizden PHP sürümünü uyumlu bir sürüme değiştirin (WordPress için en az 7.4 önerilir).
  3. PHP zaman aşımı limitini artırın – .htaccess dosyasına şu satırı ekleyin:
php_value max_execution_time 300

Bir e-ticaret sitesinde karşılaştığımız 500 hatası, büyük bir ürün içe aktarma işlemi sırasında PHP zaman aşımına uğraması nedeniyle oluşmuştu. Zaman aşımı limitini artırdıktan sonra sorun çözüldü ve büyük veri işlemleri sorunsuz tamamlanabildi.

Gelişmiş WordPress Hata Ayıklama Teknikleri

Temel sorun giderme yöntemleri işe yaramazsa, daha ileri seviye tekniklere başvurmanın zamanı gelmiştir. Bu yöntemler biraz teknik bilgi gerektirse de, karmaşık sorunların çözümünde hayat kurtarıcı olabilir.

Güvenli Modda WordPress Çalıştırma

Güvenli mod, tüm eklentileri ve tema fonksiyonlarını geçici olarak devre dışı bırakarak WordPress’i “çıplak” bir şekilde çalıştırmanızı sağlar. Bu, sorunun bir eklenti veya tema kaynaklı olup olmadığını hızlıca belirlemenize yardımcı olur.

Kök dizinde .maintenance adında bir dosya oluşturup içine $upgrading = time(); satırını yazarak bakım modunu manuel olarak etkinleştirebilirsiniz. İşiniz bittiğinde bu dosyayı silmeyi unutmayın.

Alternatif olarak, wp-content klasörünün adını geçici olarak değiştirerek tüm eklenti ve temaları devre dışı bırakabilirsiniz. Bu, WordPress’in varsayılan tema ve eklentiler olmadan çalışmasını sağlar.

PHP Error Logları Analizi

PHP hata günlükleri, sorunların kaynağını belirlemenin en doğrudan yollarından biridir. Hosting kontrol panelinizden veya sunucunuzda bu loglara erişebilirsiniz. Log dosyalarındaki hata mesajları genellikle sorunun tam olarak nerede olduğunu gösterir – hangi dosya, hangi satır ve ne tür bir hata olduğu gibi.

Geçenlerde bir müşterinin sitesinde yaşanan kesintide, PHP loglarından “maximum execution time exceeded” hatası tespit ettim. Logları daha detaylı incelediğimde, özel bir arama eklentisinin sorgu performansı sorununa neden olduğunu gördüm. Eklentiyi optimize ettikten sonra site sorunsuz çalışmaya başladı.

WordPress Geçici Verileri Temizleme

WordPress, performansı artırmak için çeşitli geçici veriler (transients) saklar. Ancak bazen bu veriler bozulabilir ve çeşitli hatalara yol açabilir. Veritabanındaki tüm geçici verileri temizlemek, birçok gizemli sorunu çözebilir.

Veritabanı yönetim aracınızla (örneğin phpMyAdmin) şu SQL sorgusunu çalıştırabilirsiniz:

DELETE FROM wp_options WHERE option_name LIKE '%_transient_%'

Veya WP-CLI kullanıyorsanız, komut satırından şu komutu çalıştırabilirsiniz:

wp transient delete --all

Geçen ay bir haber sitesinin yönetim panelinde yaşanan yavaşlama sorunu, tam olarak bu yöntemle çözüldü. Sitede biriken binlerce geçici veri temizlendikten sonra, panel yeniden hızlı ve tepkisel hale geldi.

WordPress Hatalarını Önleme Stratejileri

Hata ayıklama önemli bir beceri olsa da, ideal olan bu hataların hiç oluşmamasıdır. İşte WordPress sitenizi sağlıklı tutmak ve yaygın sorunları önlemek için izleyebileceğiniz bazı stratejiler:

Düzenli Yedekleme Rutini

Her WordPress site sahibinin ilk savunma hattı düzenli yedeklemedir. Tam site yedeklemeleri (dosyalar ve veritabanı), herhangi bir felaket durumunda sitenizi hızla kurtarmanızı sağlar.

Yedekleme planınız şunları içermeli:

  • Günlük otomatik yedeklemeler (özellikle aktif siteler için)
  • Yedeklemelerin en az 30 gün saklanması
  • Düzenli yedekleme restorasyonu testleri
  • Yedeklemelerin harici bir konumda (ana sunucunuzdan farklı) saklanması

UpdraftPlus, BackupBuddy veya Jetpack Backup gibi eklentiler bu süreci otomatikleştirmenize yardımcı olabilir. Kişisel olarak, kritik müşteri sitelerimiz için hem eklenti bazlı çözümler hem de sunucu seviyesinde yedeklemeler kullanıyorum.

Aşamalı Güncelleme Yaklaşımı

WordPress, eklenti ve tema güncellemeleri site stabilitesi için önemlidir, ancak bu güncellemeler bazen beklenmedik sorunlara neden olabilir. Güvenli bir güncelleme süreci şöyle olmalıdır:

  1. Güncellemeden önce tam bir yedek alın
  2. Önce test ortamında güncellemeleri deneyin
  3. Canlı sitede güncellemeleri tek tek yapın (tümünü aynı anda değil)
  4. Her güncelleme sonrası sitenizi kontrol edin

Özellikle büyük WordPress sürüm güncellemeleri veya kritik eklentilerin major sürüm yükseltmeleri öncesinde bu adımları izlemek hayati önem taşır. Geçen çeyrekte bir e-ticaret müşterimiz, test etmeden yapılan bir WooCommerce güncellemesi nedeniyle 4 saatlik bir kesinti yaşadı ve bu da ciddi gelir kaybına neden oldu.

Sonuç: Proaktif Hata Yönetimi

WordPress hatalarıyla başa çıkmak, sadece reaktif bir yaklaşımdan ibaret olmamalıdır. Proaktif bir hata yönetimi stratejisi, sitenizin sağlığını sürekli izlemeyi ve potansiyel sorunları ortaya çıkmadan önce belirlemeyi içerir.

Bu rehberde paylaştığım teknikler, 10 yılı aşkın WordPress deneyimimden damıtılmış pratik çözümlerdir. Her WordPress kullanıcısının temel hata ayıklama becerilerine sahip olması, site kesintilerini minimum düzeyde tutmak ve hızlı müdahale edebilmek açısından kritik öneme sahiptir.

Sitenizde sürekli hatalarla karşılaşıyorsanız, bu genellikle daha derin bir sorunun belirtisidir. Belki de altyapınızı gözden geçirme, hosting sağlayıcınızı değiştirme veya sitenizi baştan optimize etme zamanı gelmiştir.

Son bir tavsiye: Kendinizi sürekli geliştirin. WordPress ekosistemi sürekli evrim geçiriyor ve yeni sorun türleri ortaya çıkıyor. Güncel kalmak ve öğrenmeye açık olmak, karşılaşacağınız her sorunu aşmanıza yardımcı olacaktır.

WordPress hata ayıklama teknikleri hakkında çözemediğiniz sorunlar için bize ulaşabilirsiniz. WordPress yolculuğunuzda yanınızda olmaktan mutluluk duyarız!

Tavsiye Edilen Yazılar