Cruz: Internal Server error per email verschicken?

Hi Leute!

Gibt es einen Weg die Internen Server Errors per Email zu verschicken, anstatt sie in den Error Log zu schreiben?

Gruß
Cruz

  1. Hi,

    Gibt es einen Weg die Internen Server Errors per Email zu verschicken, anstatt sie in den Error Log zu schreiben?

    anstatt wohl weniger, aber zusätzlich: Schreibe ein Script, daß die eMail versendet sowie eine Fehlerseite ausgibt, und lege das ErrorDocument 500 drauf.

    Cheatah

    1. Das Script ist kein Problem, aber was bedeutet "lege das ErrorDocument 500 drauf"?

      Danke
      Cruz

      Hi,

      Gibt es einen Weg die Internen Server Errors per Email zu verschicken, anstatt sie in den Error Log zu schreiben?

      anstatt wohl weniger, aber zusätzlich: Schreibe ein Script, daß die eMail versendet sowie eine Fehlerseite ausgibt, und lege das ErrorDocument 500 drauf.

      Cheatah

      1. Nabend

        Das Script ist kein Problem, aber was bedeutet "lege das ErrorDocument 500 drauf"?

        Das kommt auf den verwendeten Webserver an. Clevererweise verwendet man natuerlich den Apachen, und da muss man einfach in der httpd.conf an der richtigen Stelle

        ErrorDocument 500 /cgi-bin/error500handler.pl

        angeben. Falls Du den Apache verwendest, such einfach nach ErrorDocument in dieser Datei, da stehen schon ein paar auskommentierte Beispiele.

        Calocybe

        1. kann ich dann die Error Message die auch in den Log geschrieben wird einfach mit $ARGV[0] auslesen?

          Cruz

          » Nabend

          Das Script ist kein Problem, aber was bedeutet "lege das ErrorDocument 500 drauf"?

          Das kommt auf den verwendeten Webserver an. Clevererweise verwendet man natuerlich den Apachen, und da muss man einfach in der httpd.conf an der richtigen Stelle

          ErrorDocument 500 /cgi-bin/error500handler.pl

          angeben. Falls Du den Apache verwendest, such einfach nach ErrorDocument in dieser Datei, da stehen schon ein paar auskommentierte Beispiele.

          Calocybe

          1. Hi,

            kann ich dann die Error Message die auch in den Log geschrieben wird einfach mit $ARGV[0] auslesen?

            das bezweifele ich, es wäre mir sogar neu, daß die Fehlermeldung in %ENV stehen würde. Das kann Dir aber definitiv - wieder vorausgesetzt, Du verwendest Apache - http://www.apache.org sagen.

            Ach, noch was: Bitte zitiere sinnvoll, nämlich nur das, worauf Du Dich beziehst, und antworte danach. Das macht die Texte lesbarer und verhindert unnötige Widerholungen nachher im Archiv :-)

            Cheatah

            1. Hallo Cheatah,

              leider habe ich nicht viel Peil vom Apache Server, ich habe noch nie selbst eins aufgezogen. Dank deiner und Calocybe's hilfe kriege ich so langsam raus wie der internal error gehandlet wird, aber ein Puzzelstück fehlt mir noch.
              Also, ich war auf http://www.apache.org/docs-1.2/custom-error.html wo der custom error handling beschrieben wird. Aber leider erfährt man da nur was Calocybe bereits gesagt hat:

              ErrorDocument 500 /cgi-bin/script.pl

              in der httpd.conf eintragen.

              Ok damit kann ich erreichen, daß ich per Email benachrichtigt werde, daß ein 500 Error aufgetreten ist. Aber ich möchte auch wissen welches script es verursacht hat. Am liebsten möchte ich genau die Zeile  bekommen, die auch in den Error-Log kommt.

              Also das Stück das mir jetzt fehlt ist: Wie kann ich die Error Meldung an das Script als eine Variable übergeben? Oder sollte ich das aus dem Error-Log auslesen?

              Und dann zum Verständnis noch eine Frage. Wenn ich den Eintrag im http.conf verändere, wird dann trotzdem die Meldung in den Error-Log geschrieben? Und wenn ja, vorher oder nacher?

              Gruß und Danke
              Cruz

              1. Aber ich möchte auch wissen welches script es verursacht hat. Am liebsten möchte ich genau die Zeile  bekommen, die auch in den Error-Log kommt.
                Also das Stück das mir jetzt fehlt ist: Wie kann ich die Error Meldung an das Script als eine Variable übergeben? Oder sollte ich das aus dem Error-Log auslesen?

                Darüber diskutierten wir in einem thread weiter unten ebenfalls. Das Dokument, welches Du lesen solltest, ist http://www.apache.org/docs/custom-error.html.
                Kurz gesagt: Apache liefert alle (?) CGI-Variablen des fehlerhaften Skripts und noch ein paar zusätzliche auch dem Error-Handler, aber in anders benannten CGI-Variablen (mit dem Präfix "REDIRECT_").
                Du kannst also auf alles zugreifen (Skript-Name, URL, Parameter, ...), sogar auf ein Stück Fehlermeldung, das vermutlich so ähnlich im ErrorLog landen wird.
                Die Apache-Doku ist an dieser Stelle nicht vollständig. Laß Dir von Deinem Error-Handler als erstes mal alle CGI-Variablen ausgeben, die er finden kann ...

                Und dann zum Verständnis noch eine Frage. Wenn ich den Eintrag im http.conf verändere, wird dann trotzdem die Meldung in den Error-Log geschrieben? Und wenn ja, vorher oder nachher?

                Erstens ja; zweitens ist schwer zu sagen (vermutlich ja, denn die oben erwähnte Fehlermeldung ist Deinem Handler zugänglich, existiert also schon).
                Aber versuche erst mal, die CGI-Variablen auszulesen, bevor Dein Error-Handler das Logfile analysiert, denn das ist wegen gleichzeitig erfolgender Einträge anderer Prozesse nicht trivial ...