Installera WordPress på VPS med LEMP-stack (Nginx, MySQL, PHP)

Att installera WordPress på en VPS med LEMP-stack (Linux, Nginx, MySQL, PHP) ger dig full kontroll över din webbplats och bättre prestanda jämfört med delad hosting. Nginx är känt för sin höga prestanda och låga minnesanvändning, vilket gör det till ett utmärkt val för WordPress-hosting. Den här guiden visar dig exakt hur du installerar WordPress på VPS med Nginx, från grundläggande serveruppdateringar till SSL-certifikat och prestandaoptimering. Du får en produktionsklar WordPress-installation som är säker, snabb och redo att användas.

Förberedelser innan installation

Innan du börjar installera WordPress på din VPS behöver du ha root-åtkomst eller en användare med sudo-behörighet. Den här guiden förutsätter att du använder Ubuntu 20.04 eller 22.04, men stegen fungerar även på Debian-baserade system med små justeringar. Se till att du har en domän som pekar mot din VPS IP-adress via A-record i dina DNS-inställningar.

  1. Steg 1: Uppdatera VPS och installera grundläggande verktyg

    Logga in på din VPS via SSH och uppdatera systemet för att säkerställa att alla paket är aktuella. Detta är ett viktigt säkerhetssteg innan du installerar ny programvara.

    sudo apt update
    sudo apt upgrade -y
    sudo apt install curl wget unzip -y

    Kommandot apt update uppdaterar paketlistorna medan apt upgrade installerar de senaste versionerna av installerade paket. Flaggan -y bekräftar automatiskt alla frågor under installationen.

  2. Steg 2: Installera Nginx webbserver

    Nginx är hjärtat i din LEMP-stack och hanterar alla HTTP-förfrågningar till din WordPress-sajt. Installera Nginx och starta tjänsten:

    sudo apt install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx

    Kommandot systemctl enable säkerställer att Nginx startar automatiskt vid systemomstart. Verifiera att Nginx körs genom att besöka din servers IP-adress i en webbläsare – du bör se Nginx välkomstsida.

  3. Steg 3: Installera och säkra MySQL/MariaDB

    WordPress kräver en databasserver för att lagra innehåll, användare och inställningar. MariaDB är en populär MySQL-kompatibel databas som fungerar utmärkt med WordPress:

    sudo apt install mariadb-server mariadb-client -y
    sudo systemctl start mariadb
    sudo systemctl enable mariadb

    Efter installationen måste du säkra databasservern genom att köra säkerhetsskriptet:

    sudo mysql_secure_installation

    Följ instruktionerna och svara "Y" på alla frågor. Sätt ett starkt root-lösenord för MySQL när du blir tillfrågad. Detta skript tar bort testdatabaser och anonyma användare som kan utgöra säkerhetsrisker.

  4. Steg 4: Installera PHP-FPM och nödvändiga moduler

    PHP-FPM (FastCGI Process Manager) hanterar PHP-bearbetning för Nginx. WordPress kräver flera PHP-moduler för att fungera korrekt:

    sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y

    Dessa moduler möjliggör databaskommunikation, bildhantering, XML-bearbetning och andra WordPress-funktioner. Verifiera PHP-versionen med php -v. Notera vilken version som installerades (t.ex. 8.1) eftersom du behöver detta i Nginx-konfigurationen.

  5. Steg 5: Skapa WordPress-databas och databasanvändare

    WordPress behöver en dedikerad databas och användare med rätt behörigheter. Logga in på MySQL som root:

    sudo mysql -u root -p

    Skapa sedan databasen och användaren (byt ut "dittlosenord" mot ett starkt lösenord):

    CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'dittlosenord';
    GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;

    Teckenkodningen utf8mb4 stödjer alla Unicode-tecken inklusive emojis. Spara databasnamnet, användarnamnet och lösenordet – du behöver dem i steg 8.

  6. Steg 6: Ladda ner och extrahera WordPress

    Ladda ner den senaste WordPress-versionen direkt från wordpress.org och extrahera den till webbserverns dokumentrot:

    cd /tmp
    wget https://wordpress.org/latest.tar.gz
    tar -xzvf latest.tar.gz
    sudo mv wordpress /var/www/wordpress

    Katalogen /var/www/wordpress blir din WordPress-installations hemkatalog. Du kan välja ett annat namn om du vill, men kom ihåg att uppdatera Nginx-konfigurationen i nästa steg.

  7. Steg 7: Konfigurera Nginx server block för WordPress

    Skapa en Nginx-konfigurationsfil för din WordPress-sajt. Ersätt "example.com" med din faktiska domän:

    sudo nano /etc/nginx/sites-available/wordpress

    Klistra in följande konfiguration (justera PHP-versionen om du inte använder 8.1):

    server {
        listen 80;
        server_name example.com www.example.com;
        root /var/www/wordpress;
        index index.php index.html;
    
        access_log /var/log/nginx/wordpress_access.log;
        error_log /var/log/nginx/wordpress_error.log;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.ht {
            deny all;
        }
    
        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }
    
        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }
    
        location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
            expires max;
            log_not_found off;
        }
    }

    Spara filen (Ctrl+O, Enter, Ctrl+X i nano). Aktivera sedan konfigurationen genom att skapa en symbolisk länk:

    sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx

    Kommandot nginx -t testar konfigurationen för syntaxfel innan du laddar om Nginx.

  8. Steg 8: Konfigurera wp-config.php

    WordPress levereras med en exempelkonfigurationsfil som du måste anpassa med dina databasuppgifter:

    cd /var/www/wordpress
    sudo cp wp-config-sample.php wp-config.php
    sudo nano wp-config.php

    Hitta följande rader och uppdatera dem med informationen från steg 5:

    define('DB_NAME', 'wordpress_db');
    define('DB_USER', 'wordpress_user');
    define('DB_PASSWORD', 'dittlosenord');
    define('DB_HOST', 'localhost');

    Generera unika säkerhetsnycklar genom att besöka https://api.wordpress.org/secret-key/1.1/salt/ och ersätt motsvarande sektion i wp-config.php. Dessa nycklar krypterar cookies och sessioner för bättre säkerhet.

  9. Steg 9: Ställ in korrekta filbehörigheter

    Rätt filbehörigheter är kritiska för både säkerhet och funktionalitet. WordPress behöver kunna skriva till vissa kataloger för uppladdningar och uppdateringar:

    sudo chown -R www-data:www-data /var/www/wordpress
    sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
    sudo find /var/www/wordpress -type f -exec chmod 644 {} \;

    Användaren www-data är Nginx/PHP-FPM:s standardanvändare på Ubuntu. Katalogbehörigheten 755 tillåter läsning och körning för alla men skrivning endast för ägaren, medan 644 för filer tillåter läsning för alla men skrivning endast för ägaren.

  10. Steg 10: Slutför WordPress-installation via webbläsare

    Öppna din webbläsare och navigera till din domän (http://example.com). Du möts av WordPress installationsguide. Fyll i följande information:

    • Webbplatsens titel
    • Administratörsanvändarnamn (använd INTE "admin")
    • Starkt administratörslösenord
    • Din e-postadress

    Klicka på "Installera WordPress" och vänta några sekunder. När installationen är klar kan du logga in på http://example.com/wp-admin med dina administratörsuppgifter. Din WordPress-installation är nu funktionell men använder fortfarande okrypterad HTTP.

  11. Steg 11: Installera SSL-certifikat med Let's Encrypt

    SSL-certifikat är nödvändigt för säker HTTPS-kommunikation och förbättrar även din SEO-ranking. Installera Certbot för att få gratis SSL-certifikat från Let's Encrypt:

    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d example.com -d www.example.com

    Följ instruktionerna och ange din e-postadress när du blir tillfrågad. Certbot konfigurerar automatiskt Nginx för HTTPS och sätter upp automatisk certifikatförnyelse. Välj alternativet att omdirigera all HTTP-trafik till HTTPS när du får frågan. Verifiera att din sajt nu är tillgänglig via https://example.com.

    Uppdatera WordPress-URL:erna i databasen för att använda HTTPS:

    sudo mysql -u root -p wordpress_db -e "UPDATE wp_options SET option_value = replace(option_value, 'http://example.com', 'https://example.com') WHERE option_name = 'home' OR option_name = 'siteurl';"
  12. Steg 12: Optimera Nginx för WordPress-prestanda

    Förbättra din WordPress-sajts prestanda genom att aktivera caching och komprimering. Öppna din Nginx-konfiguration igen:

    sudo nano /etc/nginx/sites-available/wordpress

    Lägg till följande inuti server-blocket, före location-blocken:

        # Gzip-komprimering
        gzip on;
        gzip_vary on;
        gzip_min_length 1024;
        gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/json;
    
        # Browser caching
        location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
            expires 365d;
            add_header Cache-Control "public, immutable";
        }
    
        # FastCGI cache
        set $skip_cache 0;
        if ($request_method = POST) {
            set $skip_cache 1;
        }
        if ($query_string != "") {
            set $skip_cache 1;
        }
        if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
            set $skip_cache 1;
        }
        if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
            set $skip_cache 1;
        }

    Testa och ladda om Nginx-konfigurationen:

    sudo nginx -t
    sudo systemctl reload nginx

    Dessa optimeringar aktiverar gzip-komprimering för textfiler, sätter långvarig cache för statiska resurser och förbereder för FastCGI-caching. För avancerad caching kan du även installera ett WordPress-plugin som WP Super Cache eller W3 Total Cache.

