HTTP in HTTPS unter Lighttpd umleiten

Ich wollte eine HTTP-Verbindung zu HTTPS umleiten. Die Sache läuft richtig einfach unter Lighttpd im Vergleich zu Apache.
Na gut, eigentlich schenkt es sich nicht viel. Aber zur Zeit bin ich von Lighttpd einfach so überzeugt, dass (fast) alles gut ist :)
Ich bin positiv überrascht und werde mal schauen, wo ich noch überall den Apache ersetzen kann.

Soll nur ein bestimmter Host von HTTP nach HTTPS umgeleitet werden, muss folgendes in die lighttpd.conf eingefügt werden:

1
2
3
4
5
6
$SERVER["socket"] == ":80" {
$HTTP["host"] =~ "domain.tld" {
url.redirect = ( "^/(.*)" => "https://domain.tld/$1" )
server.name                 = "domain.tld"
}
}
1
 
1
2
3
4
5
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/path/to/server.pem"
server.document-root = "..."
}

Sollen alle Hosts von HTTP nach HTTPS umgeleitet werden, geht das mit folgenden Einträgen in der lighttpd.conf:

1
2
3
4
5
$SERVER["socket"] == ":80" {
$HTTP["host"] =~ "(.*)" {
url.redirect = ( "^/(.*)" => "https://%1/$1" )
}
}

Das Modul

1
mod_redirect

muss aktiviert sein.
Wird beim Starten von Lighttpd folgende Meldung ausgegeben:

1
2006-06-29 01:04:11: (server.c.857) WARNING: unknown config-key: url.redirect (ignored)

, ist das Modul

1
mod_redirect

nicht aktiviert.

Gleichzeitiger Betrieb von HTTP und HTTPS unter Lighttpd einrichten

Da ich zur Zeit zum Teil auf meinen Servern auf Lighttpd umsteige, hatte ich das Problem, dass ich nicht wusste, wie ich Lighttpd (je öfter man den Namen schreibt, desto einfacher geht es von der Hand) so konfiguriere, dass ein gleichzeitiger Betrieb von HTTP und HTTPS möglich ist.

Die Lösung ist verdammt einfach. Einfach folgende Zeilen in die lighttpd.conf einfügen und die Sache passt:

1
2
3
4
$SERVER["socket"] == ":443" {
ssl.engine    = "enable"
ssl.pemfile   = "/path/to/certificate.pem"
}

Tja, so einfach kann es doch sein.

Web-Anwendung zur Traffic-Messung für OpenVZ

Ich bin zur Zeit dabei, eine Web-Anwendung, die, in Verbindung mit rrdtool Traffic-Auslastungen für virtuelle Server unter Verwendung von OpenVZ erstellt.
Die Web-Anwendung kam ursprünglich nicht von mir, sondern von einer anderen Person.
Da allerdings die Skripte nicht sehr sauber geschrieben waren (register_globals mussten in PHP aktiviert sein), habe ich mir gedacht, ich mache mich an die Arbeit und verbessere die Software.

Zu sehen sind meine bisherigen Ergebnisse hier.
Ich kann allerdings nicht garantieren, dass alles läuft, wie es soll, da es meine Testumgebung ist, auf der die Software zur Zeit läuft.

Vom Design her soll sich noch ein wenig verändern, auf jeden Fall soll später alles valides XHTML sein.

Näheres wird es voraussichtlich im Laufe dieser Woche geben.

Konqueror und WordPress

Wie ich gerade eben feststellen musste, zeigt mir Konqueror den Rich-Text-Editor von WordPress nicht an.

Das macht die Sache natürlich nicht einfacher, wenn ich etwas bearbeite. Im Mozilla klappt es einwandfrei. Ich werd mich mal auf die Suche nach einer Lösung machen. Vielleicht ist es ja nur ein kleines Einstellungsproblem oder so.

Jerome’s Keywords angepasst

Ich hab heute Jerome’s Keywords installiert und musste mit bedauern feststellen,
dass es nicht möglich ist, die Keywords ohne mod_rewrite zu verwenden.

Jerome’s Keywords ist ein Plugin für WordPress, dass Tags erzeugt. Diese können dann zum Beispiel in einem Keywords-Cosmos angezeigt werden. Mein Keywords-Cosmos ist hier zu finden

Also habe ich das Skript entsprechend angepasst, meine benutzerdefinierten Permalinks zu verwenden.
Diese sind bei mir nach folgendem Schema aufgebaut:

1
/index.php/%year%/%monthnum%/%day%/%postname%/

Die aktualisierte Version von Jerome’s Keywords gibt es hier.
Eine Anleitung, wie es installiert und verwendet wird, ist auf Jerome’s Keywords-Seite zu finden

Umlaute in PHP aus MySQL-Datenbank

Ich bin gerade dabei, einige Dinge von einem Server auf einen anderen Server umzuziehen.
Von der Konfiguration her ist alles gleich, allerdings hatte ich trotzdem Probleme mit den Umlauten meiner alten Website.
Diese sind in einer MySQL-Datenbank in UTF-8 gespeichert.

Nachdem ich die Website auf den neuen Server kopiert hatte, beide laufen unter Gentoo, musste ich feststellen, dass ich Probleme mit den Umlauten habe. Da aber beide Server auf den gleichen Datenbankserver zugreifen, war schnell klar, dass das Problem an anderer Stelle zu suchen ist.

Es hat mich zwar einige Zeit gekostet, aber ich wurde zu guter letzt doch noch fündig.

Gentoo liefert MySQL seit neuestem standardmässig mit dem Zeichensatz UTF-8 aus.
Laut diesem Forumsbeitrag greift PHP aus diesem Grund auf die my.cnf zu, um die Standard-Einstellungen für eine MySQL-Verbindung zu suchen. Ist kein Eintrag für PHP vorhanden, verwendet es latin1.

Tja, und da haben wir auch schon das Problem: Latin1 ist nicht UTF-8.

Folgendes ist die Lösung für dieses Problem:

In die my.cnf einfach folgende Zeilen hinzufügen:

1
2
3
4
5
6
7
8
[php-cli]
default-character-set=utf8

[php-cgi-fcgi]
default-character-set=utf8

[php-apache2handler]
default-character-set=utf8

Zum überprüfen, ob alles richtig läuft, einfach die gesetzten Variablen von MySQL mit SHOW VARIABLES; aus einem PHP-Skript abfragen.

Blog gestartet

So, wie du sehen kannst, habe ich mir jetzt auch ein Blog zugelegt.
Ich halte es für einfacher, hier schnell mal was zu schreiben.

Mal sehen, wie lange ich es schaffe, dieses Blog zu pflegen :)