IIS7'de PHP hatalarını nasıl görüntüleyebilir ve kaydedebilirim?


29

Bir IIS 7 Sunucusunda PHP 5.2.5 kullanıyoruz ve PHP hatalarını görünür hale getirmekte sorun yaşıyoruz ... Şu anda bir PHP hatası olduğunda sunucu "500 mesajı" ile sayfa geri gönderilemiyor "dahili bir sunucu hatası oluştuğu için görüntülendi."

Bu, üretim web siteleri için iyi bir ayar olabilir, ancak bir geliştirme sunucusunda sinir bozucu olabilir ... ;-)

php.iniHataları ekrana göstermenin yanı sıra onları belirli bir klasöre kaydetmeyi de denedim , ancak Sunucu tüm hataları yakalar ve PHP tarafından önlenir ve ele alınır ...

Birisi IIS'nin PHP hatalarını ekranda göstermesi için ne yapmamız gerektiğini biliyor mu? Konuyla ilgili herhangi bir bağlantı, ipucu veya öğretici takdir edilecektir!


İlk olarak, bu sahip olmasını sağlamak: log_errors=1, error_reporting=-1, log_errors_max_len=0.
Pacerier

ini_set("display_errors", "on");php dosyasına bu satırları ekleyin.
ELITE

Yanıtlar:


35

Sadece iki kez kontrol etmek, size set giriş gelmiş yapmak error_reporting = E_ALLve display_errors = Onöğenize php.ini? Genellikle bu hataları IIS 7'de görüntülemek için yeterlidir.

Sonra, yalnızca yerel olarak hata mesajlarını gösterecek şekilde ayarlanmış olabileceğinden IIS ayarlarınıza bir göz atın. IIS 7 yapılandırma düzenleyicisinde bu system.webServer-> httpErrors altındadır. ErrorMode'u AyrıntılıLocalOnly'dan Ayrıntılı olarak değiştirmelisiniz. Açıkçası bu şimdi, sitenizi gezen herkesin hatayı görebileceği anlamına geliyor.

görüntü tanımını buraya girin

görüntü tanımını buraya girin

Alternatif olarak, yerel tutmak istiyorsanız, sunucuya giriş yapmak ve mümkünse uygulamayı oradan çalıştırmak için Uzak Masaüstü'nü kullanabilirsiniz.


1
Evet kontrol ettim ve hepsi doğru olarak yapılandırılmış.
Ben

Daha fazla sorun giderme bilgisi eklendi
Sam Cogan

1
ErrorMode'yu "DetailedLocalOnly" den "Ayrıntılı" olarak değiştirmek hile yaptı. Teşekkürler!
Ben

1
System.webServer altındaki HTTP hatalarının toplanmasını da kaldırmak zorunda kaldım. Ben yapana kadar PHP ile çalışmadı.

1
Lütfen bunu kanımla vurgulayın system.webServerve şunu ekleyin: "Evet, açılan var".
DiGi

2

Sadece eklemek istedim, "existingResponse" ifadesinin "PassThrough" olarak ayarlanması gerektiğini söyledi. Bu ek ayar olmadan herhangi bir gerçek hata mesajı alamadım.


1
Bu ayar nerede bulunur?
Eugene Mala

0

IIS Yöneticisi GUI'sini kullanarak bunu kolayca yapabilirsiniz. Sitenizi seçin ve Hata Sayfaları'na çift tıklayın. Ardından, 'Özellik Ayarlarını Düzenle ...' seçeneğine basın ve varsayılan 'yerel istekler için detay hataları ve uzak istekler için özel hata sayfaları' yerine 'ayrıntılı hatalar' seçeneğini seçin. Voilà, bu kadar basit!


Günlükler ve hatalar nerede gösterilebilir?
JukEboX

0

Web sunucusu ayarlarına php konfigürasyonuna girmem gerekiyordu ve hata raporlama için bir ayar var ve varsayılan olarak üretime ayarlanmış. Php.ini ve buradaki öneriyi değiştirdikten sonra bile gelişime geçmek zorunda kaldım. 2008 R2’de iis 7.5 kullanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.