Apache "Internal Server Error 500" Hatası İçin .htaccess Dışı Sunucu Kaynaklı Nedenler

Apache üzerinde karşılaşılan "Internal Server Error 500" hatası, web sitesi sahiplerinin kabusu haline gelebilir. Çoğu kaynak bu hatayı .htaccess dosyasındaki bir yanlışlığa bağlasa da, asıl neden çoğunlukla sunucu tarafındaki başka bir sorundur. Bu yazıda, .htaccess dışında kalan ve 500 hatasına yol açan sunucu kaynaklı nedenleri adım adım inceleyeceğiz.

PHP Yapılandırma Sorunları

PHP ayarları, 500 hatasının en sık görülen nedenlerinden biridir. Özellikle aşağıdaki parametrelerin aşılması sunucunuzu çökerten hatayı tetikleyebilir:

  • memory_limit: PHP betiğinizin kullanabileceği maksimum bellek miktarı. Örneğin, bir eklenti veya tema bu limiti aşarsa hata alırsınız. Varsayılan 128 MB genelde yeterlidir, ancak yoğun sitelerde 256 MB veya daha fazlası gerekebilir.
  • max_execution_time: Betiğin çalışma süresi. Uzun süren işlemler (örneğin toplu e-posta gönderimi) bu limiti aşarsa 500 hatası alırsınız. Varsayılan 30 saniyedir, ancak 60-120 saniyeye çıkarmak sorunu çözebilir.
  • upload_max_filesize ve post_max_size: Büyük dosya yüklemelerinde bu limitler aşıldığında hata alınabilir. Bu değerleri ihtiyacınıza göre artırın.

Bu ayarları değiştirmek için php.ini dosyasını düzenleyebilir veya hosting kontrol panelinizden (cPanel, Plesk) ayarlayabilirsiniz. Değişiklik sonrası Apache'yi yeniden başlatmayı unutmayın.

Dosya İzinleri ve Sahiplik Hataları

Linux sunucularda dosya izinleri (permissions) ve sahiplik (ownership) yanlış ayarlandığında Apache, dosyalara erişemez ve 500 hatası döner. Özellikle WordPress gibi CMS'lerde taşıma veya güncelleme sonrası bu sorun sık yaşanır. Doğru ayarlar şöyledir:

  • Dosyalar için 644 (okuma-yazma sahibi, okuma grup ve diğerleri)
  • Klasörler için 755 (okuma-yazma-çalıştırma sahibi, okuma-çalıştırma grup ve diğerleri)
  • Sahiplik genellikle kullanıcı adı:www-data veya kullanıcı adı:nobody şeklinde olmalıdır.

Bu ayarları FTP istemcisi veya SSH ile kontrol edin. Ayrıca .htaccess dosyasının da 644 iznine sahip olduğundan emin olun.

Apache Modülleri ve Çakışmaları

Apache'nin mod_rewrite, mod_security veya suPHP gibi modülleri yanlış yapılandırıldığında 500 hatası alabilirsiniz. Örneğin:

  • mod_rewrite: .htaccess dosyasında kullanılan RewriteRule'lar doğru yazılmamışsa veya sunucuda mod_rewrite etkin değilse hata oluşur. Modülün etkin olduğundan emin olmak için phpinfo() sayfasını kontrol edin.
  • mod_security: Güvenlik duvarı kuralları bazen meşru istekleri engelleyerek 500 döndürebilir. Geçici olarak devre dışı bırakarak test edin.
  • suPHP veya PHP-FPM: Havuz ayarlarındaki hatalar (örneğin yanlış socket yolu) 500 hatasına yol açar. Logları kontrol edin.

Apache hata logları (genellikle /var/log/apache2/error.log) hangi modülün soruna neden olduğunu gösterir. Log satırını inceleyerek çözüme ulaşabilirsiniz.

Sunucu Kaynaklarının Yetersizliği

Sunucunuzun RAM, CPU veya disk alanı tükenmişse Apache isteklere yanıt veremez ve 500 hatası döner. Özellikle paylaşımlı hostinglerde sık görülen bu durumu şu belirtilerden anlayabilirsiniz:

  • Site yavaş yükleniyor veya zaman aşımına uğruyor.
  • SSH bağlantınız kapanıyor veya tepki vermiyor.
  • Disk doluluğu (disk full) Apache'nin log yazmasını engeller ve hata verir.

Çözüm için kaynakları artırın (daha iyi bir hosting planı) veya gereksiz süreçleri sonlandırın. Disk alanını df -h komutuyla kontrol edin.

.htaccess'in Devre Dışı Olması

Bu başlık biraz çelişkili görünse de, .htaccess dosyasının kendisi değil, sunucu yapılandırmasında bu dosyaya izin verilmemesi 500 hatasına neden olabilir. Apache yapılandırma dosyasında (httpd.conf veya vhost) AllowOverride None ayarı varsa .htaccess dosyaları okunamaz ve sunucu hata verir. Bunu düzeltmek için AllowOverride All yapın ve Apache'yi yeniden başlatın.

Unutmayın, 500 hatasını çözmenin en hızlı yolu Apache hata loglarını okumaktır. Log dosyası hangi dosyada hata olduğunu veya hangi betiğin sorun çıkardığını söyler. Bu bilgiyle yukarıdaki adımları uygulayarak hatayı giderebilirsiniz. Hâlâ sorun devam ediyorsa hosting sağlayıcınıza başvurmaktan çekinmeyin.

← Tüm yazılar