HHVM ist eine virtuelle Maschine für HipTop, welches PHP-Skripte in Maschinencode übersetzt und anschließend ausführt. Die übersetzten Skripte werden gespeichert und bei wiederholtem Aufrufwerden die bereits übersetzte Programm ausgeführt. Dadurch ergibt sich eine extreme Leistungssteigerung gegenüber der bisher üblichen Methode, PHP-Skripte durch mod_php oder PHP per FastCGI immer wieder neu zu analysieren und auszuführen.
[Mehr]Verbessertes Ranking durch HSTS
Nach der Umstellung auf Zertifikate von Let’s Encrypt hat sich das Ranking des Blogs in Bezug auf sichere Transportverschlüsselung gegenüber der vorherigen Konfiguration weiter erhöht. Gründe dafür sind der verwendete Signaturalgorithmus SHA256 für den Zertifikatskey und der Einsatz von HSTS.
HSTS kann in Nginx ganz einfach mit einer einzigen Zeile an entsprechender Stelle aktivieren werden:
add_header Strict-Transport-Security max-age=31536000;
Dadurch wird festgelegt, dass der Browser für den angegebenen Zeitraum (hier 31536000 Sekunden = 365 Tage) ausschließlich verschlüsselte Verbindungen mit dieser Domain nutzt. Da diese Einstellung im Browser des Besuchers gespeichert wird, sollte vor der Aktivierung unbedingt getestet werden, ob auf der Webseite auch wirklich nur Ressourcen eingebunden sind, die per HTTPS abgerufen werden können.
[Mehr]EdgeRouter am Telekom-Internetanschluss mit Entertain und IPv6
Die Telekom stellt bei bei neuen Internetanschlüssen IPv4 und IPv6 im Dualstack-Betrieb bereit. Der Internet-Verkehr läuft komplett über VLAN 7. Entertain, der IPTV-Dienst der Telekom, wird hauptsächlich über VLAN 8 betrieben. Im folgenden Beispiel möchte ich die Konfiguration eines EdgeRouter lite mit IPv4 über PPPOE, IPv6 und IPTV beschreiben.
Meine Konfiguration für die nachfolgenden Beispiele am EdgeRouter:
- EdgeRouter lite Firmware Version 1.7.0
- eth0 … interne Netzwerkschnittstelle (LAN)
- eth1 … externe Netzwerkschnittstelle zum DSL-Modem (WAN)
Gaming zwischendurch
Ab und an mache ich auch etwas ganz anderes, als mein Blog zu befüllen. Ja wirklich. Manchmal bin ich auch hier unterwegs:
Insbesondere mag ich Open-World Spiele sehr. So z.B. haben mir es die zwei aktuellen Titel The Witcher 3: Wild Hunt und Fallout 4 sehr angetan. Aber auch Tomb Raider: Definitive Editon mag ich gern.
Backup der VMs im laufenden Betrieb mit libvirt
Mit libvirt bzw. deren Kommandozeilen-Interface virsh kann ein Backup der VMs im laufenden Betrieb durchgeführt werden. Das nachfolgende Script stellt ein Grundgerüst, angeregt durch einen Artikel von Christian Rößner, für ein Backup nach der folgenden Methode zur Verfügung:
Es wird zuerst ein Snapshot aller Volumes einer VM angelegt. Dadurch besteht jedes Volume aus (mindestens) zwei Dateien: eine Datei mit den originalen Daten und eine zweite Datei, welche alle Änderungen gegenüber dem Originalvolume ab dem Erstellen des Snapshots enthält. Das Originalvolume wird bei aktivem Snapshot nicht mehr beschrieben, es kann nun problemlos gesichert werden. Zum Kopieren kann “cp -f –sparse=always …” oder, sofern verfügbar, “rsync –sparse …” zum Einsatz kommen. Beide Kommandos behandeln freien Platz in den Volumes optimal, rsync ist jedoch um einiges schneller, wenn im Backup-Verzeichnis bereits vom vorherigen Backup schon die gleiche Datei vorhanden ist, da dann nur die Änderungen kopiert werden. Anschließend werden mit einem sogenannten Blockcommit die im Snapshot als Änderungen geschriebene Blöcke in das Originalvolume wieder eingearbeitet. Das alles kann im laufenden Betrieb vom Host der VMs aus durchgeführt werden.
[Mehr]Facebook XMPP wurde Ende April 2015 eingestellt
Ganz an mir vorüber gegangen ist, dass Facebook die XMPP-Unterstützung schon gegen Ende April 2015 eingestellt hat. Ich habe es selten benutzt, jedoch wenn, dann meistens mit Pidgin. Der Chat funktioniert nun nur noch proprietär über deren Webseite oder den eigenen Messenger.
Seitenumbruch in WordPress
Beim Schreiben von längeren Artikeln ist es hilfreich, den Inhalt mit einem Seitenumbruch auf mehrere Seiten aufzuteilen. Das verhindert auf der einen Seite ein endloses Scrollen durch einen langen Text und auf der anderen Seite wird damit auch die Absprungrate gesenkt, da zum Lesen des ganzen Artikels mindestens eine weitere Seite des Artikels angezeigt werden muss.
WordPress beinhaltet dieses Feature bereits. Die Toolbar des WordPress-Editors enhält dazu leider keinen entsprechenden Button, jedoch kann man durch Eingabe von im Textmodus des Editors einen Seitenumbruch einfügen. Im visuellen Modus drückt man dazu die Tastenkombination ++.
[Mehr]Seafile: Offene Ports schließen
Seit Seafile 4.3 können nun auch die bisher nach außen offenen Ports geschlossen werden. Über einen Proxy (z.B. Apache oder Nginx) waren sie schon früher nicht erforderlich, aber leider nicht abstellbar. Folgende Änderungen müssen in den angegebenen Datein durchgeführt werden:
ccnet/ccnet.conf:
[Network]
#PORT = 10001
seafile-data/seafile.conf:
[network]
#port = 12001
Seafile systemd Unit-Files
Unit-Files für systemd für seafile und seahub sind im Seafile-Manual. Für FastCGI muss das Skript für seahub entsprechend angepasst werden. Siehe den dortigen Kommentar
Das Major-Versionsupgrade von 4.2 auf 5.0 welches hier anstand hat mit der Methode “Schritt für Schritt jeden einzelnen Upgradeschritt aus ./update durchführen” problemlos funktioniert.
Mit der Version 5.0 hat sich die Wiki-Syntax für Links geändert. Leider werden bestehende Links nicht immer automatisch konvertiert.
Bash-Scripte gegen gleichzeitiges Ausführen absichern
Oft darf von einem Bash Script nur eine Instanz laufen. Beispiele sind ein Backup oder ein Datei-Transfers, welche bei gleichzeitigem Lauf der selben Scripte evtl. nicht korrekt durchgeführt würden. Mit einfachen bash-Mitteln lässt sich dies jedoch verhindern.
Ganz einfach könnte man auf das Vorhandensein einer Datei testen und sie anlegen, falls sie nicht existiert. Allerdings hätte man sich damit auch eine sogenannte RaceCondition geschaffen, der Vorgang zwischen Test und Anlegen ist nicht atomar. Ein nicht funktionierendes Beispiel:
[Mehr]