WordPress – Drifte selv?

Da jeg bestemte meg for å begynne å blogge om mine eventyr i IT-verdenen spurte jeg meg selv naturligvis om jeg skulle hoste og drifte selve bloggen selv, eller gjøre dette hos en 3.part. Grunnen til at det ble vurdert å gjøre dette hos en annen tilbyder enn meg selv, er naturligvis min iboende frykt for at alle systemene mine plutselig skal havarere, og alt av innlegg og hardt arbeid skal gå tapt for alltid.

Joda, jeg har naturligvis hørt om backup, og det blir (utrolig nok) tatt sporadiske backuper av alt som igjen blir lastet opp på en ubegrenset konto hos norske Jottacloud for bevaring, men dette blir bare gjort når jeg er i humør til det – altså svært skjeldent. Kanskje en automatisering av backupprosessen er noe jeg kan utforske på et tidspunkt..?

Som du kanskje har skjønt gikk jeg for alternativ A, nemlig å hoste alt selv. Absolutt alt. Domenet hadde jeg fra før, registrert en sen kveld etter noen halvlitere fordi jeg tilfeldigvis så at det var ledig og tenkte jeg kanskje kunne bruke det til noe en gang.

Infrastrukturen for å drifte denne bloggen selv har vært på plass i flere år, men det å kjøre i gang nye WordPress-områder er ikke noe jeg gjør så ofte så det bød naturligvis på irriterende, men forholdsvis enkle hindre jeg måtte overkomme.

Først var det det opplagte problemet – hvilken server skal jeg kjøre dette på? Jeg gikk for en webserver som allerede kjørte, en Ubuntu-server som har tjent meg trofast som host for en del andre prosjekter i flere år. Denne er virtualisert, og kjører på vmware ESXi 7.0, som igjen kjører på en Dell PowerEdge R720 jeg kjøpte tidligere i år som erstatning for mine to seige, men definitivt utdaterte PE2950. Denne Ubuntu-webserveren er utstyrt med Apache, og til administrering har jeg valgt Webmin og Virtualmin. Jada, jeg vet dette er juks, og jeg redigerer konfigurasjonsfilene manuelt fra tid til annen, men herregud så mye greiere det er å gjøre ting gjennom et enkelt web-grensesnitt.

DNS-oppføringene etter retting av IP

Når server var valgt, bloggplattform bestemt og en ny virtuell host opprettet på webserveren var det tid for å konsentrere seg om DNS. Jeg har lenge hostet egne navneservere for alle domenene mine, ikke fordi det er nødvendig, men fordi det er mulig. DNS-oppføringene var allerede på plass i BIND på en annen Ubuntu-server som brukes som navnetjener, men her støtte jeg på det første problemet. Jeg har flyttet et par ganger, og da har jeg også flyttet servere med meg. Dette har igjen (dessverre) ført til at min eksterne IP har blitt endret, og dette har jeg ikke fikset på alle DNS-oppføringene da det stort sett har påvirket domener som ikke har vært i bruk. Jeg prøvde å gå til driftssjefen.no i nettleseren min, fra flere pcer på mitt interne nettverk og fra mobilen min på 4G. Ikke faen. Det lastet i evigheter før det timet ut, og undertegnede kjente frustrasjonen boble og vurderte fort å drite i hele bloggen. Etter å ha roet meg ned med en liten kopp kaffe begynte jeg likevel å lete etter problemet. Jeg sjekket DNS-oppføringene på domenekontrollerne som betjener alt på det interne nettet, her fant jeg ingen feil. Jeg logget inn på kundesidene hos leverandøren min og sjekket sonefilene (bruker disse som slaveservere til mine DNS-servere da jeg kun har en ekstern IP), og så noe rart. En IP jeg ikke hadde sett på flere år lyste mot meg. Ikke så rart at driftssjefen.no ikke var tilgjengelig når oppføringene pekte til en IP jeg ikke hadde hatt på evigheter. Etter å ha innsett dette logget jeg meg inn på BIND-serveren min og endret oppføringene slik at de pekte til den riktige IP-en, og sjekket deretter at slaveserverne ble oppdaterte med den korrekte sonefilen – og pang! index.html-filen med de enkle ordene «Men det er da vel klart det virker!» jeg hadde lagt i rotmappen til den virtuelle hosten jeg opprettet tidligere lyste mot meg i all sin prakt.

