Drift/PHP8-migreringa

From Programvareverkstedet

Den 7. september 2023 fikk PVV Drift en mail fra NTNU SOC om at to maskiner, isvegg og spikkjeposche, kjørte litt vel gammel PHP. PHP 7 som de kjørte på det tidspunktet var nå ute av support, og vi burde oppgradere til PHP 8 så snart som mulig.

Vi satt oss fort ned og begynte i gang. Et par ting, som isvegg og webmail var enkelt å migrere over. Men det aller meste var enklere sagt enn gjort. Og det tok en god stund å få ting migrert over.

Gjenoppretting av pakker på spikkjeposche

Da vi prøvde å oppdatere PHP på spikkjeposche samme dag, endte vi opp med å ødelegge hele nettsida og mer til. Etter mye om og men fikk vi tilslutt gjenoppretta de gamle PHP 7 pakkene, ved å slette alle de nye pakkene og skrive et lite skript som re-installerte en lang liste med pakker fra pakke-cachen i loop. Grunnen til at den måtte gå i en loop var at vi ikke hadde noen god måte å løse pakke-avhengighetsgrafen på. Så når man prøvde å installere en pakke som avhengte av noe annet, så ville den feile. Etter å ha spunnet et par iterasjoner, så det ut som det meste var tilbake til normalen.

Nixifisering, påsken 2024

I påsken 2024 hadde oysteikt litt ekstra tid og krefter, og hadde egentlig fått nok av at vi satt og kjørte PHP 7 i et halvt år etter første beskjed om å oppgradere. Han brukte en del netter på å omskrive SAML oppsettet vårt og Mediawiki hosting over til NixOS moduler, som så skulle kjøre på bekkalokk. Deretter ble et godt samarbeid om å få sett gjennom koden, flyttet over nettsiden, og fullføre migreringsarbeidet til en tilstand som var akseptabel. Her finner du en del innflettningsforespørsler som inngikk i dugnaden:


Utfall

Migreringa førte blant annet til at spikkjeposche ble utfaset, og alle tjenestene den kjørte ble flytta til bekkalokk. I tillegg har det vært en del problemer med nettsiden i ettertid, da det fortsatt hang (henger?) igjen en del kode som ikke er migrert skikkelig. Se blant annet:

Vi mistet også et par av webmailene vi pleide å hoste. Squirrelmail, Afterlogic og Rainloop gikk på hovvet ut. Vi fikk derimot en ny webmail, Snappymail.