Archive for the ‘Linux’ Category
Erstaunlich langsam beim Kopieren einer Datei auf ein NFS-Share
Heute mal etwas skurriles. Eigentlich eine Alltagsaufgabe, die man mit einem 2-Zeiler lösen kann, aber ich bin doch erstaunt über das Problem und die Lösung. Es geht darum, eine Datei auf einem NFS-Share abzulegen, das vorher per PUT zum Webserver hochgeladen wurde. Wahrscheinlich hat man das selbe Problem auch wenn die Datei per POST-Formular hochgeladen wurde.
Folgender Aufruf lädt eine Datei via PUT auf einen Webserver:
curl -T 100mb.test http://localhost/put.php
Mein einfaches Testscript, das die Datei auf das NFS-Share legen soll, sieht so aus:
HSTS – HTTP Strict Transport Security: Hast’s schon?
HSTS steht für HTTP Strict Transport Security und ist ein HTTP-Header, den Webseiten nutzen sollten die per HTTPS erreichbar sind.
Wenn ein Benutzer in seinen Browser „webseite.de“ eintippt wird der Browser zuerst versuchen die Webseite unverschlüsselt per HTTP zu erreichen. Genau das ist aber ein Schwachpunkt wenn man sich in einem unsicheren Netzwerk aufhält oder befürchtet, dass irgendwo auf dem Weg zum Zielserver jemand den Request abfangen und verändern könnte (Hallo NSA!), dann sollte man vermeiden eine Webseite unverschlüsselt per HTTP aufzurufen die auch per HTTPS erreichbar ist. Dazu gibt es beispielsweise das Firefox-Addon HTTPS Everywhere, in dem eine Liste eingebaut ist mit Domains, die besser verschlüsselt angesurft werden sollten. Wer nicht auf dieser Liste enthalten ist oder auch Besuchern, die dieses Firefox-Addon nicht installiert haben, mehr Sicherheit bieten möchte, nutzt HSTS.
Fast niemand tippt bei einer Seite, die per HTTPS erreichbar ist, immer brav manuell „https://webseite.de“ ein, die meisten schreiben einfach „webseite.de“ und werden dann vom Webserver automatisch auf die HTTPS-Variante weitergeleitet.
Bei jeder eingehenden E-Mail ein PHP Script ausführen
Nach einer kleinen Weihnachtspause gibts heute einen kleinen Trick, um bei jeder eingehenden E-Mail ein PHP-Script aufzurufen. In diesem Script kann man beispielsweise die E-Mail verändern, parsen und Informationen auslesen, den Inhalt in eine Datenbank packen oder andere nette Sachen, die man mit E-Mails machen kann.
Die Methode die ich normalerweise dafür nutze ist ein kleines Cronjob-Script, das periodisch auf dem IMAP-Server nachschaut ob eine neue E-Mail da ist, und dann wird der Inhalt der E-Mail abgeholt.
Postfix anpassen
Heute möchte ich eine Alternative vorstellen, die in Echtzeit die E-Mail empfängt und sie vor der Ablage im Postfach sogar noch verändern kann. Es gibt allerdings einen großen Nachteil: Man muss Zugang zum Mailserver haben, sprich per SSH auf den Server können und die Konfiguration von Postfix ändern können. Aber der Reihe nach.
Zuerst benötigen wir einen neuen Transport in Postfix, der ein Shellscript aufruft. Dazu muss die folgende Zeile in die master.cf eingefügt werden (Ordner: /etc/postfix):
DNS Dienste für lokale Umgebungen
Lokal habe ich einen Webserver laufen für kleinere Projekte und Tests. Wenn ich nun ein neues Projekt starte muss ich 2 Dinge machen: einen neuen VHost im Webserver anlegen, und in der hosts-Datei einen neuen Eintrag hinzufügen. Ich möchte hier speziell über das Problem der hosts-Datei schreiben.
Wenn ich nun beispielsweise die Domain project1.localhost nutzen möchte für mein neues Projekt, muss ich zusehen dass diese Domain auf meinen lokalen Rechner zeigt. Dazu öffne ich die hosts-Datei (Windows: C:\Windows\System32\drivers\etc oder Linux: /etc/hosts) und füge eine Zeile hinzu:
Ressourcen (Videos, Slides, Audio) von PHP Vorträgen: PHP-Talks
Des öfteren war ich in den letzten Monaten auf der Suche nach aufgezeichneten Videos und Slides von Konferenzen. Mir blieb nichts anderes übrig als die üblichen Quellen abzuklappern und zu hoffen etwas zu finden:
- YouTube und andere Video-Portale wie vimeo.com oder blip.tv für Videomitschnitte
- Slideshare, Speakerdeck für Präsentationen
- joind.in für Sessionlists, Feedback und verlinkte Präsentationen
- SoundCloud
- Die jeweiligen Konferenzwebseiten
Wie wäre es einen Sammelpunkt zu haben für all diese Quellen? Eine Aggregator-Webseite auf der man sich stundenlang austoben kann und konferenzübergreifend Ressourcen finden kann? Mit einer Suche direkt alle Präsentationen und Videos zu finden zu Themen wie beispielsweise „Symfony“, „Phing“, „CouchDB“ oder „PHPUnit“.
Darf ich vorstellen: http://www.php-talks.com