Jeg visste nå at ting fungerte sånn halvveis, og jeg var klar til å gå videre. Neste skritt var naturligvis å laste opp WordPress til serveren, og dette ble gjort med mitt favorittprogram til dette; Bitvise. Dette gikk utrolig nok helt smertefritt for seg, og etter noen få sekunder var hele sulamitten lastet opp og klar for neste steg. Trodde jeg.

IIS ARR som proxyserver

Da jeg prøvde å gå til driftssjefen.no for å kjøre resten av installasjonen så veiviseren mer ut som en offentlig nettside fra slutten av 90-tallet. Kun ren tekst, og jeg innså raskt at det var noe her som absolutt ikke stemte. Ingen CSS så ut til å bli lastet inn, og dette førte igjen til at alt så forholdsvis jævlig ut, og heller ikke fungerte som det skulle. En viktig opplysning er at alle tjenester jeg hoster leveres fra en enkelt IP. Dette er i utgangspunktet ikke noe problem, men siden jeg vil levere alt over TLS/SSL kreves det litt funky bruk av proxyservere. Dette hadde jeg allerede satt opp for lenge siden, og alle de andre tjenestene mine fungerte utmerket gjennom proxyen, men WordPress nektet. Da jeg rasende nok en gang vurderte å hive hele bloggen på skraphaugen, kom jeg på at akkurat dette problemet hadde jeg hatt minst en gang tidligere når jeg satt opp en WordPress-installasjon for min bror. Fortsatt rimelig frustrert, men med nytt håp for snarlig løsning gjorde jeg det jeg alltid gjør når jeg står litt fast – jeg googlet som om det ikke fantes noen morgendag. Jeg fant til slutt et blogginnlegg som ga en løsning jeg hadde tro på, og jeg prøvde denne. Men nei, absolutt ingen effekt. Enda en kopp kaffe ble skjenket, og jeg fikk summet meg litt. Da kom jeg på at jeg tidvis har vært ganske flink til å skrive ned løsninger på småproblemer som dette i en etter hvert ganske så omfangsrik Onenote-blokk. Jeg scrollet raskt gjennom den, og plutselig var den der – løsningen jeg hadde lett etter. Siden webserverne mine kun kommuniserer ukryptert med proxyserverne internt i mitt nettverk, forstår ikke WordPress noe når det ut av proxyen er https som er i bruk, og ikke http. Det eneste som trengtes var en liten oppføring i wp-conf.php, og siden fungerte.

De 4 linjene som skulle til i wp-config-php
// tving SSL i WordPress bak SSL-proxy
$_SERVER['HTTPS']='on';

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS']='on';

Etter at dette var gjort, gjensto bare å velge et tema som kunne gjøre nytten for en liten stund, skrive noen innlegg, og tilpasse sidene litt. Det måtte også legges inn noen rewrite-regler i proxyen før alt var helt stabilt.

Dette har vært en alt for lang, men likevel svært forkortet oppsummering av prosessen fra jeg bestemte meg for å starte med bloggen, og frem til en slags alfa-utgave var på plass. Mye er ikke med, men dette blir dekket i senere innlegg. Kommenter gjerne om du har hatt lignende utfordringer, tips til andre fremgangsmåter og generelle innspill.

Skribent: SnurreSprett

29 år gammel elektriker som har en lidenskap for serverdrift, nettverk, IoT, dingser, smarthus og alt mulig annet nerdeopplegg.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *