Artikel top billede

(Foto: Computerworld)

Installer en webserver

Du kan sagtens selv køre en webserver, siger Graham Morrison og Torben Okholm.

Af Torben Okholm, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Det kan være fristende at betale et firma for at hoste ens website. Der er som regel en peg og klik-installation til eventuelle ekstra tjenester, man har brug for, plus billige månedlige regninger, der omfatter lager og vedligeholdelse, og der er ofte tilmed rigelig båndbredde. Men det er ikke særlig sjovt, og hvis du vil tilføje avancerede funktioner – såsom shell-adgang til din server eller en ikkedelt host – begynder udgift-erne at eskalere.

Du har serven

Løsningen på alle disse problemer er, at man kører sin egen server, og det er ikke så svært eller usikkert, som man måske skulle tro. Med den seneste udgave af Ubuntu kan man for eksempel installere Apache-webserver med et par klik, og da dette er LTS-udgaven (Long Term Support), får man fem års sikkerhedsopdateringer gratis (desktop-udgaven bliver kun understøttet i tre år). Så længe systemet er up to date, og kodeordene er sikre, er det højst usandsynligt, at nogen er i stand til at bryde ind i det.

Kombiner det med de uploadhastigheder, mange mennesker har derhjemme, og du har et realistisk alternativ til billig, delt hosting, der er sjovt at installere, giver dig bedre styring med konfigurationen, og som er bedre egnet til de lav-båndbreddesites, mange af os kører som en hobby.

Du kan også lære en masse undervejs. Det er grunden til, at vi viser, hvor nemt det er at oprette en Linux-server, instal-lere en LAMP-stak på den, få Apache til at køre websider og derefter installere verdens mest populære content management-system – WordPress. Her-efter er verdensherredømmet op til dig.

I modsætning til den live-cd, som de fleste bruger til at installere Ubuntu, forbereder serverudgaven dig til livet på kommandolinjen. Det er ikke så slemt, som det lyder, for der er i virkeligheden blot tale om en række menuer. Du bliver også udsat for nøjagtig de samme spørgsmål som desktopudgav-en, og der stilles derfor ikke krav til særlige færdigheder.

Boot fra Ubuntus server-cd, og vælg ‘English’ og ‘Install Ubuntu Server’ blandt de valgmuligheder, der kommer frem. Vælg nu sprog igen, tidszone og tastaturlayout. Efter en kort konfigurationspause kan du få adgang til netværkssektionen.

Først beder den om et hostnavn; du skal blot sikre dig, at der er tale om et enestående navn i stedet for at lade alle maskinerne på dit netværk bruge ‘Ubuntu’. Skriv så et brugernavn og et kodeord. Gør dem så sikre som muligt ved at bruge et uforudsigeligt navn og et svært kodeord. Du skulle gerne undgå, at andre kan gætte sig frem, hvis du kører ssh til fjern-adgang.

Partitionering

Det næste større skridt er diskpartitionering, og den mest reelle metode består i at give serveren en hel disk. Vi anbefaler også den anden valgmulighed i diskpartitionerings-menuen, for den formaterer hele disken med en LVM-konfiguration.

LVM er et diskstyringssystem, der opretter virtuelle partitioner fra en eller flere diske, og det betyder, at man nemt kan udvide dem, når behovet opstår, uden at skulle igennem besværet med at migrere data fra et drev til et andet. Besvar alle yderligere spørgsmål med standardværdierne.

Vær opmærksom på, at det fjerner alle data fra det valgte drev. Lad være med at besvare spørgsmålet om pakkestyring, men i den følgende del foreslår vi ‘Install security updates automatically’ som et bedre valg end standardsvaret, navnlig hvis maskinen skal køre konstant og være koblet på internettet.

Vælg en server

Til sidst i installationen kan du vælge mellem de servere, du vil installere. Så kan Ubuntu styre processerne fra boot uden yderligere interaktion fra dig, og det er derfor en god ide i det mindste at installere grundpakkerne. Vi anbefaler, at man vælger OpenSSH-server og LAMP-server som en god startkonfiguration.

OpenSSH er et af de stærkeste værktøjer til Linux, fordi man kan få sikker adgang til kommandolinjen fra enhver fjernlokation, så længe port 22 bliver videresendt til maskinen gennem en firewall. Det betyder også, at man kan slå tastatur, mus og skærm fra, efter at man har placeret servermaskinen på sit lokale netværk, idet man kan klare alt andet med en ssh-forbindelse.

