WordPress Beyaz Ekran (WSOD) Hatası Nasıl Çözülür?
WordPress beyaz ekran (WSOD) PHP hafıza limiti veya eklenti hatasından kaynaklanır. Debug modunu açıp sorunu tespit edin.
WordPress Beyaz Ekran (WSOD) Nedir?
WordPress Beyaz Ekran (White Screen of Death - WSOD), sitenize girdiğinizde tarayıcıda tamamen boş, beyaz bir sayfa görmesi durumudur. Herhangi bir hata mesajı, içerik veya tasarım öğesi görünmez; sayfa sanki hiç yüklenmemiş gibi durur. Bu durum hem ön yüz (frontend) hem de WordPress yönetim paneli (wp-admin) için geçerli olabilir.
WSOD'nin temel sebebi, PHP'nin bir hata üretmesi ve bu hatanın ekrana yazdırılmamasıdır. PHP "display_errors" ayarı kapalı olduğunda (üretim ortamında önerilir), fatal error'lar tarayıcıda görünmez ve sayfa boş kalır. Hafıza limiti aşımı (Allowed memory size exhausted), eklenti veya tema kodundaki sözdizimi hatası, PHP sürümü uyumsuzluğu bu boş sayfanın en yaygın nedenleridir. Sorunu tespit etmek için önce hata loglarını etkinleştirip ardından sistematik bir eleme yapmanız gerekir.
Olası Nedenler
- PHP hafıza limitinin aşılması: "Allowed memory size exhausted" hatası en sık WSOD nedenidir.
- Hatalı eklenti kodu: Güncellenmiş veya yeni yüklenen eklenti syntax hatası içeriyor.
- Hatalı tema PHP dosyası: functions.php dosyasındaki hatalı kod tüm siteyi çökertir.
- PHP sürümü uyumsuzluğu: PHP 8.x ile yazılmış kod PHP 7.x'te çalışmayabilir.
- WordPress core güncelleme yarım kaldı: İnternet kesilmesi veya yetki hatası nedeniyle.
- Bozuk veritabanı bağlantısı: wp-config.php'de hatalı DB bilgisi veya MySQL servisi dolu.
Çözüm Adımları
WP Debug Modunu Aktifleştirme (SSH/FTP ile)
Boş sayfanın arkasındaki hatayı görmek için debug modunu açın.
sudo nano /var/www/html/wp-config.php
// wp-config.php içine ekleyin (define('WP_DEBUG', false) satırını değiştirin)
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false); // Ekrana yazma, dosyaya yaz
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/wp-content/debug.log');
# Sayfayı yenile, ardından log dosyasını kontrol et
tail -30 /var/www/html/wp-content/debug.log
PHP Hafıza Limitini Artırma
Memory limit aşımı çok sık görülen bir WSOD nedenidir. Aşağıdaki yöntemlerden birini uygulayın.
# Yöntem 1: wp-config.php ile
# define('WP_MEMORY_LIMIT', '256M');
# Yöntem 2: .htaccess ile
# php_value memory_limit 256M
# Yöntem 3: php.ini ile
sudo nano /etc/php/8.2/fpm/php.ini
# memory_limit = 256M
sudo systemctl restart php8.2-fpm
# Mevcut limiti kontrol et
php -r "echo ini_get('memory_limit');"
Eklentileri SSH ile Devre Dışı Bırakma
wp-admin'e erişemiyorsanız eklentiler klasörünü yeniden adlandırarak tüm eklentileri devre dışı bırakın.
cd /var/www/html/wp-content
# Tüm eklentileri bir anda kapat
mv plugins plugins.bak
# Siteyi test et
curl -I http://siteniz.com
# Çalışıyorsa eklentileri geri getir ve tek tek test et
mv plugins.bak plugins
# WP-CLI ile tek eklentiyi devre dışı bırak
wp plugin deactivate sorunlu-eklenti --path=/var/www/html
Tema Sorununu Tespit Etme
Aktif temayı varsayılan WordPress temasıyla değiştirerek temanın soruna yol açıp açmadığını anlayın.
# WP-CLI ile varsayılan temaya geç
wp theme activate twentytwentyfour --path=/var/www/html
# WP-CLI yoksa MySQL ile tema değiştir
mysql -u wpkullanici -p wordpress_db
UPDATE wp_options SET option_value = 'twentytwentyfour' WHERE option_name = 'template';
UPDATE wp_options SET option_value = 'twentytwentyfour' WHERE option_name = 'stylesheet';
# functions.php sözdizimini kontrol et
php -l /var/www/html/wp-content/themes/tema-adi/functions.php
cPanel Ortamında
cPanel kullanıcıları için WSOD çözüm adımları.
# cPanel > File Manager > wp-content/plugins klasörünü yeniden adlandır
# cPanel > MultiPHP INI Editor > memory_limit değerini artır
# cPanel > Error Logs > son hataları gör
# cPanel > phpMyAdmin > wp_options tablosunu düzenle (tema değiştirme)
Plesk Ortamında
Plesk ile yönetilen WordPress sitelerinde WSOD giderme.
# Plesk > PHP Settings > memory_limit artır, display_errors geçici olarak açabilirsiniz
# Plesk > File Manager veya SSH ile plugins klasörünü yeniden adlandır
# Plesk > WordPress Toolkit > Maintenance Mode aktif et, debug logunu incele
WordPress Core Dosyalarını Yenileme
WordPress çekirdeği bozulmuşsa, tüm veritabanı ve wp-content'e dokunmadan sadece core'u yeniden yükleyin.
# WP-CLI ile (önerilen)
wp core download --force --path=/var/www/html
# Manuel yöntem: WordPress.org'dan zip indir, wp-content ve wp-config.php olmadan yükle
cd /tmp
wget https://tr.wordpress.org/latest-tr_TR.zip
unzip latest-tr_TR.zip
rsync -av --exclude='wp-content' --exclude='wp-config.php' wordpress/ /var/www/html/
Özet ve Önleyici Tedbirler
- Üretim ortamında WP_DEBUG kapalı tutun; log dosyasına yazdırın.
- Eklenti ve tema güncellemelerini önce staging ortamında test edin.
- PHP sürümünü güncellemeden önce eklenti uyumluluğunu kontrol edin.
- Otomaik yedek sistemi kurun: BackupBuddy, UpdraftPlus veya Jetpack Backup.
- PHP hafıza limitini makul bir değere (256M) ayarlayın ve monitörleyin.
- WordPress, eklenti ve tema güncellemelerini düzenli olarak uygulamayı ihmal etmeyin.
İlgili Makaleler
- WordPress 500 Internal Server Error Nasıl Çözülür?
- WordPress Error Establishing a Database Connection Hatası Çözümü
- PHP Fatal Error: Allowed Memory Size Exhausted Nasıl Çözülür?
- WordPress Sonsuz Yönlendirme Döngüsü Çözümü (Too Many Redirects)
- WordPress Kurulumu: cPanel, Plesk ve VPS Üzerinde Adım Adım
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!