Vanliga problem och felsökning

Även om du följer alla steg noggrant kan du stöta på problem. Här är de vanligaste utmaningarna när du installerar WordPress på VPS med Nginx och hur du löser dem:

  • "502 Bad Gateway" eller "504 Gateway Timeout" – Detta indikerar att Nginx inte kan kommunicera med PHP-FPM. Kontrollera att PHP-FPM körs med sudo systemctl status php8.1-fpm och verifiera att socket-sökvägen i Nginx-konfigurationen matchar den faktiska PHP-FPM socket-filen i /var/run/php/.
  • "Error establishing a database connection" – Verifiera databasuppgifterna i wp-config.php. Testa databasanslutningen manuellt med mysql -u wordpress_user -p wordpress_db. Kontrollera även att MySQL-tjänsten körs med sudo systemctl status mariadb.
  • Permalänkar fungerar inte (404-fel på inlägg) – Detta beror vanligtvis på felaktig Nginx-konfiguration. Säkerställ att try_files $uri $uri/ /index.php?$args; finns i location /-blocket. Om du använder anpassade permalänkar i WordPress, kontrollera att denna rad är korrekt konfigurerad.
  • Uppladdningar misslyckas eller teman/plugins kan inte installeras – Kontrollera filbehörigheter med ls -la /var/www/wordpress/wp-content. Katalogen wp-content och dess underkataloger (uploads, themes, plugins) måste ägas av www-data. Kör behörighetskommandona från steg 9 igen om nödvändigt.
  • PHP-versionskonflikt – Om du har flera PHP-versioner installerade, säkerställ att Nginx pekar på rätt PHP-FPM socket. Lista tillgängliga sockets med ls /var/run/php/ och uppdatera fastcgi_pass-direktivet i Nginx-konfigurationen.
  • SSL-certifikat förnyelse misslyckas – Certbot sätter upp automatisk förnyelse via systemd timer. Testa förnyelsen manuellt med sudo certbot renew --dry-run. Om detta misslyckas, kontrollera att port 80 är öppen i din brandvägg och att din domän fortfarande pekar mot serverns IP-adress.
  • Långsam sidladdning – Aktivera PHP OPcache genom att redigera /etc/php/8.1/fpm/php.ini och sätt opcache.enable=1. Överväg även att implementera Redis eller Memcached för objektcaching. Du kan också behöva öka PHP-FPM:s minnesallokering om din VPS har tillräckligt med RAM.