Du har sikkert hørt om LAMP. Det står for Linux/Apache/MySQL og php, og tilsammen har disse fire teknologier været med til at ændre world wide web for foretagender som Facebook og Twitter. Apache er selve webserveren, der giver mulighed for at hoste sites, så man kan få adgang til dem over netværket.

MySQL er en databaseserver, der typisk bliver brugt af for eksempel Wordpress til at lagre ting som kommentarer og forumchat. Det lyder måske lidt forretnings-agtigt at installere sådan noget på din ydmyge server, men det er en tjeneste, der kører godt på langsommere maskiner, og som kan skaleres i overensstemmelse med behovene. Du kan give installationsprocessen et rod-kodeord, og det anbefaler vi, hvis du vil bruge det online.

Php er den programmeringslim, der holder det hele sammen. Lad dig ikke skræmme af ordet programmering. Man installerer som regel færdig-
lavede php-pakker snarere end selv at kode sine egne løsninger, og du får aldrig brug for at røre koden.

Port-fremsendelse

Når dine servere er valgt, fortsætter du med installationen. Efter et par minutter bliver du spurgt, om du vil installere Grub-bootloader i din master boot-record. Du bør svare ‘Yes’, medmindre du kører din server parallelt med en Windows-installation. Nu kan du genstarte maskinen og fjerne den bootbare disk.

Efter at have genstartet maskinen ser du ikke en desktop eller en grafisk login-skærm. I stedet kan du se en monokrom kommandoprompt, der beder dig logge ind. Brug de kontooplysninger, du oprettede ved installationen, og så er du ved kommandolinjen. Vi vil først finde serverens ip-adresse, og den bør blive vist som del af den login-oversigt, du kan se over kommandoprompten. Led efter linjen ‘IP address for eth0’.

Denne ip-adresse er vigtig, fordi du skal køre din maskine som en server. På de fleste netværk bliver den givet til maskinen af en dhcp-server, der kører et sted på dit lan, som regel gemt af vejen på routeren eller modemmet. Det meste af tiden er adressen den samme, men der er ingen garanti, for den bliver allokeret dynamisk efter behov. Med serveren oppe at køre er den nemmeste løsning for de fleste routere at bruge dens web-grænseflade til at give vores Ubuntu-server en statisk adresse. Hver router er forskellig, og vi kan derfor ikke give anvisning, men det er som regel en enkel opgave.

Når du er i web-grænsefladen, skal du også åbne et par porte i din firewall og derefter videresende dem til din Ubuntu-server. Disse porte afhænger af, hvilke servere du kører, men til en webserver og OpenSSH er det henholdsvis port 80 og 22.

Serveren er klar

Det er al den konfiguration, der er brug for. Nu kan du pege en browser i retning af den internetorienterede ip-adresse, der er kommet fra din udbyder, eller din servers ip-adresse på dit lan. Den berygtede besked ‘It works!’ bliver leveret af Apache. Din server er nu rede til dit web-mesterværk. Dette er ikke stedet for en guide om html eller php, men html-filen /var/www/index.html er et godt sted at begynde, for det er den, der bliver læst for at skabe meddelelsen ‘It works!’ fra Apache. Rediger denne fil, så ændrer dit website sig.

Den anden server, vi installerede, var OpenSSH, og den kan man også bruge fra enhver ssh-klient – Putty on Windows, for eksempel, eller ssh-kommandoen fra enhver Linux-maskine. Skriv ssh efterfulgt af din ser-vers ip-adresse, så får du den samme login-skærm, som kommer, når du starter din maskine. Log ind. Du kan nu gøre alting fra din maskine, blot på afstand. Det betyder, at du nu kan skjule din server et sted og bruge en fjernforbindelse, når du skal ændre noget, enten fra internettet eller fra dit lan.

De færreste bygger et website fra grunden (men verden ville måske være et bedre sted, hvis flere skulle gøre det). Derfor vil vi installere et færdiglavet web-framework, der burde gøre det nemt at lægge dit materiale online fra din egen ser-ver.

Den software, vi vil installere, er WordPress, der sandsynligvis er verdens mest populære blog-platform. Det er dog mere end blog – det er et omfattende og brugervenligt content management-system, der er nemt at udvide og tematisere med dets fantastiske plugin-system. Alt, hvad der kræves, er Apache, MySQL, Linux og php – og det har vi allerede dækket.

Installer WordPress

Det første skridt består i at hente Ubuntu-pakkerne til WordPress ved at skrive sudo apt-get install wordpress. Desværre omfatter det ike nogen konfiguration. Når pakkerne er installeret, skal vi oprette et symbolsk link fra den mappe, hvor WordPress er installeret, til den mappe, Apache bruger til at håndtere indhold.

