WordPress 500 Internal Server Error Nasıl Çözülür?
WordPress 500 hatası .htaccess bozukluğu, hafıza limiti veya eklenti çakışmasından kaynaklanır. Adım adım çözüm rehberi.
WordPress 500 Internal Server Error Nedir?
HTTP 500 Internal Server Error, sunucunun isteği yerine getirirken beklenmedik bir durumla karşılaştığını belirten genel bir hata kodudur. WordPress söz konusu olduğunda bu hata, tarayıcıda yalnızca "500 Internal Server Error" veya boş beyaz sayfa olarak görünebilir. Hata son derece geniş kapsamlıdır ve birden fazla farklı kaynaktan beslenebilir.
WordPress 500 hatasının en yaygın sebepleri arasında bozuk .htaccess dosyası, PHP hafıza limitinin aşılması, uyumsuz veya hatalı eklenti/tema kodu, yanlış dosya/dizin izinleri ve PHP'nin kendisinde yaşanan fatal error'lar sayılabilir. Sorunun çözümü için sistematik bir yaklaşım gerekir: önce hata loglarını incelemek, ardından olası kaynakları birer birer elemek en etkili yöntemdir.
Olası Nedenler
- Bozuk .htaccess dosyası: WordPress permalink ayarları değiştirildiğinde veya eklentiler kural eklediğinde bozulabilir.
- PHP hafıza limiti yetersiz: memory_limit değeri, eklentilerin ihtiyacını karşılamıyor.
- Eklenti veya tema PHP hatası: Güncelleme sonrası uyumsuz kod fatal error'a neden olur.
- Yanlış dosya/dizin izinleri: wp-content, uploads dizinleri 755/644 dışında bir değere sahip.
- PHP sürümü uyumsuzluğu: WordPress veya eklenti eski PHP sürümüyle uyumlu değil.
- Bozuk core WordPress dosyaları: Manuel FTP yüklemesi veya eksik güncelleme nedeniyle.
Çözüm Adımları
SSH/Terminal ile Hata Logu İnceleme
İlk adım her zaman hata loglarını okumaktır. 500 hatasının gerçek sebebi logda gizlidir.
# Nginx error log
sudo tail -50 /var/log/nginx/error.log
# Apache error log
sudo tail -50 /var/log/apache2/error.log
# PHP-FPM log
sudo tail -50 /var/log/php8.2-fpm.log
# WordPress kendi debug logunu aktifleştir (wp-config.php)
# define('WP_DEBUG', true);
# define('WP_DEBUG_LOG', true);
# define('WP_DEBUG_DISPLAY', false);
# Log dosyası: wp-content/debug.log
tail -50 /var/www/html/wp-content/debug.log
.htaccess Dosyasını Sıfırlama
Bozuk .htaccess dosyasını yeniden oluşturmak hızlı bir çözüm sunar.
cd /var/www/html # WordPress kök dizini
# Mevcut .htaccess'i yedekle
cp .htaccess .htaccess.bak
# Varsayılan WordPress .htaccess içeriğiyle yeniden oluştur
cat > .htaccess << 'EOF'
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
EOF
# İzinleri düzelt
chmod 644 .htaccess
PHP Hafıza Limitini Artırma
wp-config.php dosyasına veya php.ini'ye hafıza limiti ekleyin.
# wp-config.php içine ekle (define satırlarından önce)
sudo nano /var/www/html/wp-config.php
# define('WP_MEMORY_LIMIT', '256M');
# define('WP_MAX_MEMORY_LIMIT', '512M');
# Veya php.ini ile
sudo nano /etc/php/8.2/fpm/php.ini
# memory_limit = 256M
sudo systemctl restart php8.2-fpm
Eklentileri Devre Dışı Bırakma
WordPress yöneticisine giremiyorsanız eklentileri FTP veya SSH ile devre dışı bırakın.
# Tüm eklentileri SSH ile yeniden adlandırarak devre dışı bırak
cd /var/www/html/wp-content/plugins
mv plugins plugins_disabled
# Siteyi kontrol et; çalışıyorsa sorun eklentilerdeydi
# Ardından eklentileri tek tek aktifleştir:
mv plugins_disabled plugins
# Tek eklentiyi devre dışı bırak
# WP-CLI ile (yüklüyse):
wp plugin deactivate --all
wp plugin activate eklenti-adi
Dosya ve Dizin İzinlerini Düzeltme
WordPress için doğru izin yapısı: dizinler 755, dosyalar 644 olmalıdır.
cd /var/www/html
# Dizinleri 755 yap
find . -type d -exec chmod 755 {} \;
# Dosyaları 644 yap
find . -type f -exec chmod 644 {} \;
# wp-config.php daha kısıtlı olabilir
chmod 600 wp-config.php
# Sahipliği düzelt (www-data = Nginx/Apache kullanıcısı)
sudo chown -R www-data:www-data /var/www/html
cPanel Ortamında
cPanel kullanıcıları için çözüm adımları yönetim paneli üzerinden uygulanabilir.
# cPanel > File Manager > .htaccess dosyasını düzenle/sil
# cPanel > MultiPHP INI Editor > memory_limit = 256M
# cPanel > Error Logs > son hata satırlarını oku
# cPanel > Softaculous > WordPress'i onar (repair)
# SSH erişimi varsa WP-CLI kullan
cd ~/public_html
wp core verify-checksums # Core dosyalarını doğrula
wp core download --force # Bozuk core dosyalarını yeniden indir
Plesk Ortamında
Plesk panel kullanıyorsanız PHP ayarları ve loglar Plesk arayüzünden yönetilebilir.
# Plesk > Websites & Domains > PHP Settings > memory_limit = 256M
# Plesk > Logs > Apache/Nginx error log
# Plesk > File Manager > .htaccess düzenle
Özet ve Önleyici Tedbirler
- WordPress güncellemelerinden önce tam site yedeği alın.
- Eklentileri güncel tutun; uyumluluk notlarını okuyun.
- WP_DEBUG modunu geliştirme ortamında açık tutun, production'da kapalı bırakın.
- PHP sürümünüzü WordPress minimum gereksinimlerinin üzerinde tutun.
- Düzenli olarak dosya izinlerini kontrol edin; özellikle eklenti yüklemelerinden sonra.
- Sağlam bir staging ortamı oluşturun; güncellemeleri önce orada test edin.
İlgili Makaleler
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!