• Steg-för-steg: Installera en LAMP-stack på hemmadator (Debian/Ubuntu Server) med Word press

    Den som håller på med hemsidor, där är webappen wordpress den populäraste appen. Men även andra webappar som är skrivna i PHP kan behöva testas. Med egen testmiljö för LAMP kan man testa sina projekt. Har man till exempel en dator som inte klarar Windows 11, kan den bli en utmärkt NAS och testmiljö för webbappar skrivna i PHP eller annat språk.

    Innehållsförteckning

    Introduktion

    Har du en gammal dator som du vill ge nytt liv? Du kan förvandla den till en webbtjänande server genom att installera en LAMP-stack – en kombination av Linux, Apache, MySQL/MariaDB och PHP[1]. Linux utgör operativsystemet, Apache agerar webbserver som levererar webbsidor, MySQL eller MariaDB sköter databasen där data lagras, och PHP är scriptspråket som binder samman allt för att skapa dynamiska webbsidor. I den här guiden går vi igenom, steg för steg, hur du installerar och konfigurerar en LAMP-stack på en Debian- eller Ubuntu-baserad server i hemmet – exempelvis en äldre dator du har stående.

    Målgruppen är nybörjare med viss teknisk erfarenhet. Vi håller därför en lättförståelig, populärvetenskaplig ton samtidigt som vi säkerställer att allting blir tekniskt korrekt. Guiden täcker allt från installation av Apache, MySQL/MariaDB och PHP, till hur du får systemet att fungera i ditt lokala nätverk (LAN), vidare till att installera och konfigurera WordPress (ett populärt innehållshanteringssystem) och hur du kan administrera WordPress via kommandoraden med WP-CLI. Vi avslutar med grundläggande säkerhetsaspekter – såsom brandvägg, lösenordshantering och varför du inte bör exponera din hemserver direkt mot internet.

    Översikt av innehåll:

    • Förberedelser: Vad du behöver och hur du förbereder servern och nätverket innan installation.
    • Installation av LAMP: Stegvis installation av Apache, MySQL/MariaDB och PHP på Debian/Ubuntu.
    • Installation av WordPress: Hur du laddar ner och konfigurerar WordPress på din LAMP-server.
    • WP-CLI: Användning av WordPress Command Line Interface för att administrera din WordPress-sajt via terminalen.
    • Säkerhet: Grundläggande åtgärder för att säkra din hemmaserver och WordPress-installation.
    • Avslutande tips: Några sista råd kring underhåll och vidare förbättringar.

    Låt oss börja med att säkerställa att allting är på plats för installationen!

    Förberedelser

    Innan vi ger oss in på installationen, behöver du förbereda följande:

    • En dator med Linux (Debian eller Ubuntu Server): Installera gärna den senaste LTS-versionen av Ubuntu Server eller en stabil Debian-release på datorn du vill använda som server. Se till att systemet är uppdaterat (sudo apt update && sudo apt upgrade) och att du har administratörsrättigheter (sudo) på ett användarkonto.
    • Nätverksanslutning: Serverdatorn bör vara ansluten till ditt lokala nätverk, helst via kabel för stabilitet. Notera serverns lokala IP-adress (t.ex. 192.168.x.y) – du kan hitta den genom kommandot hostname -I eller via din routers gränssnitt. För att förenkla åtkomst inom hemnätverket kan du överväga att ge servern en statisk IP-adress på LAN: enklaste sättet är ofta att reservera en IP i routerns DHCP-inställningar baserat på serverns MAC-adress. Då får servern alltid samma adress på hemnätet, vilket underlättar när du ska ansluta till den.
    • Grundläggande kommandoradskunskaper: Vi kommer att använda terminalen flitigt för installation och konfiguration. Du bör kunna köra enkla Linux-kommandon och redigera konfigurationsfiler med en textredigerare som nano eller vim. Om servern är huvudlös (ingen skärm) kan du ansluta via SSH från en annan dator i nätverket.
    • Internetuppkoppling: För att ladda ner uppdateringar och programvara (Apache, MySQL, PHP, WordPress etc.) behöver servern internetåtkomst under installationen.

    När ovanstående är ordnat är du redo att börja sätta upp din LAMP-stack!

    Installation av LAMP

    En LAMP-stack består av tre huvudsakliga komponenter att installera (utöver Linux som redan körs på din server): webbservern Apache, databasen MySQL/MariaDB och scriptspråket PHP. Vi går igenom installationen av dessa steg för steg på en Debian/Ubuntu-baserad distribution.

    Installera Apache (webbserver)

    1. Uppdatera paketindex: Öppna terminalen på din server och kör först en uppdatering av paketlistan:
    • sudo apt update
    1. Installera Apache: Därefter installerar du Apache2 med apt:
    • sudo apt install apache2
    • På Ubuntu/Debian startar Apache automatiskt efter installationen och ställs in att köra vid uppstart. För säkerhets skull kan du kontrollera Apache-status:
    • sudo systemctl status apache2
    • Tjänsten bör visas som aktiv (running). Apache levereras med en standardsida (”It works!”) som du nu kan testa. Öppna en webbläsare på en klientdator i samma nätverk och navigera till http://<serverns-IP-adress> – du bör se Apaches välkomstsida som bekräftar att webbservern körs[3].
    1. Aktivera Apache i brandväggen: Ubuntu har en inbyggd brandvägg (ufw). Tillåt HTTP- och HTTPS-trafik i brandväggen så att webbförfrågningar kan nå Apache:
    • sudo ufw allow ’Apache Full’
      sudo ufw enable
    • Kommandot ’Apache Full’ öppnar port 80 (HTTP) och 443 (HTTPS) i brandväggen[4]. (OBS: Om ufw inte är installerat på Debian kan du antingen installera det eller använda annan brandväggslösning; på ett hemnätverk bakom en router kan du även välja att initialt lita på NAT:en, men det är bra att ha en lokal brandvägg som extra skydd.)

    Installera MySQL/MariaDB (databas)

    1. Installera databasservern: Kör följande kommando för att installera MySQL-server (i Ubuntu 20.04+ installeras i själva verket ofta MariaDB, en community-version av MySQL, men för enkelhet kallar vi den MySQL):
    • sudo apt install mysql-server
    • Under installationen kan du bli ombedd att sätta ett root-lösenord för MySQL (detta beror på distributionens version – vissa moderna Ubuntu-versioner sätter ingen root-lösenord och använder sockets-autentisering). Oavsett vilket, kommer vi strax att säkra installationen.
    1. Starta och kontrollera MySQL: Precis som med Apache, kontrollera att databasservern är igång:
    • sudo systemctl start mysql # startar tjänsten om den ej redan är igång
      sudo systemctl enable mysql # ser till att den startar vid boot
      sudo systemctl status mysql # visar status
    • MySQL/MariaDB bör nu köras.
    1. Säkra databasinstallationen: MySQL kommer med ett praktiskt script för grundläggande säkerhetshärdning. Kör:
    • sudo mysql_secure_installation
    • Detta guide-program frågar en serie frågor för att säkra din databasserver. Du kommer bland annat kunna: sätta eller uppdatera root-lösenordet (om det inte redan är satt), ta bort anonyma användarkonton, förhindra root-inloggning via fjärranslutning samt ta bort testdatabasen[5]. Acceptera att ta bort/inaktivera osäkra inställningar genom att svara Yes på frågorna. Efter att skriptet kört färdigt har du en grundsäkert konfigurerad MySQL/MariaDB-instans – kom ihåg det root-lösenord du eventuellt angav.

    Installera PHP (scriptspråk)

    1. Installera PHP och nödvändiga moduler: Installera PHP samt tillhörande Apache- och databaskopplingar med:
    • sudo apt install php libapache2-mod-php php-mysql
    • Paketet libapache2-mod-php kopplar samman PHP med Apache (så att Apache kan tolka .php-filer), och php-mysql tillåter PHP att prata med MySQL/MariaDB[6]. Utöver dessa grundläggande paket kan det vara klokt att installera några vanliga PHP-tillägg som WordPress och dess plugins kan behöva, t.ex. cURL, GD, mbstring, XML m.fl. Du kan installera flera på en gång:
    • sudo apt install php-curl php-gd php-mbstring php-xml php-zip
    • (Ovanstående inkluderar vanliga tillägg; du kan alltid installera fler senare om något plugin kräver det.) När PHP och tilläggen är installerade, ladda om Apache så att eventuella nya moduler tas i bruk:
    • sudo systemctl restart apache2
    1. Testa PHP (valfritt): För att verifiera att PHP fungerar med Apache kan du skapa en testfil. Kör t.ex.:
    • echo ”<?php phpinfo(); ?>” | sudo tee /var/www/html/info.php
    • Navigera sedan i webbläsaren till http://<serverns-IP>/info.php. Om du ser en sida med PHP-information (PHP-version och konfigurationsdetaljer) så fungerar PHP som det ska. Kom ihåg att ta bort testfilen senare av säkerhetsskäl (sudo rm /var/www/html/info.php), då den avslöjar detaljer om din PHP-konfiguration.

    Brandvägg och lokal nätverksåtkomst

    Efter att Apache, MySQL och PHP är installerade och körs, har du i princip en fungerande LAMP-server. Några viktiga punkter för att få allt att fungera smidigt på hemnätverket:

    • Brandvägg och portar: Vi aktiverade UFW-brandväggen och öppnade för ”Apache Full” tidigare, vilket innebär att din server tar emot trafik på port 80 (HTTP) och 443 (HTTPS). I ett hemmanätverk bakom en router är servern som standard inte tillgänglig utifrån internet (såvida du inte särskilt öppnar/forwardar portar på din router). För intern åtkomst inom LAN räcker det att brandväggen tillåter trafiken. Kontrollera att du kan nå Apache från en annan dator i nätverket via serverns IP-adress (som vi testade med välkomstsidan).
    • Lokal DNS (valfritt): Det kan bli lite omständligt att komma ihåg IP-adressen. Om du vill kan du på dina klientdatorer uppdatera deras hosts-fil så att t.ex. ett smidigt namn (som ”minserver.local”) pekar på serverns IP – eller använd din routers ev. funktion för lokala värdnamn. Detta är dock extra lyx; IP-adressen duger bra för att fortsätta installationen.
    • Statisk IP: Som nämnt bland förberedelserna, se till att serverns IP inte ändras över tid. Det bästa är att ställa in att den alltid får samma IP. Du kan antingen konfigurera detta i själva serverns nätverksinställningar (statisk IP via Netplan/DHCP override) eller mycket enkelt via routerns webbgränssnitt genom att binda serverns MAC-adress till en fast IP i DHCP (den enklaste lösningen enligt många). Detta förhindrar att servern plötsligt får en ny adress (vilket annars kan hända efter omstarter) och att dina bokmärken/inställningar till servern skulle sluta fungera.

    Nu har vi en grundläggande LAMP-stack i drift. Dags att lägga till WordPress för att få en komplett hemsida!

    Installation av WordPress

    WordPress är ett av världens mest populära verktyg för att bygga webbplatser och bloggar. Vi kommer nu att installera WordPress på vår nya LAMP-server. Processen omfattar att skapa en databas åt WordPress, hämta själva WordPress-programvaran och konfigurera den.

    Skapa en MySQL-databas för WordPress

    WordPress behöver en egen databas att lagra all sin information i (inlägg, användare, inställningar, etc.). Vi använder MySQL/MariaDB som vi installerade för detta. Följande steg utförs i MySQL:s shell:

    1. Logga in i MySQL: Kör sudo mysql -u root -p på servern för att logga in i MySQL prompten som root (administratör). Ange root-lösenordet du satte tidigare (om inget lösenord sattes, kör bara sudo mysql utan -p).
    2. Skapa databas: När du fått MySQLs prompt (mysql>), skapa en ny databas som WordPress ska använda. Du kan kalla den vad du vill – i exemplet nedan används wordpress:
    • CREATE DATABASE wordpress;
    • Detta skapar en databas som heter ”wordpress”[9]. (Om du vill använda ett annat namn går det bra, notera det då för kommande steg.)
    1. Skapa användare: För bättre säkerhet är det rekommenderat att inte låta WordPress använda root-kontot till databasen, utan skapa en dedikerad databas-användare. Skapa t.ex. en användare wordpressuser med ett lösenord:
    • CREATE USER ’wordpressuser’@’localhost’ IDENTIFIED BY ’ditt_lösenord’;
    • Byt ut ’ditt_lösenord’ mot ett starkt lösenord du väljer för databasanvändaren (minst 12 tecken, gärna slumpmässigt). Med detta kommando skapas en ny MySQL-användare wordpressuser som endast kan logga in från localhost (det vill säga från servern själv).
    1. Ge användaren rättigheter: Nu ger vi den nya användaren fullständig åtkomst till den nya databasen:
    • GRANT ALL PRIVILEGES ON wordpress.* TO ’wordpressuser’@’localhost’;
    • Detta ger wordpressuser fulla rättigheter (ALL PRIVILEGES) på alla tabeller i databasen ”wordpress”. Det innebär att WordPress kan skapa tabeller, läsa, skriva och ändra data i databasen som behövs.
    1. Spara ändringarna och avsluta: Inom MySQL behöver man uppdatera rättighetsinställningarna med:
    • FLUSH PRIVILEGES;
      EXIT;
    • FLUSH PRIVILEGES ser till att MySQL laddar in de nya användarrättigheterna utan omstart, och EXIT lämnar MySQL-prompten. Vi har nu en databas (wordpress) och en användare (wordpressuser) med tillhörande lösenord klara för WordPress att använda

    Ladda ner och installera WordPress-filerna

    Med databasen på plats är nästa steg att hämta WordPress-programvaran och placera den i webbserverns katalog.

    1. Ladda ner WordPress: Gå till en temporär mapp, t.ex. /tmp, och ladda ner senaste WordPress-release (på svenska eller engelska – vi tar den engelska standardversionen här). Kör på servern:
    • cd /tmp
      curl -O https://wordpress.org/latest.tar.gz
    • Detta hämtar arkivfilen latest.tar.gz från WordPress officiella webbplats[13], som innehåller alla WordPress-filer.
    1. Extrahera filer: Extrahera arkivet:
    • tar xzvf latest.tar.gz
    • Det skapar en katalog som heter wordpress/ med WordPress-filerna.
    1. Flytta WordPress till webbplatsens rot: Apache serverar som standard filer från /var/www/html/. Vi flyttar nu över WordPress-filerna dit. Om du inte har andra webbplatser på servern kan vi lägga WordPress direkt i html-mappen:
    • sudo cp -a /tmp/wordpress/. /var/www/html/
    • Flaggan -a (archive) ser till att kopiera alla filer och behålla rättigheter. Slutet /. ser till att dolda filer också följer med. Efter denna kopiering ligger nu WordPress PHP-filer i /var/www/html, samma ställe som Apaches ”It works”-indexsida låg. Du kan ta bort den gamla index.html (Apache välkomstsidan) från /var/www/html för att inte den ska visas i stället för WordPress: sudo rm /var/www/html/index.html.
    1. Ägarskap och rättigheter: För att WordPress senare ska kunna ladda upp filer, ändra inställningar och uppdatera själv, behöver webbservern (Apache) ägarskap till filerna. Apache kör som användaren www-data på Ubuntu/Debian. Sätt nu ägare för alla WordPress-filer till www-data:
    • sudo chown -R www-data:www-data /var/www/html
    • Detta ger webbservern kontroll över filerna[15]. Som ytterligare säkerhetsåtgärd kan man sätta strikta filrättigheter: t.ex. 750 för kataloger och 640 för filer, vilket hindrar obehöriga användare på systemet från att läsa/köra filerna. Exempel:
    • sudo find /var/www/html/ -type d -exec chmod 750 {} \;
      sudo find /var/www/html/ -type f -exec chmod 640 {} \;
    • (Detta är en rekommenderad utgångspunkt; WordPress bör fungera med dessa rättigheter, men vissa plugin kan kräva justeringar senare. Grundprincipen är att www-data ska ha access, men ingen annan behöver det.)
    1. Konfigurationsfil (wp-config.php): WordPress behöver en konfigurationsfil med databasuppgifterna. Normalt kan detta göras genom installationsguiden i webbläsaren (nästa steg) – WordPress försöker då spara inställningarna åt dig. Tack vare att vi satt rätt ägarskap på filerna kan WordPress skapa filen själv. Om det av någon anledning inte lyckas, kan du manuellt skapa den genom att kopiera wp-config-sample.php till wp-config.php:
    • sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
      sudo nano /var/www/html/wp-config.php
    • …och fylla i databasinformationen (DB_NAME, DB_USER, DB_PASSWORD) för wordpress-databasen och wordpressuser-användaren vi skapade[16]. Samt passa på att lägga till unika salter/nycklar för säkerhet (WordPress hemliga nycklar) enligt instruktion i filen – dessa kan genereras från WordPress.org:s hemliga nyckeltjänst. Om du istället låter webbinstallationsguiden hantera detta kan du hoppa över manuellt skapande; vi beskriver det nedan.

    Slutför installationen via webbläsaren

    Nu är alla filer på plats och databasen redo. Det är dags att köra WordPress berömda “fem-minuters installation” via webbgränssnittet:

    1. Öppna installationssidan: På en dator i ditt nätverk, öppna webbläsaren och gå till http://<serverns-IP-adress>/ (eller om du satte ett värdnamn, använd det). Eftersom vi lade WordPress i webbrotkatalogen bör adressen visa WordPress installationsguide. Du blir först ombedd att välja språk för installationen. Välj exempelvis Svenska om du vill ha WordPress på svenska, eller fortsätt med engelska – det går alltid att ändra språk senare. Klicka “Fortsätt/Continue”.
    2. Databasuppgifter: WordPress kommer sedan fråga efter databasnamn, användarnamn och lösenord. Ange de uppgifter du skapade tidigare:
    • Databasnamn: wordpress (om du valde det namnet, annars ditt egna namn)
    • Användarnamn: wordpressuser
    • Lösenord: det lösenord du satte för wordpressuser-kontot.
    • Databasserver: localhost (WordPress kör på samma server som databasen).
    • Tabellprefix: wp_ är standard och duger bra om du inte har speciella skäl att ändra.
    • Skicka iväg uppgifterna. WordPress kopplar nu upp mot databasen. Om allt är rätt ifyllt får du en bekräftelse och kan fortsätta.
    1. Skapa administratörskonto: Nästa steg i guiden ber om information för sajtens grundkonfiguration:
    • Webbplatstitel: Namnet på din webbplats (t.ex. “Min Blogg”).
    • Administratörsanvändare: Ett administratörslogin för WordPress. Välj inte “admin” som användarnamn – ta något unikt.
    • Lösenord: Ett starkt lösenord för administratören föreslås automatiskt. Du kan använda det eller skriva ett eget, men se till att det är starkt (WordPress varnar om det är för svagt)[19].
    • Din e-postadress: Ange en e-post dit WordPress kan skicka återställningslänkar och notiser.
    • Sökmotorsynlighet: Du kan välja att avmarkera “Tillåt sökmotorer indexera denna sida” ifall du inte vill att din hemsida ska dyka upp på Google ännu (praktiskt för en testsajt på hemnätet). Denna inställning kan ändras senare.
    • Klicka sedan på “Installera WordPress” (Install WordPress). WordPress kommer nu att konfigurera klart allt i databasen.
    1. Installation klar – logga in: Om inga fel uppstod möts du av en sida som säger att WordPress har installerats, och du kan klicka på “Logga in” för att gå till inloggningssidan (eller gå direkt till http://<server-IP>/wp-admin/). Logga in med det admin-användarnamn och lösenord du valde. Du tas då till WordPress administratörspanel (dashboard), där du kan börja skapa inlägg, sidor, ändra utseende etc.

    Grattis! Du har nu en egen WordPress-sajt som körs på din hemmaserver. Men innan vi börjar använda den på allvar, låt oss titta på hur man kan sköta WordPress via terminalen med WP-CLI, samt hur man säkrar upp installationen.

    WP-CLI – WordPress via terminalen

    Att administrera WordPress via webbläsarens wp-admin-gränssnitt fungerar fint för det mesta. Men det finns ett kraftfullt verktyg för dig som inte räds terminalen: WP-CLI (WordPress Command Line Interface). WP-CLI låter dig hantera WordPress-sajten med kommandon direkt i terminalen, vilket kan vara både snabbare och smidigare för många uppgifter. Du kan till exempel uppdatera WordPress-kärnan, installera eller uppdatera plugins och teman, hantera användare, skapa inlägg med mera – allt utan att behöva klicka runt i webbläsaren. Detta är särskilt användbart om du administrerar flera sajter eller bara föredrar att automatisera och skripta saker.

    Installation av WP-CLI

    WP-CLI är ett fristående PHP-baserat verktyg. Så här installerar du det på din Ubuntu/Debian-server:

    1. Hämta WP-CLI: Ladda ner WP-CLI som en PHP-arkivfil (.phar) till din server:
    • curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
    • Detta laddar ner filen wp-cli.phar till din nuvarande katalog.
    1. Testkör WP-CLI: Du kan nu prova köra verktyget med:
    • php wp-cli.phar –info
    • Om WP-CLI är nedladdat korrekt ser du information om miljön (PHP-version m.m.).
    1. Gör WP-CLI körbar globalt: För att slippa skriva php wp-cli.phar varje gång, gör vi filen körbar och flyttar den till en katalog i PATH (så att den kan köras som ett vanligt kommando). Till exempel:
    • chmod +x wp-cli.phar
      sudo mv wp-cli.phar /usr/local/bin/wp
    • Detta flyttar filen och döper kommandot till wp (du kan välja annat namn om du vill)[23]. Testa nu med wp –info – du bör få liknande utskrift som tidigare, vilket bekräftar att installationen lyckades.

    (Notera: På vissa distributioner kan WP-CLI finnas i pakethanteraren, men den metoden är inte alltid uppdaterad. Den officiella och rekommenderade vägen är som ovan att använda Phar-filen.)

    Exempel på vad du kan göra med WP-CLI

    Nu när WP-CLI är installerat, här är några vanliga administrationsuppgifter du kan utföra med det:

    • Uppdatera WordPress-kärnan: Istället för att logga in i wp-admin och klicka på uppdatering, kör bara:
    • wp core update && wp core update-db
    • Detta laddar ner och installerar senaste WordPress-versionen och uppdaterar databasen vid behov – allt i en handvändning.
    • Uppdatera plugins: Du kan uppdatera alla dina tillägg med ett enda kommando:
    • wp plugin update –all
    • Då hämtas och uppdateras samtliga installerade insticksprogram till senaste version. (Du kan också uppdatera ett enskilt plugin med wp plugin update plugin-namn om du vill.)
    • Installera och aktivera ett plugin eller tema: För att installera ett nytt plugin, till exempel cache-pluginet WP Super Cache, kör:
    • wp plugin install wp-super-cache –activate
    • Detta söker upp pluginet på WordPress plugin-katalog, laddar ner det och aktiverar det direkt. Du kan göra samma sak för teman med wp theme install tema-namn –activate.
    • Hantera användare och inlägg: WP-CLI låter dig även skapa nya användare, resetta lösenord, generera nya inlägg, exportera databasen, med mera. T.ex. för att skapa en ny användare:
    • wp user create johndoe [email protected] –role=author –user_pass=”MittLösen123″
    • skulle skapa en författaranvändare åt ”John Doe” med angivet lösenord.
    • Övrigt: Det finns kommando för i princip allt i WordPress: wp search-replace för att göra sök-och-ersätt i databasen (nyttigt vid t.ex. domänbyte), wp option update för att ändra inställningar, wp post list för att lista inlägg, osv. Du kan se alla tillgängliga kommandon med:
    • wp help
    • eller wp <subcommand> –help för detaljer om ett specifikt kommando.

    Som du märker kan WP-CLI kraftigt förenkla underhållet. Det är helt frivilligt att använda – allt detta kan göras via det grafiska gränssnittet också – men för den tekniskt nyfikne är det ett utmärkt verktyg som sparar tid och ger mer kontroll.

    (Säkerhetstips: När du använder WP-CLI på en produktionssajt som är åtkomlig från internet, tänk på att kommandon som uppdaterar saker sker direkt. Det är klokt att ta backup innan större uppdateringar, även om WP-CLI i sig inte är farligt.)*

    Säkerhet

    Nu har vi en fungerande WordPress-server i ditt hemnätverk. Innan vi nöjt lutar oss tillbaka är det viktigt att titta på grundläggande säkerhet. Att köra en server innebär ansvar att skydda den från obehörig åtkomst och attacker. Här är några viktiga säkerhetsaspekter och tips:

    • Brandvägg och åtkomstbegränsning: Vi har redan aktiverat UFW-brandväggen och öppnat nödvändiga portar för webbservern internt. För en hemmaserver som inte ska nås från internet räcker detta. Exponera inte din server mot internet i onödan. Om du inte absolut behöver fjärråtkomst utifrån, låt bli att öppna portforwarding på din router för port 80/443. En hemserver utan rätt skydd kan snabbt bli utsatt för intrångsförsök. I diskussioner på nätet avråder erfarna användare starkt från att ha en server direkt exponerad mot internet utan brandvägg – om din server inte har en avancerad brandväggskonfiguration, koppla bort den från direkt internet. Håll den bakom din router/NAT där den är skyddad. (Om du måste ge åtkomst utifrån, överväg att sätta upp en VPN, använda en reverse proxy-tjänst som Cloudflare Tunnel, eller åtminstone se till att HTTPS/SSL är använt och att du har extra autentisering.)
    • Starka lösenord överallt: Använd starka, unika lösenord för alla konton – det inkluderar MySQL-databasens användare, WordPress admin-konto, samt Linux-användare (särskilt om SSH är åtkomligt). Undvik enkla eller vanliga lösenord. WordPress gav en styrkeindikator för admin-lösenordet; följ den rekommendationen. Byt gärna ut standardanvändarnamnet “admin” till något annat för WordPress admin-kontot, ifall du råkat välja det.
    • Håll systemet uppdaterat: En av de viktigaste säkerhetsåtgärderna är att kontinuerligt uppdatera din programvara. Se till att din Ubuntu/Debian får säkerhetsuppdateringar (du kan köra sudo apt update && sudo apt upgrade manuellt regelbundet, eller aktivera automatiska säkerhetsuppdateringar). Detsamma gäller för WordPress och dess tillägg/teman – föråldrade plugins med kända sårbarheter är en vanlig angreppsvektor. Använd antingen WP-CLI eller WordPress inbyggda uppdateringsfunktion för att hålla allt up-to-date. Ett tips är att i WordPress-inställningarna aktivera automatiska uppdateringar för mindre release-versioner och plugins vid behov.
    • Säkerhet i WordPress: Överväg att installera ett säkerhetsplugin i WordPress som ytterligare skyddslager. Populära alternativ är t.ex. Wordfence eller Sucuri som kan skanna efter malware och blockera misstänkt trafik. Dessa kan hjälpa att upptäcka och stoppa attacker mot din sajt. Se också till att endast behövliga plugins är installerade och radera de du inte använder (färre plugins minskar potentiella sårbarheter).
    • Begränsa exponering på nätverket: Eftersom detta är en hemmaserver för internt bruk, se till att den endast är nåbar där det behövs. Du kan till exempel ställa in UFW-regler som begränsar port 80/443 så att de bara kan nås från din lokala subnät (t.ex. sudo ufw allow from 192.168.0.0/24 to any port 80 om ditt LAN är 192.168.0.x). Då blockeras även eventuell åtkomst från utanför nätverket. Om du har SSH igång, överväg att byta SSH-port från 22 till något annat, och använd nyckelbaserad inloggning för att förhindra lösenordsgissning.
    • SSL/TLS för webb: Även om sajten bara körs på LAN kan det vara bra att sätta upp HTTPS om du någon gång exponerar den. På internet skulle vi absolut rekommendera att skaffa ett Let’s Encrypt-certifikat för din domän (om du har en), eller åtminstone ett självsignerat certifikat för kryptering på LAN. HTTPS krypterar trafiken så att ingen utomstående kan avlyssna lösenord eller data som skickas.
    • Regelbundna backuper: Ta för vana att säkerhetskopiera din WordPress-databas och eventuella uppladdade filer. Eftersom detta är på en egen server kan du skripta en mysqldump av databasen då och då, eller använda ett WordPress-backupplugin. Spara backuperna på en annan enhet. Detta skyddar dig ifall något går fel (t.ex. en uppgradering som strular till det, hårddiskfel, eller om du råkar radera något av misstag).

    Sammanfattningsvis handlar säkerhet om lager-på-lager: brandvägg, begränsad åtkomst, starka lösenord, uppdateringar och säkerhetskopior. Genom att följa dessa råd skyddar du din hemmaserver mot de vanligaste riskerna och kan tryggt experimentera vidare. Tänk på: om du någon gång öppnar servern mot internet, var extra noggrann med alla ovanstående punkter – internet är fullt av bottar som skannar efter sårbara servrar.

    Avslutande tips

    Du har nu en fullt fungerande LAMP-server med WordPress i ditt hemnätverk! Här är några avslutande tips för att ta ditt projekt vidare och hålla allting snurrande:

    • Lär känna WordPress och fortsätt anpassa: Logga in på WordPress och utforska dess adminpanel. Byt till ett tema du gillar, skapa några sidor/inlägg och prova installera något nytt plugin. Det finns massor av gratis teman och plugins att utforska för nästan alla behov. Kom dock ihåg att inte installera för många onödiga plugin – håll det till det du verkligen använder, både för prestanda och säkerhet.
    • Prestanda på hemservern: En äldre dator kan ha begränsad prestanda. Om du märker att sajten är långsam, fundera på att installera ett cache-plugin (t.ex. WP Super Cache vi nämnde) för att snabba upp sidladdningar genom att servera statiska sidor. Se också till att onödiga tjänster inte körs på servern och konsumerar resurser. För enstaka användare i ett LAN är dock prestandakravet oftast lågt.
    • Utforska fler möjligheter: Nu när din server är igång, kanske du vill köra fler tjänster på den? Du kan exempelvis sätta upp phpMyAdmin för enklare databashantering via webben (om än WP-CLI och MySQL-shell räcker långt), eller installera andra webbapplikationer vid sidan av WordPress (kom ihåg att då konfigurera Apache virtuella värdar för flera sajter). Din LAMP-server kan vara värd för flera projekt samtidigt. Varje sajt kan få sin egen databas och egen katalog under /var/www.
    • Underhåll är nyckeln: Som med alla system är regelbundet underhåll viktigt. Håll ett öga på uppdateringar både för servern och WordPress. Städa bort sådant du inte behöver. Och framför allt, fortsätt lära dig! Om något problem uppstår, konsultera loggfilerna (Apache loggar finns i /var/log/apache2/ och WordPress fel loggas ofta via PHP). Communityn för både WordPress och Linux är stor – det finns forum och guider för det mesta. Minns att nyckeln till en framgångsrik webbplats inte bara är själva uppsättningen, utan dess fortlöpande underhåll och förbättring[33]. Med andra ord, fortsätt pyssla om din server även efter att den är satt i drift.

    Vi hoppas denna guide hjälpt dig komma igång med att installera LAMP-stack och WordPress på din hemmadator. Lycka till med ditt webbprojektexperiment och ha kul på vägen! Skulle något krångla, finns det många resurser online – och glöm inte att backup är din bästa vän när du experimenterar. Happy hosting!

    Förklaring av vad de olika delkomponenterna gör

    Apache: En populär webbserverprogramvara som körs på servern för att leverera webbsidor till besökarnas webbläsare. Apache tar emot förfrågningar från webbläsare och svarar med innehållet (t.ex. din WordPress-sida). I LAMP-stacken utgör Apache “webbserver”-delen.

    Brandvägg: Ett säkerhetssystem som skyddar nätverk och datorer mot intrång genom att kontrollera vilken trafik som tillåts passerar. En brandvägg kan konfigureras att bara släppa igenom viss trafik (t.ex. webbtrafik på port 80/443 till din WordPress-server) och blockera obehöriga anslutningar.

    Debian: En Linux-distribution (operativsystem) som främst används för servrar och infrastruktur. Debian är känt för stabilitet och öppen källkod. I det här sammanhanget kan Debian vara serverns operativsystem där du installerar LAMP-komponenterna och WordPress.

    IP-adress: En unik sifferkombination som identifierar en enhet (dator, server m.m.) i ett nätverk[4]. Genom att använda serverns IP-adress kan andra datorer i hemmanätverket hitta fram till din WordPress-server och visa webbsidan.

    LAMP: Akronym för Linux, Apache, MySQL, PHP[5]. Det är en paketlösning (s.k. tech stack) där Linux är operativsystemet, Apache är webbservern, MySQL är databashanteraren och PHP är programmeringsspråket. En LAMP-stack innehåller alltså allt som behövs för att driva en WordPress-webbplats på en lokal server.

    LAN (Local Area Network): Ett lokalt nätverk som består av enheter inom ett begränsat område (t.ex. i hemmet). I ett hemmanätverk (LAN) är din WordPress-server ansluten till samma router som dina andra enheter, vilket gör att de kan kommunicera direkt med servern inom det lokala nätet.

    Linux: Ett operativsystem med öppen källkod som är vanligt på servrar. Linux är grunden i LAMP-stacken (L:et står för Linux) och utgör serverns OS. Både Debian och Ubuntu är Linux-varianter; en av dem körs på serverdatorn för att du ska kunna installera Apache, MySQL, PHP och WordPress.

    MySQL/MariaDB: Detta är databashanteringssystem som används för att lagra och hämta all information som hör till din webbplats – till exempel inlägg, användarkonton och inställningar. WordPress är byggt för att arbeta med databaser av den här typen. På moderna Linux-servrar installeras ofta MariaDB som ett alternativ till MySQL; de fungerar i princip likadant och är fullt kompatibla med WordPress. I en LAMP-stack utgör MySQL eller MariaDB den komponent som ansvarar för själva datalagringen.

    PHP: Ett skriptspråk på serversidan som används för att skapa dynamiska webbsidor[9]. WordPress är skrivet i PHP, vilket innebär att PHP-kod körs på servern för att generera HTML-sidorna. När en användare besöker din WordPress-sida så tolkar PHP koden och bygger ihop sidan som sedan skickas till användarens webbläsare.

    Port: Inom datanätverk avser en port ett nummer som fungerar som en kanal eller “adress” för en viss typ av trafik[10]. Till exempel använder webbtrafik vanligtvis port 80 för HTTP och port 443 för HTTPS. För att din WordPress-server ska vara åtkomlig i nätverket behöver rätt port öppnas (t.ex. port 80 så att hemsidan kan nås, och port 22 för SSH-fjärrinloggning), ofta i samarbete med brandväggen.

    Root-användare: Det högsta administratörskontot i ett Linux-system (kallas även superuser) som har obegränsade rättigheter[11]. Root-användaren kan installera program, ändra systeminställningar och utföra alla kommandon. Av säkerhetsskäl loggar man vanligtvis inte in direkt som root; istället använder man ett normalt användarkonto och sudo-kommandot för att tillfälligt få root-behörighet vid administration av servern.

    SSH (Secure Shell): Ett protokoll som används för att ansluta säkert till en annan dator över nätverket[12]. Via SSH kan du öppna en terminal till din server och köra kommandon på distans som om du satt vid den. I vårt sammanhang används SSH för att fjärrstyra Debian/Ubuntu-servern i hemmanätverket – till exempel för att installera paket eller hantera WordPress via kommandoraden.

    Ubuntu: En av de mest populära Linux-distributionerna för datoranvändare, baserad på Debian[13]. Ubuntu finns i versioner för servrar och är känt för att vara användarvänligt. I det här sammanhanget kan Ubuntu (Server-edition) användas som operativsystem på din hemmaserver innan du installerar LAMP-paketet och WordPress.

    WordPress: Ett mycket populärt publiceringsverktyg (Content Management System, CMS) för webben[14]. Med WordPress kan man enkelt skapa och hantera en hemsida eller blogg via ett webbgränssnitt. I vår situation installerar du WordPress på LAMP-servern i hemmanätverket, vilket låter dig driva en egen lokal webbplats och administrera innehållet genom WordPress kontrollpanel.

    WP-CLI: WordPress Command Line Interface, ett verktyg som låter dig hantera WordPress-webbplatsen via kommandoraden[15]. Med WP-CLI kan du sköta många administrationsuppgifter direkt i terminalen – till exempel installera eller uppdatera WordPress, lägga till användare, hantera teman och insticksprogram – utan att behöva använda WordPress grafiska webbgränssnitt.

    Här laddar du hem ubuntu

    https://wiki.linux.se/index.php/Ubuntu

    Här kan du ladda hem ladda hem debian

    https://wiki.linux.se/index.php/Debian

    Så här gör du en bootbar stick med rufus

    Teknisk fakta:

    Detta projekt använder en klassisk LAMP-stack:
    Linux (Ubuntu/Debian)
    Apache som webbserver
    MySQL eller MariaDB som databas
    PHP som serversidespråk

    WordPress installeras direkt i /var/www/html och kopplas till en dedikerad databas.
    WP-CLI gör det möjligt att administrera sajten via terminalen.

    Servern är endast tillgänglig inom hemnätverket (LAN) via statisk IP-adress.
    Portar 80 (HTTP) och 443 (HTTPS) tillåts lokalt via ufw.

    Perfekt för testning av egna webbappar, teman och plugins utan att publicera dem online.

Etikett: hemmaserver