Bir ziyaretçi 500 hata sayfasına ulaştığında web yöneticisine otomatik e-posta göndermek mümkün müdür?


10

Bir ziyaretçi 500 dahili sunucu hata sayfasına ulaştığında web yöneticisine istenen sayfayla ilgili ayrıntıları içeren otomatik bir e-posta göndermek mümkün müdür?

Bu şekilde web yöneticisi sorunu çözmek için daha hızlı hareket edebilir. Bu genel bir sorudur, bu nedenle hangi platformun kullanıldığı önemsizdir.


1
lütfen kullanabileceğiniz (istediğiniz) web sunucusu yazılımını ve dilini ekleyin. (apache, nginx, iis, php, asp) böylece insanlar size senaryo örnekleri gösterebilir.
jflaflamme

Yanıtlar:


7

Evet mümkün. Sadece web sunucusunun IIS mi yoksa Apache mi olduğunu belirlemeniz gerekir ve daha sonra 500'den her seferinde özel bir sayfa gösterecek şekilde ayarlayabilirsiniz (bu, kullanıcıdan istediğiniz ayrıntıları yakalamak ve size e-posta ile göndermek için kodu içerir) hatası ile karşılaşıldı.

Örneğin Apache için bu gerçekten basit. .htaccessÖzel hata belgenizi oluşturmak için a'yı oluşturun (veya varsa ekleyin) ve içinde aşağıdaki kuralı kullanın:

ErrorDocument 500 /error-docs/500.php

ve şimdi nginx için mi? :)
rogerdpack

2
@rogerdpack, hata_sayfası
Bluebaron

7

PHP ile ilgili bir sorun varsa, özel bir hata sayfası aracılığıyla her hatayla posta göndermek işe yaramayabilir: özel sayfanız da çalışmayabilir, bu nedenle posta dışarı çıkmaz. Ayrıca hata başına bir sel olabilecek bir e-posta alırsınız.

Bunun yerine günlük tarama biçiminin uygulanmasını öneririm: günlük dosyalarını her gün veya birkaç saatte bir hatalar için taramak için bir cron işi (veya Windows altında zamanlanmış görev) bulun ve ilgili yöneticiye son kontrolden beri bulunan her şeyin bir özetini gönderin (s). Ayrıca, günlük denetimi komut dosyanızın, yalnızca paranoya uğruna, web sunucusu hizmetinin (ve herhangi bir veritabanı hizmetinin vb.) Çalıştığından emin olmak gibi birkaç şey daha yapmasını sağlayabilirsiniz. Başka bir şey yoksa, raporlama dönemi başına bir e-posta diğer HTTP hata kodlarını (401, 404, ...) ve günlüklerde bulunan diğer şeyleri kapsayabilir. Bunu yaparsanız, hiçbir şey yanlış olmasa bile her zaman e-posta iletisini gönderin : bu şekilde, tarama komut dosyanızın çalışmayı başaramadığını bilirsiniz çünkü mesaj almayı bırakırsınız (aksi takdirde hiçbir mesaj her şeyin yolunda olduğu veya hasar rapor makinesi hasar görmüştür).


Alternatif olarak, kancaları ve kullanıcı tanımlı işlevleri destekleyen (veya başka yollarla e-posta gönderebilen) bir perl komut dosyasına veya veritabanına günlük girişleri yazmasını (veya pipetlemesini ) sağlayarak günlük işlemine doğrudan Apache üzerinden bağlanabilirsiniz. Özel bir modül kullanarak Apache günlük olaylarına da müdahale edebilirsiniz.
Lèse majesté

Bence, cevabınız gerçekten yükseltilmeyi hak ediyor. bu pratik bir çözümdür.
ALH

4

Evet, her hata için bir e-posta gönderin. E-postanın bir parçası olarak alabileceğiniz kadar çok bilgi göndermek de iyi bir fikirdir. Kapmayı düşünün:

  • form koleksiyonunun içeriği,
  • tüm oturum değişkenleri,
  • tarayıcı kullanıcı aracısı dizesi,
  • çerez değerleri,
  • sorgu URL'si parametreleri de dahil olmak üzere sayfa URL'si.

Bu, hata ayıklama amacıyla büyük ölçüde yardımcı olur. Bu bilgiyi, İstek ve Oturum nesneleri aracılığıyla klasik ASP ve ASP.NET'te almak önemsizdir.

Özel hata sayfanızda bir hata yok, yoksa web sunucusunu korkutursunuz.


3

Evet, çok mümkün. E-posta dışında, Web Sunucusu günlüğünü de kontrol edebilirsiniz.

Ben her 500 500 e-posta göndermemenizi öneririz, aksi takdirde bir hata varsa, posta kutusu sular altında olacak. Sadece hata kimliğini kaydedin, aynı kimliğe aynı hata için 1 gönderin.


Benim sorunum, bir şeyler ters gittiğinde bir e-posta almanın, web sunucusu günlük düzenlemelerinden geçmek yerine web yöneticisinin hayatını biraz daha kolay hale getirmesidir. 1 e-posta fikri hakkında iyi bir nokta. Oyla!
Tony Bolero

Teşekkürler. ASP'yi kullanıyordum, eski zamanlarda ASP bir hata kodu alır, onu ve sayfanın URL'sini kullanır, benzersiz bir anahtar yapar ve belleğe kaydederim, her hatada ve her bellekte 1 e-posta aldım (örn. uygulamayı yeniden başlat). Çok fazla e-posta değil, ancak hataları izlemek için yeterli. (btw, bu yol da 404'ü izleyebilir, ancak dikkatli olun, bu günlerde botlardan çok fazla 404 hatası)
Eric Yin

-1

Diğer sunucudan bir php yükleyen bir iframe ekleyebilirsiniz, daha sonra hata sayfanız her zaman posta gönderir.


1
Neden iframe? Sebebini anladığımdan emin değilim.
Andrew
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.