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. Karanlıkta El Yordamıyla Aramayı Bırakın: Hata Loglarını (Error Logs) Okuyun
- 2. En Yaygın Fail: Bozuk veya Şişmiş .htaccess Dosyası
- 3. Yanlış Dosya İzinleri (Permissions) ve Sahiplik (Ownership/Chown) Krizleri
- 4. PHP Memory Limit (Bellek) Yetersizliği ve Max Execution Time Darboğazı
- 5. ModSecurity (WAF) Yanlış Pozitif Engellemeleri
- 6. Acı Gerçek: Sorun Kodlarınızda Değil, Sunucunuzun Gücündedir!
- SaviorHost ile Darboğazlara Veda Edin
Sitenizde aniden beliren “500 Internal Server Error” hatası, tarayıcınızın veya internetinizin değil; doğrudan sunucunun bir şeyleri işleyemediğinin çığlığıdır. Hatalı .htaccess kuralları, yanlış dosya izinleri veya yetersiz PHP bellek limitleri en yaygın yazılımsal nedenlerdir. Ancak sorun kodlarınızda değilse, sunucunuzun işlemci (CPU) darboğazına girmiş veya PHP Worker limitlerini doldurmuş olma ihtimali çok yüksektir. Bu devasa rehberde, 500 hatasını sıradan bir kullanıcı gibi değil, bir Sistem Yöneticisi (SysAdmin) gibi nasıl teşhis edip çözeceğinizi adım adım anlatıyoruz.
Web sitenizde gezinirken, yeni bir içerik yayımlamaya çalışırken veya en kötüsü kritik bir e-ticaret (WooCommerce) ödemesi sırasında aniden karşınıza çıkan bembeyaz bir sayfadaki “500 Internal Server Error” yazısı, bir webmaster’ın en büyük kabusudur. E-ticaret siteleri için bu hata sadece teknik bir sorun değil, doğrudan ciro ve itibar kaybıdır.
Çoğu kaynak bu hatayı çözmek için size “Tüm eklentilerinizi kapatın, temanızı değiştirin ve tek tek açarak test edin” gibi saatler sürecek, amatörce tavsiyeler verir. Oysa bir sunucu mimarisini anlayan teknik bir uzman gibi yaklaşırsanız, sorunun kaynağını dakikalar içinde bulabilirsiniz. SaviorHost mühendislik ekibi olarak, 500 hatasının arka planındaki mimariyi, gizli kalmış tetikleyicileri ve kesin çözüm yollarını masaya yatırıyoruz.
1. Karanlıkta El Yordamıyla Aramayı Bırakın: Hata Loglarını (Error Logs) Okuyun
500 hatası aslında “Genel (Catch-all)” bir koddur. Sunucu, güvenlik nedeniyle hatanın gerçek nedenini (örneğin hangi veritabanı tablosunun çöktüğünü) doğrudan ekrana yazdırarak ziyaretçiye (ve olası saldırganlara) göstermez. Gerçek nedeni bulmanın tek yolu Error Logs (Hata Günlükleri) dosyasına bakmaktır.
-
Sunucu Panelinden Kontrol: Kontrol panelinizden (KeyHelp, cPanel, Plesk) “Error Log” veya “Hata Kayıtları” bölümüne girin. Burada Apache veya Nginx’in tuttuğu son 300 hatayı saniyesi saniyesine görebilirsiniz.
-
WordPress Debug Modu: Eğer WordPress kullanıyorsanız, FTP üzerinden
wp-config.phpdosyasına girip aşağıdaki satırları bularak “true” olarak değiştirin (veya yoksa ekleyin):PHPdefine('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);Bu işlemden sonra,
/wp-content/klasörünüzün içindedebug.logadında bir dosya oluşacaktır. Bu dosyayı açtığınızda hatanın hangi eklentinin hangi satırından koptuğunu net bir şekilde görebilirsiniz. Sorunu çözdükten sonra bu değerleri tekrarfalseyapmayı unutmayın.
2. En Yaygın Fail: Bozuk veya Şişmiş .htaccess Dosyası
500 hatalarının %70’inden fazlası Apache veya LiteSpeed sunucularında yanlış yapılandırılmış bir .htaccess dosyasından kaynaklanır. Yeni bir SEO eklentisi kurduğunuzda, önbellek (Cache) temizliği yaptığınızda veya SSL (HTTP’den HTTPS’ye) yönlendirmesi eklediğinizde, bu dosyaya hatalı bir noktalı virgül (;) veya geçersiz bir RewriteRule eklenmiş olabilir.
Kesin Çözüm Yöntemi:
-
FTP veya Dosya Yöneticisi üzerinden sitenizin kök dizinine (
public_htmlveyahttpdocs) bağlanın. -
Gizli dosyaları göster seçeneğinin açık olduğundan emin olun ve
.htaccessdosyasını bulun. -
Dosyanın adını
.htaccess_yedekolarak değiştirerek devre dışı bırakın. -
Sitenizi yenileyin. Eğer siteniz sorunsuz açılıyorsa (alt sayfalar 404 verebilir, normaldir), sorun kesinlikle bu dosyadadır.
-
WordPress panelinize girin, Ayarlar > Kalıcı Bağlantılar (Permalinks) sekmesine gidin ve hiçbir değişiklik yapmadan doğrudan “Değişiklikleri Kaydet” butonuna basın. WordPress sizin için tertemiz, hatasız ve orijinal bir
.htaccessdosyası üretecektir.
3. Yanlış Dosya İzinleri (Permissions) ve Sahiplik (Ownership/Chown) Krizleri
Linux işletim sistemlerinde güvenlik ve izolasyon en üst düzeydedir. Eğer bir PHP dosyasının veya klasörün okuma/yazma izni yanlış ayarlanmışsa (özellikle 777 gibi tehlikeli izinler verilmişse), sunucunun güvenlik mekanizmaları (suPHP veya PHP-FPM yapılandırmaları) bu dosyayı çalıştırmayı reddeder ve anında 500 hatası fırlatır.
İdeal Linux İzin Yapılandırması Şöyle Olmalıdır:
-
Tüm klasörler (Directories) 755 yetkisine sahip olmalıdır.
-
Tüm dosyalar (Files) 644 yetkisine sahip olmalıdır.
-
wp-config.phpgibi kritik veritabanı şifrelerini barındıran dosyalar ekstra güvenlik için 440 veya 400 yapılabilir.
Sahiplik (Ownership) Sorunu: Bazen dosyaların izinleri doğru olsa bile, dosyayı oluşturan kullanıcı (Owner) yanlıştır. Dosyalar root kullanıcısına aitse ve web sunucusu (örneğin www-data veya kendi kullanıcı adınız) bunu okumaya çalışırsa 500 hatası alırsınız. Bu durumu hosting firmanızın destek ekibine “Chown (Sahiplik) yetkilerimi sıfırlayabilir misiniz?” diyerek saniyeler içinde çözdürebilirsiniz.
4. PHP Memory Limit (Bellek) Yetersizliği ve Max Execution Time Darboğazı
Ağır bir e-ticaret siteniz, çok fazla varyasyona sahip ürünleriniz veya Elementor/WPBakery gibi çok kaynak tüketen sayfa yapılandırıcılarınız varsa, PHP’nin tek bir işlemi tamamlamak için ihtiyaç duyduğu RAM (Bellek) miktarı sunucunuzun size ayırdığı limiti aşabilir. Bu durumda PHP işlemi aniden çöker (Fatal Error: Allowed memory size exhausted) ve ekrana 500 hatası yansır.
Benzer şekilde, bir işlem çok uzun sürerse (örneğin XML ürün içe aktarma), max_execution_time (maksimum çalışma süresi) sınırı dolar ve işlem yarıda kesilir.
Nasıl Çözülür? wp-config.php dosyanıza şu satırları ekleyerek limitleri artırmayı deneyin:
define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '1024M');
Ayrıca .htaccess dosyanıza veya kontrol panelinizdeki MultiPHP INI düzenleyicisine şu satırları ekleyebilirsiniz: php_value max_execution_time 300
Önemli Not: Eğer bu kodları eklemenize rağmen hata devam ediyorsa, hosting firmanız arka planda (CloudLinux vb. üzerinden) donanımsal bir tavan limit koymuş ve sizin bunu aşmanıza izin vermiyor demektir.
5. ModSecurity (WAF) Yanlış Pozitif Engellemeleri
Sunucularda sitenizi siber saldırılardan korumak için Web Application Firewall (WAF) veya ModSecurity adı verilen güvenlik duvarları bulunur. Bazen tamamen masum bir işlem; örneğin uzun bir makale kaydetmek, karmaşık bir SQL sorgusu çalıştırmak veya tema ayarlarında çok fazla parametre kaydetmek, ModSecurity tarafından “SQL Injection Saldırısı” olarak algılanır. Sistem anında isteği keser ve sizi 500 veya 403 hatasıyla cezalandırır.
Eğer belirli bir sayfayı kaydederken hep aynı hatayı alıyorsanız, kontrol panelinizden geçici olarak ModSecurity’i kapatıp işlemi tekrar deneyin. İşlem başarılı olursa, sorunun bir “False Positive” (Yanlış Alarm) olduğunu anlarsınız.
6. Acı Gerçek: Sorun Kodlarınızda Değil, Sunucunuzun Gücündedir!
Yazılımsal tüm testleri yaptınız, .htaccess tertemiz, eklentiler güncel, RAM limitleri en üstte ama siteniz biraz trafik aldığında veya bir kampanya döneminde hala 500 (veya 503/508) hataları veriyorsa, sorun arka plandaki hantal sunucu mimarisindedir.
Standart hosting altyapılarında şu darboğazlar yaşanır:
-
PHP Worker Yetersizliği: Ucuz hostinglerde size genellikle sadece 10-20 arası PHP işçisi (Worker) tahsis edilir. Anlık 30 kişi sitenize girip sepete ürün eklediğinde veya arama yaptığında, PHP kuyruğu tıkanır. İşçiler yetişemediği için sistem yeni gelen müşterilere 500/503 hatası gösterir.
-
Hantal Panellerin RAM Sömürüsü: Arka planda sunucu kaynaklarını ağırlaştıran paneller (eski nesil CWP veya cPanel yapıları), sitenize kalması gereken RAM’i kendi servislerini ayakta tutmak için kullanır.
SaviorHost ile Darboğazlara Veda Edin
Biz SaviorHost olarak 500 hatalarını eklenti kapatarak veya ziyaretçi sayınızı kısıtlayarak değil, saf mühendislik ve ham donanım gücüyle çözüyoruz:
-
AMD Ryzen™ 9 7900 İşlemci Gücü: Eski nesil standart işlemcilerin kuyrukta beklettiği PHP sorgularını, inanılmaz tek çekirdek (IPC) gücü sayesinde milisaniyeler içinde işliyoruz.
-
50 PHP Worker Ayrıcalığı: Yoğun trafikli siteleriniz ve e-ticaret operasyonlarınız için rakiplerin sunmadığı düzeyde geniş bir PHP işlemci havuzu sağlıyoruz. Siteniz yoğun anlarda bile nefes alıyor.
-
KeyHelp ile Özgür Bırakılan RAM: Sunucu kaynaklarını sömürmeyen Alman mimarisi KeyHelp paneli sayesinde, tüm RAM kapasitesi ve 7GB/s NVMe okuma hızı doğrudan web sitenize tahsis ediliyor.
Sürekli hata logları okumaktan, “Sitem neden çöktü?” diye düşünmekten ve yavaşlık yüzünden müşteri kaybetmekten sıkıldıysanız; gerçek performansla tanışmanın vakti gelmiştir. Sorunsuz altyapımız için Premium Linux Web Hosting paketlerimizi 15 Gün İade Garantisiyle hemen inceleyin, farkı kendi gözlerinizle görün.





