Bagaimana saya bisa menampilkan dan mencatat kesalahan PHP di IIS7?

29

Kami menjalankan PHP 5.2.5 pada Server IIS 7 dan kami mengalami masalah untuk membuat kesalahan PHP terlihat ... Saat ini setiap kali kami memiliki kesalahan PHP, server mengirimkan kembali 500 kesalahan dengan pesan "Halaman tidak dapat ditampilkan karena kesalahan server internal telah terjadi. "

Ini mungkin pengaturan yang bagus untuk situs web produksi tetapi agak mengganggu pada server pengembangan ... ;-)

Saya telah mencoba mengkonfigurasi php.iniuntuk menampilkan kesalahan ke layar serta mencatatnya ke folder tertentu tetapi tampaknya Server menangkap semua kesalahan sebelum dan mencegah dan menangani dengan PHP ...

Apakah ada yang tahu apa yang harus kita lakukan untuk membuat IIS menampilkan kesalahan PHP di layar? Tautan, tip, atau tutorial apa pun tentang subjek akan dihargai!

Ben
sumber
Pertama, pastikan bahwa Anda memiliki ini: log_errors=1, error_reporting=-1, log_errors_max_len=0.
Pacerier
ini_set("display_errors", "on");tambahkan baris ini dalam file php.
ELITE

Jawaban:

35

Hanya untuk mengecek, apakah Anda telah mengatur logging ke error_reporting = E_ALL, dan display_errors = Ondi Anda php.ini? Biasanya ini cukup untuk menampilkan kesalahan ini di IIS 7.

Selanjutnya, lihat pengaturan IIS Anda, karena mungkin diatur untuk hanya menampilkan pesan kesalahan secara lokal. Dalam editor konfigurasi IIS 7 ini berada di bawah system.webServer-> httpErrors. Anda harus mengubah errorMode menjadi Detail dari DetailedLocalOnly. Jelas ini sekarang berarti siapa pun yang menjelajahi situs Anda akan dapat melihat kesalahan.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Atau, jika Anda ingin membuatnya tetap lokal, Anda dapat menggunakan Remote Desktop untuk masuk ke server dan menjalankan aplikasi dari sana, jika Anda bisa.

Sam Cogan
sumber
1
Ya saya memeriksa dan itu semua dikonfigurasi dengan benar.
Ben
Menambahkan beberapa info pemecahan masalah lainnya
Sam Cogan
1
Mengubah errorMode menjadi "Detail" dari "DetailedLocalOnly" berhasil. Terima kasih!
Ben
1
Saya harus menghapus koleksi kesalahan HTTP di bawah system.webServer juga. Tidak bekerja dengan PHP sampai saya melakukannya.
1
Harap sorot itu system.webServerdengan darah saya dan tambahkan catatan: "Ya, ada kombo".
DiGi
2

Hanya ingin menambahkan, bahwa "existingResponse" harus disetel ke "PassThrough". Saya tidak mendapatkan pesan kesalahan nyata tanpa pengaturan tambahan itu.

Bolli
sumber
1
Di mana letak pengaturan ini?
Eugene Mala
0

Anda dapat melakukan ini dengan mudah menggunakan GUI IIS Manager. Pilih Situs Anda dan klik dua kali Halaman Kesalahan. Kemudian tekan 'Edit Pengaturan Fitur ...' dan pilih opsi 'kesalahan terperinci' alih-alih kesalahan detail 'default untuk permintaan lokal dan halaman kesalahan khusus untuk permintaan jarak jauh'. Voa, sesederhana itu!

Jeroen Aarts
sumber
Di mana log dan kesalahan dapat ditampilkan?
JukEboX
0

Saya harus masuk ke pengaturan pada server web ke dalam konfigurasi php dan ada pengaturan di sana untuk pelaporan kesalahan dan diatur ke produksi secara default. Harus mengubahnya untuk pengembangan bahkan setelah mengubah php.ini dan sarannya di sini. Saya menggunakan iis 7.5 pada 2008 R2.

naps1saps
sumber