Garip 500 Internal Server Error (kundakçı, php, display_errors, ajax)

5 Cevap php

Beyler, bir sayfada birden çok AJAX çağrıları yapıyorum. Tüm aramalar başarıyla yanıtları geri ama (kundakçı söyler gibi) (başka ajax çağrıları ile ilgili değil) son bir yanıt kodu olarak 500 iç sunucu hatası döndürür. Ancak, hata kodu rağmen, doğru içerik o AJAX çağrısından döndürülen.

Ben On php.ini dosyasında display_errors seçeneği ayarladığınızda benim hayretle, hata kaybolur ve sayfada işlenen tepki. Ben bir dosyaya kurulum hata günlüğü var ama hiçbir hata yukarıda belirtilen iç sunucu hatası karşılık kaydedilir.

Bu arada, ben Apache, JQuery, PHP5, APC (alakalı ise) kullanıyorum.

5 Cevap

Büyük olasılıkla cevap, sınırlı bilgi mevcut verilen, PHP bir ölümcül hata after sizin beklenen çıkışı yankılanan tamamladı ulaşıyor olmasıdır.

Test etmek için: son idam olur doğrultusunda, bir şey yankı. O yankı göstermek değilse, o zaman PHP komut yerde durdurmak olduğunu biliyoruz. Bu noktada, sadece hata ayıklama ve izleme meselesi.

Bu çok garip ... Eğer kütüphanede veya you didn't write gerçek döndürülen değerin bağımsız durum kodu başlığı etkileyen olabileceği diğer kod çeşit kullanıyor musunuz?

PHP yorumlayıcısı sadece bu bir istek sırasında çöküyor. Ben PHP çökmesine verebilecek bir potansiyel nedenini biliyorum:

Nedeniyle GCC 4.3 bazı hatalar, derleyici bu sürümü ile derlenmiş PHP kırık istisna uygulaması vardır. Olmayan bazı önemsiz durumlarda, komut dosyası bir istisna atma segfault neden olur ve komut dosyası yürütme sonlandırılır. Tez birkaç ay önce PHP ekibi tarafından doğrulandı.

Sadece bir istisna atma sonra olur script çalıştırma çöker ve, evde nereye, size olur olsun, basitçe kontrol edebilirsiniz, doğrulamak için. Çek ne olur, die() daha fazla ve detayli komut ve görmek koyarak yapılabilir. Başka bir yolu da bir rapor alırsınız, böylece komut dosyası nasıl yürütüleceğini, declare(ticks=1) kullanmak ve dosyaya debug_backtrace() son girişi her kene kaydeder kene işlevi kayıt etmek .

Ben biraz benzer bir sorun yaşadım ve sorunu script durumlar atma olmasıydı ve istisna "yakalanmamış istisna" oldu yüzeyi ve ölümcül hata kabarmış olacağını hiç catch bloğu yoktu. Standart php davranıştır ancak belirli bir sunucu üzerinde de yerine 200 OK 500 İç sunucu hatası yanıt kodu alacağı. Istisnalar Çıkarma ve kalıp ile değiştirerek () ifadeleri bu sunucuda sorun sabit (biz yapabiliriz bunu gerçekten ilk etapta istisnalar fayda etmedi basit bir script çünkü)

The problem is often fixed by ione of the following. Check the scripts permissions, rights and ownership. If returned after an ajax call, check whether there is nowhere a fatal error. Check whether you didn;t accidentally uplaoded the file to Unix in ASCII mode.

Daha detaylı bilgi http://www.larshemel.com/forum/500_internal_server_error okunabilir