Arif

WFN Üye
Konular
705
Mesajlar
705
Çözüm
0
Ticaret Puanı
0
Üyelik
24 Gün
Konum
Bilecik
Web Sitesi
Var
Alanı
SEO Uzmanı
1/1
Konu sahibi
500 Internal Server Error, sunucunun isteği tamamlayamadığını gösteren genel bir yanıttır; tek başına hatanın PHP kodundan kaynaklandığını kanıtlamaz. En hızlı çözüm, hatanın oluştuğu anda PHP ve web sunucusu günlüklerini okumak, ardından ilgili dosyayı sözdizimi, dosya yolu, PHP sürümü, eklenti ve izinler açısından sırayla kontrol etmektir. Geliştirme ortamında ayrıntılı hata raporlamasını açabilirsiniz; canlı sitede hatayı ekrana bastırmak yerine günlük dosyasına yazdırmalısınız.

Önce gerçek hata mesajını bulun​


500 sayfasını yenilemeden önce hatanın oluştuğu zamanı not edin. Hosting panelindeki PHP hata günlüğünü, web sunucusunun error log dosyasını veya projenizde tanımlı error_log dosyasını açıp aynı dakikadaki son kaydı inceleyin. Günlükte genellikle hatalı dosya yolu, satır numarası ve sorunun türü bulunur. Örneğin Parse error, Call to undefined function, Allowed memory size exhausted veya Permission denied ifadeleri farklı işlemler gerektirir.

Günlük boşsa, PHP yapılandırmasında hata kaydının etkin olup olmadığını kontrol edin. Geliştirme ortamındaki geçici bir tanılama için giriş dosyanızın en üstüne şu satırları ekleyebilirsiniz:

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');

Bu kod çalıştırılmadan önce oluşan bazı sözdizimi veya başlangıç hatalarını yakalayamayabilir. Böyle bir durumda php.ini içindeki ayarlar veya sunucu günlüğü kullanılmalıdır. Hata mesajı işiniz bittiğinde ekranda bırakılmamalıdır; PHP belgeleri canlı sistemlerde display_errors yerine log_errors kullanılmasını önerir.

Hata türüne göre düzeltin​


Önce değişiklikten önce çalışan dosyanın yedeğini alın. Daha sonra aşağıdaki kontrolleri günlükte görülen mesaja göre uygulayın.
Günlükte görülen durumKontrol ve sonraki işlem
Parse error veya syntax errorBelirtilen dosya ve satırı açın; eksik noktalı virgül, parantez, tırnak veya hatalı PHP sözdizimini düzeltin.
Call to undefined function/classFonksiyonun doğru eklentiye veya dosyaya bağlı olup olmadığını kontrol edin; gerekli require, include ya da PHP eklentisini etkinleştirin.
Failed opening requiredDosya yolunu, büyük-küçük harfleri ve dosyanın gerçekten sunucuda bulunduğunu kontrol edin. Göreli yol yerine gerektiğinde güvenilir bir mutlak yol kullanın.
Permission deniedDosya ve klasör sahipliğinin web sunucusu kullanıcısıyla uyumlu olduğunu kontrol edin; herkese açık yazma izni vermek yerine gereken en düşük izni uygulayın.
Allowed memory size exhausted veya timeoutBüyük döngüleri, sınırsız sorgu sonuçlarını ve gereksiz dosya işlemlerini inceleyin. Sorunun kod kaynaklı olduğunu dışlamadan bellek veya süre limitini yükseltmeyi değerlendirin.
Yalnızca belirli PHP sürümünde hataKullanılan PHP sürümünü php -v ile ve web isteğinin kullandığı sürümü hosting paneli veya sunucu yapılandırmasından ayrı ayrı kontrol edin.
Dosyanın temel sözdizimini komut satırından da kontrol edebilirsiniz. Örneğin sorun public_html/index.php dosyasındaysa, sunucuda şu komutu çalıştırın:

Kod:
php -l public_html/index.php

No syntax errors detected sonucu yalnızca sözdiziminin geçerli olduğunu gösterir; veritabanı bağlantısının, dosya izinlerinin, gerekli eklentilerin veya çalışma zamanındaki mantık hatalarının düzeldiğini kanıtlamaz. Hata devam ederse web isteğinde kullanılan PHP sürümüyle komut satırındaki sürümün aynı olup olmadığını kontrol edin.

Değişiklikten sonra sonucu doğrulayın​


Düzeltmeyi kaydettikten sonra önce hatayı üreten aynı URL'yi, ardından ilgili form veya API isteğini yeniden çalıştırın. 500 hatası yerine beklenen sayfa açılıyorsa ve yeni bir hata günlüğü oluşmuyorsa ilk sorun giderilmiş olabilir. Buna rağmen sayfa boş geliyor, yönlendirme döngüsüne giriyor veya 500 yanıtı sürüyorsa bu sonuç sorunun kesin olarak çözüldüğünü göstermez; yeni günlük kaydının zamanını ve mesajını tekrar kontrol edin.

PHP günlüğünde kayıt yoksa sorun PHP betiğine ulaşmadan önce oluşuyor olabilir. Bu durumda web sunucusunun hata günlüğünü, sanal sunucu yapılandırmasını, .htaccess kurallarını ve PHP-FPM veya benzeri işlem yöneticisinin durumunu inceleyin. Hosting desteğine başvurmanız gerekirse alan adını, hatanın oluştuğu kesin zamanı, ilgili URL'yi, son yaptığınız değişikliği ve günlükteki hata satırını iletin; veritabanı parolası, API anahtarı ve oturum bilgilerini paylaşmayın.

Tanılama tamamlandıktan sonra ekrana hata basan geçici satırları kaldırın veya kapatın. Canlı ortamda display_errors=Off, log_errors=On ve erişimi kısıtlanmış bir hata günlüğü kullanmak, ayrıntılı sunucu bilgilerinin ziyaretçilere açılmasını önler.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic