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.
-
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 -yKommandot
apt updateuppdaterar paketlistorna medanapt upgradeinstallerar de senaste versionerna av installerade paket. Flaggan-ybekräftar automatiskt alla frågor under installationen. -
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 nginxKommandot
systemctl enablesä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. -
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 mariadbEfter installationen måste du säkra databasservern genom att köra säkerhetsskriptet:
sudo mysql_secure_installationFö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.
-
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 -yDessa 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. -
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 -pSkapa 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.
-
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/wordpressKatalogen
/var/www/wordpressblir 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. -
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/wordpressKlistra 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 nginxKommandot
nginx -ttestar konfigurationen för syntaxfel innan du laddar om Nginx. -
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.phpHitta 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. -
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. -
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-adminmed dina administratörsuppgifter. Din WordPress-installation är nu funktionell men använder fortfarande okrypterad HTTP. -
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.comFö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';" -
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/wordpressLä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 nginxDessa 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-fpmoch 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 medsudo 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 uppdaterafastcgi_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.inioch sättopcache.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.