Ga naar de inhoud

Nieuwe website

De recente consternatie vanwege een lek in PHP zette me aan het denken, en heeft ertoe geleid dat ik mijn website heb aangepast.

Dynamische websites

PHP is een scripting-taal die het mogelijk maakt om dynamische websites te maken. Zo levert de webserver niet alleen de kant-en-klare webpagina af, maar kan die webpagina interacteren met input van de gebruiker. Dit maakt contactformulieren, zoekfunctionaliteiten en online shoppen mogelijk.

Ik bouwde mijn eerste website in het vorige millennium. Toen ik PHP ging er een wereld voor me open. Zo maakte ik bijvoorbeeld:

  • Een website om een avatar te maken voor op een forum waar ik actief was, waar een gebruiker zelf tekst op kon laten zetten en die varieerde afhankelijk van het tijdstip;
  • Een online quiz die mensen konden invullen;
  • Een scrape zodat mijn laatste (toen nog) Tweet of afgespeelde muzieknummer op mijn site kon worden getoond.
  • Een content management system (CMS) zodat mijn buurman zelf de website die ik voor zijn bedrijf had gemaakt kon beheren.

Traag en kwetsbaar

Om de interactiviteit mogelijk te maken, wordt de webpagina bij ieder bezoek opnieuw opgebouwd door de server. Dat kost tijd en rekenkracht. Bij snel veranderende websites is dat prima, maar mijn persoonlijke website wordt maar zeer sporadisch geüpdatet. Of je deze pagina een week geleden bekeek, of over een week, maakt niet uit. Het is dan zonde om PHP iedere keer met een database te laten praten, een pagina te laten samenstellen, en die naar de bezoeker te sturen. De pagina had eigenlijk ook al klaar kunnen staan, dat is veel sneller! (Dit is een probleem dat caching aanpakt, maar het principe blijft hetzelfde.)

Tot voor kort gebruikte ik Wordpress voor deze website. Wordpress is de meest populaire CMS, en maakt gebruik van PHP. Het maakt bloggen mogelijk, met bijvoorbeeld reacties. Tijdens mijn middelbareschooltijd (2003-2009) zaten hier nog wel eens leuke reacties bij van klasgenoten, maar met de opkomst van Facebook verdwenen ook de reacties daarheen. Wat overbleef was spam door bots.
Hierdoor moest ik anti-spam-maatregelen treffen, en zette ik later de reacties maar uit.

Op 13 oktober 2026 bleek dat dat niet genoeg was. Ook mijn website werd gehackt door een groep hackers, die via een lek in Wordpress binnen waren gekomen en extra gebruikers, posts en pagina’s hadden aangemaakt. Er bleken aardig wat updates niet doorgevoerd (dankjewel Strato dat jullie automatische updates een extra betaalde functionaliteit maken…).

Later, op 21 oktober 2026, kwam daar dus de consternatie van een al jaren bestaand PHP-lek bij. Voor deze website had dat gelukkig geen gevolgen; Strato had de php-versie snel geüpdatet. Maar het geeft wel te denken: mijn website heeft vrijwel geen interactieve elementen – heb ik dan zin om hier onderhoud aan te plegen? Het antwoord daarop was nee.

Terug naar statisch

Daarom is deze website nu op een andere manier opgebouwd. Deze pagina’s schrijf ik op mijn eigen computer, in een tekstverwerkingsprogramma van mijn keuze. De pagina’s schrijf ik in Markdown, een kleine uitbreiding van platte tekst, die dus niet voorbehouden is aan het openen in een specifiek programma. Mocht er een ramp gebeuren, dan kan deze tekst nog worden gelezen op een computer uit het museum.

De omzetting van Markdown naar een complete website gebeurt door Hugo, een programma op mijn computer dat uiteindelijk HTML-pagina’s maakt – dezelfde html-pagina’s waarmee in in 1999 begon.
Als thema gebruik ik nuno.

Als het goed is zouden deze pagina’s sneller moeten laden dan ze deden toen ze nog met Wordpress werden gemaakt, maar dat zal ik later testen.

Een ander voordeel is dat Markdown- en andere plattetekstbestanden goed bij te houden zijn in een versiebeheerprogramma zoals git. Dit maakt het mogelijk om verschillende versies bij te houden. Er bestaan ook mogelijkheden om hugo te laten uitvoeren op een server, zodat bij een wijziging in de onderliggende bestanden er een nieuwe versie van de website wordt gebouwd. Dat gebeurt dan eenmalig, zodat het statische karakter behouden blijft. Voordeel is dat wijzigingen worden bijgehouden, en er een single source of truth is voor zowel de website als het archief. Daarover later meer.
Voor nu ga ik verder met het experimenteren met deze website.