Website-Programmierung

Wie man an so mancher Unzulänglichkeit sehen kann, verwende ich keins der verfügbaren Blog-Pakete (WordPress o.ä.). Statt dessen ist der PHP-Code, der diese Seiten steuert, handgestrickt (Ausnahme: für's Trackback habe ich eine existierende PHP-Klasse - well, anpassen müssen, weil sie mit der aktuellen PHP-Version nicht lief. Das hat mich mehr Zeit gekostet, als z.B. die RSS-Funktionalität von Scratch zu bauen).

Ich bin kein professioneller Web-Programmierer - bei detaillierten Fragen zu PHP habe ich keine Chance -, aber nach zwanzig Jahren C und C++ ist es eine echte Erholung, in einer Sprache zu programmieren, in der man mit wenigen Zeilen Code spektakuläre Sachen machen kann.

Motiviert ist dieses Vorgehen dreifach:

  • Mein Account ist sehr billig, unterstützt aber keine SQL-Datenbank (ursprünglich hatte ich eh nie im Sinn, einen Blog zu schreiben - ich wollte bloß eine altmodische Homepage). Dadurch fällt WordPress eh schon flach.
  • Ich habe wenig Lust, die Bedienung von Programmen zu lernen - umso mehr interessiert mich die Technologie hinter der Software. Die Entscheidung ist deshalb einfach: statt zu lernen, wie man ein Blog in WordPress administriert, macht es Spaß, die Funktionsweise des dahinterliegenden PHP zu verstehen.
  • Die Sicherheitslücken, die in WordPress immer wieder klaffen, kann man leicht in den Griff bekommen, wenn man genau an einer Stelle eine andere Designentscheidung trifft (wobei ich in dieser Frage Diskussionsbedarf anmelde).


Im Einzelnen:

Statt SQL-Datenbank verwende ich - TaDa: das Filesystem des Betriebssystems. Das ist sehr einfach und effizient - ok: effizient bei kleinen Datenbeständen - aber welches Blog ist nicht klein, unabhängig vom Google's Pagerank?. - Jeder Blogeintrag ist ein einzelnes HTML-File. Ein PHP-Script bastelt daraus eine "Seite" im Blog. Ebenso ist jeder Kommentar eine Textdatei in einem Ordner, der ebenso heißt wie die Datei, in dem sich der Blogeintrag findet - all diese Dateien werden von eben jener PHP-Class zu einer "Beitrag-plus-Kommentare"-HTML-Seite verbastelt, die auch die Liste der Beiträge auf den Bildschirm bringt. - Ähnlich simpel gestrickt ist die Fotogalerie: das ist einfach eine Sammlung von Ordnern, in denen die JPEGs abgelegt sind. Ein PHP-Script scannt diese Ordner, und zeigt alle Fotos an, die man da abgelegt hat. -- Der Rest besteht aus ein paar Tricks und Konventionen, Dateien so zu benennnen, daß man sie sortieren kann.

Ganz zu Beginn hatte ich sogar Erfahrungen mit einer WordPress-Installation gesammelt - und mein Soloweg führt u.a. dazu, daß ich nur noch über mich selber meckern kann, weil ich jeden Absturz oder Datenverlust selbst zu verantworten habe - ein befreiendes Gefühl.

Sicherheit: das größte Problem mit WordPress sehe ich darin, daß die Administration auf demselben Server geschieht, der auch den Blog hostet. Don't. Da muß nur irgendeine Lücke sein, die die Passwortabfrage umgeht (und die dürfte es fast immer geben), und der Cracker ist drin - bei einer bestimmten Lücke nicht nur in einem Blog, sondern in ziemlich allen.

Ich habe auf meinem heimischen Rechner eine Appache-Installation, die hinter einem (Hardware-)Firewall steht, und von außen unzugänglich ist. Auf ihr gibt es eine 1-zu-1 Kopie dessen, was auf meiner Website steht (mein Provider müßte meinetwegen keine Backups machen, für meine Daten mache ich die selber). Außerdem - und das ist der kritische Unterschied - mache ich sämtliche Verwaltungsarbeit für meine Site nur lokal, und veröffentliche danach die Resultate. Gut - man kann mir immer noch Kommentare einstellen, die Links enthalten, die meine Seiten kompromittieren. Man kann mir jedoch keine Links auf der eigenen Site unterschieben, die Google dazu bringen, mich - wie das anderen passierte - komplett aus dem Index zu nehmen.

Ich bin gespannt, was von den Crackern und Spammern kommt.