Unser News Script hatte sich gegen die Installation durch einen Kunden gesträubt und ließ sich erst durch unseren Eingriff zur Arbeit überreden. Der Kunde schrieb dann:
Vielleicht ist es ja Absicht, aber auf jeden Fall ist es merkwürdig und auf keinen Fall ist es etwas, was man erwarten würde. Folgende Konstellation: Eine Kundin betreibt seit einiger Zeit Webpräsenz ABC-BEISPIEL.de. Der DOCUMENT_ROOT dafür lautet in etwa wie folgt:
/home/strato/www/a/www.abc-beispiel.de/htdocs
So weit so unspektakulär. Nun hat die Kundin eine weitere Domain (XYZ-BEISPIEL.de) hinzugefügt und auf ein Unterverzeichnis (/xyz-beispiel/) von Domain ABC-BEISPIEL.de geschaltet. Der DOCUMENT_ROOT dafür müsste eigentlich wie folgt aussehen:
Tatsächlich wird der DOCUMENT_ROOT jedoch wie folgt angezeigt:
/home/strato/www/x/www.xyz-beispiel.de/htdocs
Damit könnte man ja noch leben, wenn der Pfad auf das oben beschriebene Unterverzeichnis linken würde. Tut er aber nicht. Stattdessen zeigt der Pfad auf das selbe Verzeichnis wie:
/home/strato/www/a/www.abc-beispiel.de/htdocs
Es scheint, als würde Strato als Wert für den DOCUMENT_ROOT immer den Pfad zum Hauptverzeichnis des Webspace-Accounts eintragen, unabhängig davon, auf welches (Unter-)Verzeichnis die Domain wirklich geschaltet ist. Damit ist die Umgebungsvariable DOCUMENT_ROOT praktisch nicht mehr zu gebrauchen. Man muss sich also den korrekten Pfad selbst zusammenbasteln.
Dabei spielt keine Rolle, welchen Pfad man benutzt. Es funktionieren
Ein kurzer Tipp für alle, die E-Mails per Script versenden und neben der E-Mail-Adresse auch den Namen mit aufführen wollen. Eine falsche Formatierung des Absenders oder des Empfängers einer E-Mail kann zum Verlust derselben führen (und hat in der Vergangenheit auch schon dazu geführt). Besonders wichtig ist die korrekte Formatierung, wenn Werte aus einem Formular verwendet werden sollen. Sonderzeichen und Umlaute machen sonst Probleme.
"Vorname Nachname" <vorname.nachname@example.com>
Der Teil mit dem Namen gehört von Anführungsstrichen umschlossen und die E-Mail-Adresse gehört in spitze Klammern.
Was macht man, wenn ein Script offensichtlich nicht installiert wurde und trotzdem funktioniert? Einen Exorzisten rufen?
Eine Kundin ließ uns wissen, dass das Captcha-Bild in ihrem Kommentar-Script nicht angezeigt wurde. Viele Möglichkeiten gibt es da nicht; das wird einfach, dachten wir uns.
Beim Aufruf der Seite wurde zwar das Kommentarformular und auch die Smiley-Bilder korrekt angezeigt, das Captcha-Bild jedoch nicht. Alles, wie von der Kundin geschildert. Meistens liegt das Problem an falschen Verzeichnisrechten oder der fehlenden Font-Datei, aber das Verzeichnis war schreibbar und auch die Font-Datei war vorhanden.
Warfen wir also einen Blick auf den Admin-Bereich. Da erwartete uns allerdings das Installationsformular (MySQL-Daten etc.), ein Zeichen dafür, dass das Script noch gar nicht installiert ist. Ebenso fehlte die dbconfig.php mit den MySQL-Zugangsdaten.
Das Script war offensichtlich noch nicht installiert und trotzdem wurde das Kommentarformular angezeigt. Wie konnte das sein? Nach einigem Probieren und Suchen fiel der Blick auf die Datei include.php, welche während der Installation des Comment Scripts automatisch erstellt wird. Die Datei enthält die absoluten Server-Pfad zum Script und bindet das Script in jede beliebige Seite ein. Die Frage war: wo kommt die Datei her, wenn das Script noch gar nicht installiert ist?
Nach dem Vergleichen des Pfades in der include.php mit dem tatsächlichen Server-Pfad lichtete sich der Nebel. Die Erklärung war dann auch relativ einfach und wenig mystisch. Die Kundin hatte Script unter Domain A installiert und zum Laufen gebracht. Später hat sie dann alle Script-Dateien in das Verzeichnis für Domain B auf demselben Server kopiert. Inklusive der include.php. Die enthielt jedoch den Server-Pfad zum Script auf Domain A. Damit wurde das funktionierende Script von Domain A bei Domain B eingebunden. Wäre das Captcha-Bild nicht gewesen, hätte das sogar funktioniert.
Das Rätsel ist also gelöst. Wie man sieht, benötigt es nicht besonders viel, um sich selbst zu überlisten.
This script is so robust! I've been using it for a while now [...] and the thing somehow filters all the spammers out and leaves good comments in. Although at first I didn't really pay attention but now that I think of it I am really really impressed. Both front end and back end are easy to use and make sense. I thought it would be a good idea to share my opinion with you and encourage more great applications like this!
Double Opt-in kennt jeder. Zur Bestätigung, dass die angegebene E-Mail-Adresse korrekt ist und tatsächlich existiert, muss man auf E-Mails antworten oder auf Links klicken. Einige Anbieter machen es, um einen "sauberen" Bestand an E-Mail-Adressen in der Datenbank zu haben, für andere ist es rechtlich relevant, wie zum Beispiel für Newsletter-Versender in Deutschland.
Double Opt-in wird aber auch zur Spam-Abwehr genutzt. Schreibt man jemandem eine ganz normale E-Mail, kann es passieren, dass man auf eine automatisch generierte E-Mail antworten oder einen Link in einer E-Mail anklicken muss. Andernfalls wird die eigene E-Mail gar nicht zugestellt. Es gibt dafür Anwendungen, die man sich auf dem eigenen Server installieren kann oder man nutzt einen entsprechenden Anbieter, der gegen Gebühr einen solchen Dienst anbietet.
Ob das jedoch wirklich eine gute Idee ist, scheint fraglich. Was ist, wenn diese automatisch generierte E-Mail auf der Strecke bleibt, weil sie im Spam-Ordner verschwindet oder weil man Sie schlicht übersieht oder nicht für wichtig hält und löscht? Der angefragten Firma könnte so ein Auftrag verloren gehen.
Wir kontaktierten kürzlich Moxiecode, den Hersteller von TinyMCE, einem WYSIWYG-Editor für Web-Anwendungen. Es ging um das kommerzielle Plugin MCImageManager und die Lizenzierung desselben für die Auslieferung zusammen mit unserem News Script.
Auf unsere Anfrage hin erhielten wir eine automatisch generierte E-Mail, die uns um Bestätigung bat. Durch den nicht gerade wenigen E-Mail-Verkehr mit unseren Script-Kunden haben wir häufiger mit dieser Art von E-Mail-Bestätigung zu tun. Andernfalls hätte die E-Mail zwischen all den Spam-E-Mails glatt übersehen werden können. Der Betreff sagt zwar eigentlich deutlich "Please confirm", aber Spammer schreiben alles mögliche in den Betreff hinein. Hätten wir also unsere E-Mail-Adresse nicht bestätigt, hätten wir auch niemals eine Antwort von Moxiecode bekommen.
Ist das nun im Sinne des Erfinders? Kann es ein Unternehmen tatsächlich riskieren, auf diese Art potentielle Kunden zu verlieren? Dass die beschriebene Methode der E-Mail-Address-Bestätigung zu 100% funktioniert, können nur wahre Optimisten glauben. Und so schlimm ist das mit dem Spam nun auch wieder nicht, dass man den Kunden noch über extra Hürden springen lassen muss. Es gibt genug andere Hilfsmittel, um die Spam-Flut einzudämmen.
Viele Entwickler, aber auch Designer und andere Mitglieder von Software- und Web-Projekten kommen mit Versionskontrollsystemen in Berührung. Am bekanntesten sind vermutlich CVS und Subversion (SVN). Letzteres ist sicherlich auch wegen des Windows-Clients TortoiseSVN recht erfolgreich.
Während CVS und SVN einen zentralen Server für das Projektarchiv verlangen, gibt es im Gegensatz dazu verteilte Systeme wie Monotone. Dieses wurde unter anderem von Linus Torvalds für die Entwicklung des Linux-Kernels in Betracht gezogen. Torvalds entschied sich jedoch, eine komplett neues System zu schreiben. So entstand Git. Git wird mittlerweile von einer Reihe bekannter Projekte wie besagtem Linux-Kernel, Samba, X.org, One Laptop per Child, Ruby on Rails, VLC, Wine und der Mobil-Plattform Android verwendet.
Der wichtigste Unterschied zu zentralen Systemen ist, dass mit Git jeder Entwickler sein eigenes Repository inklusive der gesamten Versions-Historie betreibt und Änderungen von einem Repository in ein anderes kopiert werden. Diese Änderungen werden als weiterer Entwicklungszweig importiert und können auf dieselbe Weise wie ein lokaler Entwicklungszweig verschmolzen werden.
Dieses Erstellen und Verschmelzen von Entwicklungszweigen hat das Ziel, besonders einfach, effizient und auf Zeit zu getrimmt sein. Eine Grundannahme ist, dass Änderungen häufiger mit dem aktuellen Entwicklungszweig verschmolzen werden, anstatt wie bisher nur geschrieben zu werden. In dieser Hinsicht ist eine Optimierung der Handhabung von Entwicklungszweigen natürlich von Vorteil.
Für weitere Infos über die Vorteile und Funktionsweise von Git bietet sich folgender Vortrag von Linus Torvalds vor Google-Mitarbeitern an.
Wer tiefer in die Materie eintauchen und direkt mit dem Arbeiten mit Git beginnen möchte, dem sei folgender Vortrag von Randal Schwartz, ebenfalls vor Google-Mitarbeitern, empfohlen.
Trotz der Vorteile wird es vermutlich noch eine Weile dauern, bis Git von einer breiteren Masse genutzt wird, denn viele Entwickler arbeiten unter Windows. Zwar gibt es eine Version für Windows, nur gibt es bisher keine wirklich guten Anwendungsoberflächen (GUI) dafür. Von der Kommandozeile mal abgesehen. Die mit Git on MSys mitgelieferte GUI hing sich bei unserem Test auf und TortoiseGit, eine Portierung von TortoiseSVN auf Git, steckt noch sehr in den Kinderschuhen.
Wenn es Leser gibt, die bereits Erfahrungen mit Git haben, würden wir uns über einen Kommentar freuen.
Eine sehr löbliche und beruhigende Entwicklung zeigt sich beim Webspace-Provider Host Europe.
Zitat:
Wir haben heute eine neue Sicherheitsfunktion in Betrieb genommen, die zukünftig dabei helfen kann, eine unbeabsichtigte Löschung von Domainnamen, die unterhalb bestimmter TLDs registriert wurden, zu vermeiden.
Ab sofort wird eine zu löschende Domain der folgenden TLDs
.de
.com
.net
.org
.biz
.info
mit Erreichen des Kündigungstermins in einen internen Wartestatus versetzt. Die Domain wird zum Kündigungstermin zunächst aus der Übersicht Ihres Accounts entfernt sowie dekonnektiert, und ist nicht mehr im Internet erreichbar, verbleibt aber vorerst in der Verwaltung von Host Europe.
Die endgültige Löschung beim zuständigen NIC wird erst nach einer ca. 30-tägigen Sicherheitsfrist ausgeführt. Während dieser Frist ist eine Wiederherstellung der Domain im ursprünglichen Account ohne weiteres möglich, so dass im Falle einer unbeabsichtigten Kündigung keine Gefahr besteht, dass die Domain gelöscht und von Dritten neu registriert wird.
Dies ist eine Vorgehensweise, die sich alle Webhoster zulegen sollten, sofern sie es nicht schon längst getan haben
Parallels hat sich mit Plesk 9 zurückgemeldet. Es gibt eine neue Wiederverkäufer-Ebene (Resellers Level) und eine integrierte Rechnungslegung (Billing solution). Außerdem wurde die Backup-Funktion verbessert und Postfix Mail-Server verfügbar.
Groß und breit wurde auch PHP over Fast CGI angekündigt; die Ausführung lässt aber zu wünschen übrig. Zwar kann man bequem per Plesk-Oberfläche den gewünschten Modus auswählen, nach dem Umschalten auf Fast CGI zeigte phpinfo() jedoch folgendes:
PHP Version 4.4.0
Und das, obwohl auf der Maschine bereits PHP 5 installiert ist und der Host vorher damit lief. Abhilfe schafft vermutlich, das in der Datei /conf/httpd.include konfigurierte Verzeichnis von php auf php5 zu ändern.
Ansonsten hat sich noch die Bedienungsoberfläche geändert. Die Standardoberfläche heißt "Vista" und kommt mit neuen Icons daher. Die sind gewöhnungsbedürftig, jedoch lässt sich die gewohnte Oberfläche wiederherstellen. Verschwunden ist allerdings der Menüpunkt "Server". Die bisher darin enthaltenen Funktionen wurden auf andere Menüs aufgeteilt. Also ist Suchen ist angesagt. So befindet sich die Verknüpfung zum Updater auf der Homepage im Bereich Hilfe & Support.
Fazit: Plesk ersetzt immer noch nicht den Server-Admin, der per Kommandozeile Software aktualisieren und konfigurieren kann.
Frage: Was haben guter Support und der Weihnachtsmann gemeinsam?
Antwort: Irgendwann glaubt man nicht mehr dran und oft bekommt man nicht, was man sich eigentlich gewünscht hat. Und das, obwohl man das ganze Jahr über brav war.
Gestern tauchte eine von Alexa.com erstellte Liste mit 1 Million Websites auf. Wir haben die Liste mal auseinander genommen und ein paar Statistiken erstellt. Alle Listen können als Zip-Archiv heruntergeladen werden (Link am Ende des Artikels).
Insgesamt kommen 253 Top Level Domains vor, inklusive aller existierenden generischen und gesponserten TLDs. Außerdem sind 4.568 IP-Adressen in der Liste enthalten.
Top 10 international
Zwar steht Yahoo an der Spitze, wenn man jedoch alle TLDs zusammenzählte, stünde Google ganz oben.
Alexa-Rank
Domain
1
yahoo.com
2
google.com
3
youtube.com
4
live.com
5
facebook.com
6
msn.com
7
myspace.com
8
wikipedia.org
9
blogger.com
10
yahoo.co.jp
Top 10 Deutschland
Insgesamt sind 54.222 .de-Domains in der Liste enthalten.
Alexa-Rank
Domain
12
google.de
63
ebay.de
127
amazon.de
182
web.de
262
wer-kennt-wen.de
302
bild.de
314
spiegel.de
350
t-online.de
415
mobile.de
423
1und1.de
Gesamte Liste deutscher Domains (de.txt - rund 1,2 MB)
Top 10 TLDs gesamt
Wie erwartet ist .com die meistgenutzte TLD. Erfreulich, .de folgt an dritter Stelle.