HTTP 500, web sunucusunun isteği tamamlayamadığını; beyaz ekran ise PHP hatasının ziyaretçiye gösterilmeden isteği sonlandırdığını ifade eder. İki belirti aynı eklenti veya tema hatasından çıkabileceği gibi .htaccess, PHP-FPM, izin ve web sunucusu yapılandırmalarından da kaynaklanabilir.
HTTP/1.1 500 Internal Server Error
PHP Fatal error
Premature end of script headers
AH01071: Got error 'Primary script unknown'
500 sunucu tarafında genel bir başarısızlık kodudur. Beyaz ekran ise yanıt gövdesinin boş kalmasıdır; HTTP kodu 200 bile dönebilir. Bu nedenle tarayıcı görüntüsünden çok response code ve hata logu önemlidir.
Bozuk veya sunucunun desteklemediği bir .htaccess direktifi, Apache üzerinde WordPress başlamadan 500 oluşturabilir. Kalıcı bağlantı kurallarını yenilemeden önce mevcut dosya yedeklenmelidir.
PHP fatal error, memory exhaustion ve max execution time sorunları hem 500 hem boş sayfa üretebilir. WordPress debug.log ile domain PHP error log aynı zaman aralığında incelenmelidir.
Yalnız belirli sayfa veya işlem hata veriyorsa ilgili eklenti, shortcode, tema şablonu ya da büyük sorgu hedeflenir. Tüm site etkileniyorsa PHP handler, FPM ve web sunucusu kontrol edilir.
Cloudflare 520/521 gibi aracı katman hataları WordPress 500 ile karıştırılmamalıdır. Origin sunucu doğrudan test edilerek CDN katmanı ayrılmalıdır.
HTTP kodunu 200’e zorlamak veya hata ekranını gizlemek çözüm değildir. Uygulama, PHP ve web sunucusu loglarında aynı isteğin hangi katmanda kesildiği bulunmalıdır.
E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.
Anlamı: Sunucu isteği tamamlayamamış ve genel 500 yanıtı vermiştir.
Muhtemel neden: PHP fatal error, .htaccess, izin veya web yapılandırması.
Anlamı: WordPress/PHP çıktı üretmeden sonlanmıştır.
Muhtemel neden: Fatal error, bellek tükenmesi veya boş template.
Anlamı: FastCGI/PHP işlemi geçerli başlık üretmeden kapanmıştır.
Muhtemel neden: Crash, timeout, izin veya yanlış PHP binary.
Anlamı: PHP bellek limiti dolmuştur.
Muhtemel neden: Ağır eklenti, import, Elementor veya döngü.
Anlamı: PHP işlemi süre sınırını aşmıştır.
Muhtemel neden: Yavaş sorgu, dış API veya büyük işlem.
Anlamı: Apache kullanılan PHP handlerda .htaccess php_value direktifini kabul etmiyor.
Muhtemel neden: FPM/FastCGI ile eski .htaccess ayarları.
Anlamı: PHP-FPM istenen script yolunu bulamıyor veya erişemiyor.
Muhtemel neden: Yanlış document root, socket veya izin.
Anlamı: Sunucu yönlendirme döngüsüne girmiştir.
Muhtemel neden: Hatalı .htaccess, canonical veya SSL kuralı.
Bu ifadeyle eşleşen kayıt bulunamadı.
Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.
curl -sSIk https://example.com/
Gerçek HTTP kodunu ve yönlendirme zincirini gösterir.
tail -n 150 wp-content/debug.log 2>/dev/null
WordPress/PHP fatal error satırlarını gösterir.
tail -n 150 /var/log/apache2/error.log 2>/dev/null
tail -n 150 /var/log/nginx/error.log 2>/dev/null
Web sunucusunun isteği neden reddettiğini gösterir.
cp .htaccess .htaccess.once && mv .htaccess .htaccess.devre-disi
Bozuk rewrite veya direktif ihtimalini kontrollü test eder.
wp plugin deactivate --all
Yalnız yedek ve planlı testte tüm eklentileri geçici kapatır.
wp core verify-checksums
Değişmiş veya eksik WordPress çekirdek dosyalarını tespit eder.
WordPress hatasının temel nedeni aynıdır ancak log yolları, PHP ayar ekranları ve servis yönetimi kullanılan barındırma altyapısına göre değişir.
cPanel’de Metrics > Errors, MultiPHP ve File Manager üzerinden 500 kaynağı ayrılır.
cd /home/KULLANICI/public_html && wp rewrite flush --hardPlesk’te Domains > Logs ve PHP Settings, domain bazlı 500 incelemesini kolaylaştırır.
plesk repair web example.comPanelsiz sunucuda web server, PHP-FPM ve WordPress logları eş zamanlı izlenir.
nginx -t 2>/dev/null || apachectl configtestHTTP kodunu doğrulayın, logu bulun, .htaccess ve PHP katmanını ayırın; sonra bileşenleri kontrollü test edin.
Beyaz ekranın 500 mü yoksa boş 200 yanıtı mı olduğunu curl ile görün.
curl -sSIk https://example.com/Domain error log, PHP log ve debug.log içindeki aynı saniyeyi karşılaştırın.
tail -n 150 wp-content/debug.logDosyayı silmeden geçici yeniden adlandırın ve sonucu karşılaştırın.
cp .htaccess .htaccess.onceLogda görünen bileşeni önce kapatın; toplu kapatma son seçenek olsun.
wp plugin list --status=activeSürüm, FPM servis durumu, memory ve timeout değerlerini kontrol edin.
php -v && php -i | grep memory_limitSorun düzeldikten sonra rewrite kurallarını ve uygulama cache’ini temizleyin.
wp rewrite flush --hardAdmin memory, dashboard eklentileri ve REST/AJAX logları incelenir.
curl -sSIk https://example.com/wp-admin/Şablon, shortcode, ürün eklentisi ve o kayda özgü veri incelenir.
wp post get IDYeni eklentiyi FTP veya WP-CLI ile kapatıp logu tekrar kontrol edin.
wp plugin deactivate EKLENTIUyumsuz eklenti/tema ve eksik PHP uzantıları kontrol edilir.
php -mOrigin IP/hosts üzerinden doğrudan test ederek CDN’i ayırın.
curl -sSIk --resolve example.com:443:ORIGIN_IP https://example.com/Sunucunun isteği tamamlayamadığını belirten genel HTTP kodudur; kesin neden error logda bulunur.
PHP hata gösterimi kapalıysa fatal error ayrıntısı ekrana basılmaz ve boş yanıt oluşabilir.
Silmek yerine yedekleyip geçici yeniden adlandırmak ve sonra WordPress kalıcı bağlantı kurallarını yeniden üretmek daha güvenlidir.
Test amacıyla mümkündür ancak ödeme, güvenlik ve cache işlevlerini etkileyebilir; önce logdaki şüpheli eklenti hedeflenmelidir.
Evet; PHP fatal error, bağlantı timeout veya ağır sorgu 500 oluşturabilir.
Yalnız limit gerçekten düşükse yardımcı olur. Bellek sızıntısı veya hatalı döngüyü gizlememelidir.
Cloudflare origin hatasını gösterebilir veya kendi 52x kodlarını üretir; origin doğrudan test edilmelidir.
cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.