500 Internal Server Error: Neden Olur, Nasıl Çözülür? (cPanel, WordPress, Nginx/Apache Rehberi)

- 500 Internal Server Error: Neden Olur, Nasıl Çözülür? (cPanel, WordPress, Nginx/Apache Rehberi)
- 1) 500 Internal Server Error nedir?
- 2) İlk 5 dakikalık teşhis: Hızlı kontrol listesi
- 3) WordPress odaklı çözüm adımları
- .htaccess dosyasını doğrulayın / sıfırlayın (Apache)
- Eklenti/tema çatışmasını ekarte edin
- PHP sürümü/uzantıları & bellek limiti
- Dosya/klasör izinleri
- Yönetim paneline giremiyorsanız
- 4) NGINX/Apache/PHP-FPM tarafı: sistematik teşhis
- Loglar (nereden bakacağız?)
- NGINX ↔ PHP-FPM entegrasyonu
- PHP-FPM tarafında yaygın nedenler
- 5) Cloudflare & CloudLinux (508) ilişkisi
- 6) cPanel’de pratik teşhis akışı (5 adım)
- 7) Kopyala-yapıştır çözümler (kod örnekleri)
- WordPress’te hata kaydı (wp-config.php)
- PHP bellek limiti yükseltme
- Varsayılan WordPress .htaccess (Apache)
- NGINX log seviyesini (geçici) yükseltme
- PHP-FPM slowlog örneği
- 8) Sık senaryolar → nasıl okuruz / çözeriz?
- 9) Önleyici bakım önerileri
- 10) SSS
Özet (TL;DR): 500, sunucunun isteği işlerken beklenmeyen bir durumla karşılaştığını anlatan genel (“catch-all”) bir hata kodudur; kök nedeni loglarda bulunur. Önce logları açın, sonra sırasıyla uygulama (.htaccess/eklenti/tema), PHP (sürüm/uzantı/bellek), web sunucusu (Apache/NGINX) ve altyapı (Cloudflare, LVE/508) katmanlarını kontrol edin.
1) 500 Internal Server Error nedir?
500, “sunucu beklenmeyen bir koşulla karşılaştı ve isteği tamamlayamadı” anlamına gelen genel 5xx durum kodudur; tek başına sebep söylemez. Bu yüzden doğru teşhis için hata günlükleri (error log) şarttır.
2) İlk 5 dakikalık teşhis: Hızlı kontrol listesi
- Herkes mi etkileniyor, tek sayfa mı? Sitenin başka sayfaları açılıyor mu; yalnızca
/wp-admin
mi? - Önce loglar: cPanel’de Metrics → Errors (son hatalar), File Manager’da
error_log
, Apache/NGINX ve PHP-FPM logları. - WordPress debug:
WP_DEBUG_LOG
etkinleştiripwp-content/debug.log
’u takip edin. - Cloudflare kullanıyorsanız: 5xx analitiğine ve 522/502 gibi edge-origin bağlantı hatalarına ayrıca bakın.
3) WordPress odaklı çözüm adımları
.htaccess dosyasını doğrulayın / sıfırlayın (Apache)
WordPress kalıcı bağlantılar için .htaccess
kullanır; bozulmuş kurallar 500 üretebilir. Gerekirse varsayılan WP kurallarını geri yükleyin. Apache tarafında .htaccess
’in çalışması AllowOverride
ayarına bağlıdır.
Eklenti/tema çatışmasını ekarte edin
- Tüm eklentileri geçici devre dışı bırakın (FTP/cPanel’den
wp-content/plugins
klasörünü örn.plugins.off
yapın), site açılıyorsa tek tek etkinleştirerek sorunluyu bulun. - Temayı varsayılan bir temaya alın (ör. Twenty Twenty-*), sorun devam ediyorsa
themes
klasörünü geçici yeniden adlandırın.
PHP sürümü/uzantıları & bellek limiti
- cPanel MultiPHP/Select PHP ile uyumlu bir PHP 8.x sürümüne geçin; gerekli uzantılar (mysqli, intl, gd vb.) açık mı kontrol edin.
memory_limit
yetersizse WordPress/PHP “memory exhausted” ile 500’e gidebilir; 256M (gerekirse 512M) deneyin.
Dosya/klasör izinleri
Genel öneri: dosyalar 644, klasörler 755. Aşırı geniş izinler (örn. 777) hem 500’e hem güvenlik risklerine neden olabilir.
Yönetim paneline giremiyorsanız
- Eklentileri FTP/cPanel ile klasör yeniden adlandırarak kapatın.
.htaccess
adını geçici değiştirip yenisini oluşturun (Kalıcı Bağlantılar sayfasını kaydedin).error_log
vewp-content/debug.log
’u kontrol edin.
4) NGINX/Apache/PHP-FPM tarafı: sistematik teşhis
Loglar (nereden bakacağız?)
- Apache:
ErrorLog
ile tanımlı hata günlüğü; teşhisin bir numaralı kaynağı. - NGINX:
error_log
konumu/seviyesi (stderr, dosya, syslog). Gerekirse debug seviyesi. - PHP-FPM: Global
error_log
ve pool logları; slowlog ile geciken scriptleri yakalayın.
NGINX ↔ PHP-FPM entegrasyonu
500, kimi zaman hatalı fastcgi_param
değerlerinden (özellikle SCRIPT_FILENAME
) veya PHP tarafındaki ölümcül bir istisnanın balonlanmasından kaynaklanır. Konfigürasyonu ve hata günlüklerini doğrulayın.
PHP-FPM tarafında yaygın nedenler
- Eksik PHP modülü veya ölümcül hata → 500 (ayrıntı FPM/Apache/NGINX error_log’da).
- Slowlog ile yavaş PHP sayfalarının backtrace’ini çıkarın;
request_slowlog_timeout
için makul eşik belirleyin.
5) Cloudflare & CloudLinux (508) ilişkisi
- Cloudflare 522 (Connection timed out): Cloudflare, origin’e zamanında ulaşamazsa 522 verir. Sık nedenler: yanlış/yanıtsız origin IP, firewall engeli, yoğunluk.
- CloudLinux 508 Resource Limit Is Reached: Paylaşımlı hostingte hesap için tanımlı CPU/RAM/IO/Entry Process limitleri aşıldığında görülür. Kaynak artırımı ya da optimizasyon gerekir.
6) cPanel’de pratik teşhis akışı (5 adım)
- Metrics → Errors: Son hata kayıtlarını açın.
- PHP Selector / MultiPHP: Sürümü değiştirin, gerekli uzantıları etkinleştirin (FPM
error_log
yolunu not alın). - Resource Usage (CloudLinux ise): Limit aşımları/508 var mı bakın.
- WordPress:
WP_DEBUG_LOG
açın,.htaccess
’i yenileyin, eklenti/tema izolasyonu yapın. - Cloudflare: 5xx/522 analitiği; DNS origin IP ve firewall allowlist’i doğrulayın.
7) Kopyala-yapıştır çözümler (kod örnekleri)
WordPress’te hata kaydı (wp-config.php)
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true); // wp-content/debug.log
define('WP_DEBUG_DISPLAY', false);
PHP bellek limiti yükseltme
// wp-config.php
define('WP_MEMORY_LIMIT', '256M');
// Bazı kurulumlarda php.ini / .user.ini / .htaccess üzerinden ayarlamak gerekir.
Varsayılan WordPress .htaccess (Apache)
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
NGINX log seviyesini (geçici) yükseltme
error_log /var/log/nginx/error.log notice; # gerekirse info/debug
# test & reload
nginx -t && systemctl reload nginx
PHP-FPM slowlog örneği
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/www-slow.log
8) Sık senaryolar → nasıl okuruz / çözeriz?
- Tek sayfada 500 (örn. /wp-admin veya belli bir yazı):
debug.log
ve Apache/NGINXerror_log
ilgili script/eklenti izini verir → problemli eklentiyi devre dışı bırakın/güncelleyin. - Tüm sitede 500, Cloudflare açık: Origin logları + Cloudflare 5xx/522 kılavuzları; firewall ve origin erişimi.
- Yük altında 500/503/508 karışık: CloudLinux Entry Process/CPU/Memory limit grafikleri → önbellek, sorgu optimizasyonu veya plan yükseltme.
9) Önleyici bakım önerileri
- Log/uyarılar: Apache/NGINX ve PHP-FPM loglarını düzenli izleyin; cPanel Errors’ı kontrol edin.
- Güncellemeler: WordPress çekirdek/tema/eklenti & PHP sürümleri güncel kalsın.
- Önbellek ve profil: Sayfa önbelleği + OPcache; PHP-FPM slowlog ile “yavaş sayfa” avı.
- Cloudflare kuralları: Origin IP ve güvenlik duvarı uyumu; 522/5xx analitiği.
10) SSS
500 mü, 502/503/504 mü? 500 genel uygulama/sunucu hatasıdır. 502/504 upstream iletişim/zaman aşımı; 503 genellikle bakım/aşırı yük durumudur.
cPanel’de ilk nereye bakayım? Metrics → Errors bölümü, en son hata kayıtlarını hızla gösterir.
WordPress’te ilk müdahale? WP_DEBUG_LOG
açın, .htaccess
’i yenileyin, eklentileri topluca kapatıp tek tek açın.