Det kan man gøre ved først at fjerne den gamle www-mappe med kommandoen sudo rm -rf /var/www og derefter erstatte den med linket ved at skrive sudo ln -s /usr/share/wordpress /var/www/. Nu skal vi køre et script, der automatisk opretter MySQL-databasen for os. Det kan man gøre med den følgende kommando: sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress 192.168.133.54.

Her er ‘wordpress’ brugernavnet til databasen, og ‘192.168.133.54’ er ip-adressen på den server, hvorfra du skal have adgang til den. Hvis du ønsker adgang fra internettet, skal den være din forbindelses ip-adresse, snarere end den fra serveren på dit lan.

Med lidt held er meddelelsen ‘It works’ blevet erstattet af WordPress’ installationsskærm. De sidste skridt består i at gennemgå denne nemme installation og opbygge den nødvendige opsætning – skriv sitenavn, e-mailadresse og kodeord. Få øjeblikke senere sidder du med en komplet WordPress-installation. Log ind og begynd at lege.

Ssh og Apache er kun toppen af isbjerget – man kan installere mange andre former for servere. Du vil måske gerne have ftp-adgang, så du kan overføre filer til og fra serveren.

Det kan man gøre ved at skrive sudo apt-get install vsftpd. Når det er gjort, peger du din foretrukne ftp-klient (vores er Filezilla – www.filezilla-project.org) mod din servers ip-adresse, og så kan du forbinde dig anonymt. Som standard er den tomme mappe, der bliver delt over ftp, i mappen /home.

Vi anbefaler kun at bruge ftp bag en firewall på dit lan, fordi data som regel bliver overført ukrypteret, og det kan være risikabelt. Hvis du skal overføre filer sikkert, anbefaler vi sftp. Det kræver kun, at OpenSSH er installeret på din server, plus en sftp-kompatibel klient (som Filezilla). Den bruger også din servers brugerkonti, og alle filer og kodeord bliver krypteret undervejs.

Hvis du vil have mere gammeldags skæg, kan du overveje IRC – en form for chatserver, der lader grupper af folk samtale i “kanaler”. Selvom den er ældgammel, er ingen anden teknologi kommet i nærheden af IRC’s implementering eller popularitet, og når du kører din egen server, får du plads til at indøve dine fornærmelser, og venner og slægtninge får et privat hjørne på internettet.

Man kan installere den populæreste server ved at skrive sudo apt-get install ircd-irc2, og du skal ændre hosthavnet i /etc/ircd/ircd.conf. Det, du vælger, skal være tilgængeligt fra dine andre maskiner. Hvis det ikke er et kvalificeret domænenavn, føjer du dets navn og ip-adresse til filen /etc/hosts for dine klienter. Tag din foretrukne IRC-klient, og brug hostnavnet til at koble på.

Der er intet i vejen med at køre en tjeneste, der er tilgængelig fra internettet, men man skal sikre sig, at hver tjeneste bliver styret og ikke overladt til sig selv.
Med styret mener vi, at man bør bruge en firewall, der kun giver adgang til de porte, man har brug for – port 80 til webtraffik, for eksempel, og port 22 til ssh – og man skal holde disse tjenester up to date.

Ubuntu er strålende til det, fordi installationsproceduren kan konfigurere pakkeopdatering automatisk. Det betyder, at man ikke skal gøree andet end at sørge for, at det vikrker.

Med opdateringer og patches installeret er det ikke mere risikabelt at køre en server fra ens maskine end at gøre noget andet på internettet. Man skal blot være forsigtig og bruge lidt sund sans.

Til fjern-administration er ssh meget sikker, men den er afhængig af ens kodeord og brugernavne. Hvis man gætte dem, og ens brugerkonto kan bruges til at få administrativ adgang, kan serveren bliver omdannet til et spamværktøj.

Et af de bedste trick, du kan udføre med ssh, er at føre en port fra dit lan til internettet via din ssh-forbindelse. Så kan du få adgang til Apache eller ftp uden at skulle videresende portene gennem dit netværk eller køre offentligt.

Det gør man ved at bruge kommandoen ssh -L 8000:localhost:80 username@server, så bliver port 80 ført gennem din firewall til port 8000 på din klientmaskine. Dernæst skal du pege din lokale browser mod http://localhost:8000 for at kunne se websiden.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Projektets mål

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Krav

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Domain names

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Auto updates

[/themepacific_accordion_section]
[/themepacific_accordion]