E-Mail bei PHP Fehlern auf Livesystemen

Leider treten auch bei gut getesteten Webanwendungen immer wieder irgendwelche Laufzeit-Fehler auf. Üblicherweise sollte man diese Fehler nicht dem Benutzer der Anwendung anzeigen. Der Benutzer könnte aus den Fehlern möglicherweise Rückschlüsse über den Aufbau der Anwendung ziehen und dadurch potentielle Sicherheitslücken erkennen und ausnutzen. Die einfachste Variante das zu verhindern ist wohl das PHP Error Log erst einmal komplett mit display_errors = Off auszuschalten.

Ein erster Schritt ist damit getan, aber damit sieht nicht nur der Endanwender die Fehler nicht, sondern auch der Entwickler der diese – hoffentlich gerne – beheben würden (so die Zeit es denn zulässt…). Nungut, dafür gibt einem PHP schon mal die Möglichkeit mit log_errors = On mitzuschreiben. Mit error_log = /tmp/phperrors_apache.log kann die Datei ausgewählt werden. Man sollte dabei je nach Webserver-Konfiguration auch darauf achten, dass der PHP-User (meistens der User der den Webserver auch ausführt) die Datei auch schreiben kann. Der Einfachheit halber habe ich dafür /tmp gewählt, das klappt in jedem Fall.
Um die Fehler aber nicht nur mit zu schreiben, sondern auch regelmäßig per E-Mail zugestellt zu bekommen, nutze ich ein kleines E-Mail Skript von James Caws. Das Skript habe ich leicht modifiziert, sodass ich die Logdatei und das Subject als Parameter beim Aufruf mit angeben kann. Für einfache Setups ist das aber nicht nötig. Hat man die Konfiguration oben im Skript angepasst, kann man einen Eintrag in seiner Crontab vornehmen die das Skript z.B. minütlich ausführt.
Der Eintrag kann dann beispielsweise so aussehen:
* * * * * php /root/error_log_sender.php.

Schon bald dürften dann die ersten E-Mails ankommen :-) .

PS: Bei sehr vielen E-Mails empfiehlt es sich ein gemeinsames IMAP-Postfach für alle Entwickler zu erstellen. Möglicherweise auch auf einem separaten E-Mail Server ohne irgendwelche aufwendigen Filterungen, damit die E-Mails auch schnell ankommen.

E-Mail bei anstehenden Debian/Ubuntu-Updates gefällig?

apticron sendet einem automatisch eine E-Mail zu, sobald Aktualisierungen anstehen. DIe Installation ist denkbar einfach, einfach apticron über apt-get install apticron installieren.

Als Standard-Empfänger ist root ausgewählt. Um sich die E-Mail weiterleiten zu lassen, kann man in /root/.forward mit dem Texteditor seiner Wahl die eigene E-Mail Adresse eintragen. Der Server wird dann bestmöglich versuchen die E-Mail zuzustellen. Ob vom Server aus das E-Mail senden klappt, kann man mit einem Einzeiler überprüfen: echo “test” | mail -s “test” [email adresse]. Wenn das nicht klappt, sollte man mal seine Systemkonfiguration überprüfen.

Die E-Mails von apticron enthalten außerdem einen Hinweis darauf, wie wichtig die Aktualisierung wohl ist. Für Serveradministratoren ist dieses Tool also überaus praktisch!

Gefunden habe ich apticron übrigens über das Wiki von Thomas Krenn.

Mac-Festplatte voll? GrandPerspective schafft wieder Überblick!

Klar, irgendwann ist jede Platte einmal voll und dann wird man wohl oder übel zum Aufräumen genötigt.
Damit das Aufräumen möglichst schnell von der Hand geht, schafft GrandPerspective von Erwin Bonsma einen guten Überblick über den kompletten Inhalt von Verzeichnissen der nebenbei auch noch nett visualisiert ist. So sieht man gut wofür viel Speicherplatz benötigt wird und wo es sich evtl. lohnt die Daten auf eine andere Festplatte zu schieben.

Ran out of storage space?
How does it feel to run out of nothing?
Where do you go when you run out?
Get the grand perspective,
narrow the field of vision,
and retain a sense of control.

GrandPerspective ist freie Software und ist unter der GPL lizenziert. Download unter SourceForge.net – Grandperspective

Virtuelle Server bei Hetzner

Wie ServerManiac berichtete, arbeitet die Hetzner Online AG zur Zeit an einer Plattform für virtuelle Server mit Linux oder Windows. Aktuell findet wohl eine Testphase statt, in der man durch eine E-Mail an vserver@hetzner.de einen Server testen kann.

Aus Interesse habe ich mal einen Server angefordert. Der Server läuft 30 Tage und hat folgende Ausstattung:

Single Core CPU
1 GB RAM
20 GB HDD

Der Server wurde innerhalb von wenigen Minuten durch den Support freigeschaltet.  Bei der Bereitstellung kann zwischen diesen Systemen gewählt werden:

32-Bit: Debian 5.0 min, openSuSE 11.2 min, Ubuntu 10.04 min, CentOS 5.5 min
64-Bit: Debian 5.0 min/LAMP*, openSuSE 11.2 min, Ubuntu 10.04 min, CentOS 5.5 min

Windows Server 2008 R2 Web Edition
Windows Server 2008 R2 Standard Edition

Außerdem gibt es ein Rescue-System das über eine Anfrage an den Support aktiviert werden kann.

Nun aber zu den interessanteren Fakten:
Continue reading