Czy możliwe jest wysłanie do webmastera automatycznej wiadomości e-mail zawierającej szczegółowe informacje na temat żądanej strony, gdy odwiedzający wejdzie na 500 błąd wewnętrzny serwera?
W ten sposób webmaster może działać szybciej, aby rozwiązać problem. To jest ogólne pytanie, więc która platforma jest używana, nie ma znaczenia.
email
error-reporting
http-code-500
Tony Bolero
źródło
źródło
Odpowiedzi:
Tak, to możliwe. Musisz tylko upewnić się, czy serwer WWW to IIS czy Apache, a następnie możesz ustawić go tak, aby wyświetlał niestandardową stronę (która będzie zawierała kod do przechwytywania potrzebnych szczegółów od użytkownika i wysyłania go e-mailem) za każdym razem, gdy 500 wystąpił błąd.
Na przykład w przypadku Apache jest to naprawdę proste. Po prostu utwórz (lub dodaj, jeśli taki istnieje) a
.htaccess
i użyj poniższej reguły, aby skonfigurować niestandardowy dokument błędu:źródło
Wysyłanie wiadomości e-mail z każdym błędem za pośrednictwem niestandardowej strony błędu może nie działać, jeśli problem dotyczy PHP: Twoja strona niestandardowa może również nie działać, więc poczta nie wychodzi. Otrzymasz również jeden e-mail na błąd, który może być powodzią.
Proponuję zamiast tego zastosować jakąś formę skanowania dziennika: zlecić cronowi (lub zaplanowanemu zadaniu w systemie Windows) skanowanie plików dziennika w poszukiwaniu błędów każdego dnia lub co kilka godzin i wysyłanie podsumowania wszystkiego, co znaleziono od ostatniego sprawdzenia do odpowiedniego administratora (s). Możesz także sprawić, aby skrypt sprawdzający dziennik robił kilka innych rzeczy, takich jak upewnienie się, że usługa serwera WWW (i wszelkie usługi bazy danych itd.) Działa, choćby ze względu na paranoję. Jeśli nic więcej, jeden e-mail na okres sprawozdawczy może obejmować inne kody błędów HTTP (401, 404, ...) i inne rzeczy znalezione w dziennikach. Jeśli to zrobisz, zawsze wysyłaj wiadomość e-mail, nawet jeśli nic nie jest źle : w ten sposób wiesz, że skrypt skanowania nie uruchomił się, ponieważ przestajesz otrzymywać wiadomości (w przeciwnym razie żadna wiadomość nie może oznaczać, że wszystko jest w porządku lub maszyna do zgłaszania uszkodzeń jest uszkodzona).
źródło
Tak, wyślij wiadomość e-mail na każdy błąd. Dobrym pomysłem jest również przesłanie jak największej ilości informacji w ramach wiadomości e-mail. Pomyśl o chwytaniu:
Pomaga to znacznie do celów debugowania. Bardzo łatwo jest uzyskać te informacje w klasycznej ASP i ASP.NET za pośrednictwem obiektów Request i Session.
Po prostu nie ma błędu na niestandardowej stronie błędów, w przeciwnym razie wystraszysz serwer WWW.
źródło
Tak, bardzo możliwe. Oprócz wiadomości e-mail możesz także sprawdzić dziennik serwera WWW.
Sugeruję, aby nie wysyłać wiadomości e-mail na każde 500, w przeciwnym razie, jeśli wystąpi błąd, skrzynka pocztowa zostanie zalana. Po prostu zapisz identyfikator błędu, wyślij 1 dla tego samego błędu na tym samym identyfikatorze.
źródło
Możesz dodać ramkę iframe, która ładuje php z innego serwera, wtedy strona błędu zawsze wysyła wiadomości e-mail.
źródło