Om du behöver starta om din VPS under felsökning kan du läsa vår guide om hur man startar, stoppar eller startar om VPS från Launchpad-instrumentpanelen. För mer avancerad felsökning kan du kontrollera Nginx-felloggar med sudo tail -f /var/log/nginx/wordpress_error.log och PHP-FPM-loggar med sudo tail -f /var/log/php8.1-fpm.log.

Nästa steg efter installation

Nu när du har en fungerande WordPress-installation med LEMP-stack finns det flera viktiga steg för att säkra och optimera din sajt ytterligare:

  • Konfigurera automatiska säkerhetskopior – Implementera en backup-strategi med verktyg som UpdraftPlus eller skript som säkerhetskopierar både filer och databas regelbundet.
  • Installera säkerhetsplugins – Wordfence eller Sucuri Security hjälper till att skydda mot attacker, skadlig kod och brute-force-försök.
  • Sätt upp en brandvägg – Använd UFW (Uncomplicated Firewall) för att begränsa inkommande trafik till endast nödvändiga portar (80, 443, 22).
  • Övervaka serverprestanda – Installera övervakningsverktyg som Netdata eller Prometheus för att hålla koll på CPU, minne och diskanvändning.
  • Implementera CDN – Ett Content Delivery Network som Cloudflare kan dramatiskt förbättra laddningstider för besökare globalt.

Din LEMP-stack WordPress-installation är nu komplett och produktionsklar. Genom att följa denna guide har du skapat en säker, snabb och skalbar WordPress-miljö på din VPS med Nginx som ger dig full kontroll över din webbplats.


Was this article helpful?

mood_bad Dislike 0
mood Like 0
visibility Views: 16