Hvis du planlægger at hoste WordPress på en cloudserver, vil denne vejledning være nyttig for dig. LAMP står for Linux, Apache, MariaDB og PHP-software, som tilsammen er kendt som LAMP-stakken.
Fordele og ulemper ved at vælge Apache webserver frem for NGINX
- Fordele: Den understøtter .htaccess-filen, som almindeligvis bruges af mange sidecaching og optimering. Dette er et godt valg for ikke-koder.
- Ulemper: Den er lidt mindre effektiv end NGINX, men det kan styres ved hjælp af APO. For et websted med meget trafik er LEMP stack det bedste valg.
Følg disse 3 trin, og se videoen. Har du brug for hjælp? Kontakt mig. 😊
Før du går i gang, har du et hurtigt tip. Brug Udvidelsen Søg og erstat til at ændre
Et tidsbesparende tip til Google Chrome-brugere.example.com
til dit eget domæne på denne webside.

Del A: Hold Cloudflare-nameservere aktive
Vi vil bruge Cloudflare DNS til at få Let’s Encrypt Wildcard SSL-certifikat. Gennemfør dette trin først for at få glæde af nul-downtime-migration.
Tjek aktuelle navneservere
- Find dine aktive navneservere på https://www.whatsmydns.net/#NS/example.com
- Hvis du kan se, at du bruger din tidligere Hosting- eller domæneregistrator som standard NS, skal du erstatte den med Cloudflare.
- Lær hvordan du bruger Cloudflare DNS
Del B: Gør en Ubuntu Server 22.04 LTS Server klar

1. Tilmeld dig Vultr for at få $100 Gratis kreditter (Gyldig i 14 dage)
Som en person, der har prøvet så mange Cloud-serverfirmaer, siger min erfaring, at du ikke kan gå galt i byen med Vultr. Disse fyre er ægte og omsorgsfulde, når det kommer til support og service.

⚡ Ydelse
- generation af AMD EPYC™
- NVME / SSD
- Op til 4 GHz CPU
- Op til 5 Gbps netværkshastighed
- Datacenter i America, Europe, Asia, Austraillia
- IPV6 klar
💡 Funktioner
- Begyndervenligt instrumentbræt
- Et enkelt klik til Snapshot
- Automtatic Backup (Betalt)
- Gratis cloud-brandmur
- DDoS protection (Paid)
- 100% KVM Virtualisering
⚙ Støtte
- PayPal/Card
- 24/7 Support af billetter
- Dokumentation
2. Deloy en ny server
Du skal blot klikke på plusknappen for at komme i gang

3. Vælg servertype
Vælg Cloud Compute for delt CPU til overkommelige priser.

Herefter kan du vælge AMD High Performance eller Intel High Frequency i CPU & Storage Technology. Den har den hurtigste CPU og NVMe-disk nogensinde. Hvis budgettet er mindre, skal du vælge Regular-planen med Intel CPU, hvor du får SSD-disk.

4. Vælg en serverplacering
Vultr tilbyder servere i de fire kontinenter. For at opnå den laveste latenstid og den bedste ydeevne bør du altid vælge den region, der er tættest på din målgruppe.

Hvis f.eks. 99 % af din trafik kommer fra Danmark, skal du vælge den nærmeste region – Frankfurt, Tyskland.
Asien
- Mumbai, Indien
- Delhi NCR, Indien
- Bengaluru, Indien
- Singapore, Singapore
- Tokyo, Japan
- Seoul, Sydkorea
Amerika
- Miami, USA
- Atlanta, USA
- Chicago, USA
- Dallas, USA
- Honolulu, USA
- Los Angeles, USA
- Mexico City, Mexico
- New York (NJ), USA
- Seattle, USA
- Silicon Valley, USA
- Toronto, Canada, São Paulo
Europa
- Stockholm, Sverige
- London, Det Forenede Kongerige
- Amsterdam, Nederlandene
- Frankfurt, Tyskland
- Madrid, Spanien
- Paris, Frankrig
- Warszawa, Polen
Australlia
- Sydney, Australien
- Melbourne, Australien
5. Vælg Server Image > Operating System > Ubuntu 22.04 LTS x64

Langtidssupport (LTS) er en politik til forvaltning af produktets livscyklus, hvor en stabil udgave af computersoftware vedligeholdes i en længere periode end standardudgaven.

6. Vælg en serverstørrelse

Et abonnement til $6/måned ville være et godt udgangspunkt for en ny blog. Du kan opgradere når som helst efter behov.
Tip: Hvis du migrerer, skal du kontrollere Samlet installationsstørrelse i Site health info.

7. Aktiver IPV6, sikkerhedskopi

8. Tilføj en SSH-nøgle
Dette er et anbefalet, valgfrit trin for at øge sikkerheden.

- Klik på knappen Tilføj ny for at tilføje en ny SSH-nøgle for at indsende din 🔒offentlige nøgle.
- Generer nøgler ved hjælp af nedenstående metode i overensstemmelse med dit operativsystem.

- Download PuTTy-applikationen.
- Søg efter PuTTygen i menuen Start
- Klik på knappen Generer, og hold musemarkøren over skærmen
- Kopier den offentlige nøgle, og giv den til Vultr
- Indtast nøglepassfrasen
- Gem 🔑Private Key på det mest sikre sted.
- Dette kan bruges til login til SSH eller SFTP.

- Kør:
ssh-keygen -t rsa
. For at få en mere sikker 4096-bit nøgle skal du køre:ssh-keygen -t rsa -b 4096
- Tryk på enter, når du bliver spurgt om, hvor du vil gemme nøglen (dette vil bruge standardplaceringen).
- Indtast en adgangsfrase for din nøgle.
- Kør
cat ~/.ssh/id_rsa.pub
– dette vil give dig nøglen i det korrekte format, som du kan indsætte i kontrolpanelet. - Sørg for at tage en sikkerhedskopi af filen
~/.ssh/id_rsa
. Den kan ikke genoprettes, hvis den går tabt.
Vælg din SSH-nøgle
Når du følger disse trin, knyttes din offentlige nøgle til din nye instans. Derefter vil du kunne logge ind på SSH ved hjælp af både almindelig tekstadgangskode og SSH-nøgle.

9. Link Web Firewall-regel til serverinstans

- Klik på Administrer, og opret en ny firewallgruppe.
- Tillad TCP-port 22 til SSH. 80 for HTTP og 443 HTTPS for både IPV4- og IPV6-regler.
- Når det er gjort, skal du knytte firewallgruppen til din instans.


10. Indtast værtsnavn og etiket og klik på Implementer nu

Nu vil du se installation i forløbet

11. Gå til siden Ny instans
Kopier IP-adresse, brugernavn og adgangskode. Din standardport er 22.

12. Deaktivere login med adgangskode
Af sikkerhedsmæssige årsager anbefales det at deaktivere adgangskodegodkendelse og kun tillade nøglebaseret godkendelse.
- Rediger konfigurationsfilen
nano /etc/ssh/sshd_config
- Find (CTRL + W) og søg
PasswordAuthentication
- Ændre værdien fra ja til nej
- For at gemme typen, CTRL + O
- Genstart SSH-tjenesten ved hjælp af kommandoen
sudo service ssh restart

Fra næste gang kan du kun bruge SSH via nøgle, som vist i videoen.
Til Linux eller Mac skal du bruge Terminal med kommandoen som denne
ssh root@192.168.1.1 -p 22 -i id_rsa
Trin 13. Deaktiver UFW
Når du implementerer en ny instans på VULTR, er UFW (Uncomplicated Firewall) aktiveret, så alle porte er blokeret undtagen SSH-port 22. Dette kan returnere ERR_CONNECTION_REFUSED
-fejl i browseren. For at løse dette vil jeg foreslå at holde UFW deaktiveret.
ufw disable
Nu vil jeg fremskynde den oprindelige proces for implementering af WordPress på LAMP-stakken.
Del C. Implementer WordPress på LAMP Stack
1. Opdatere repositories
Indtast nedenstående kommando, og tryk på enter-tasten
sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot
eller
wget -qO update https://dl.gulshankumar.net/update && chmod +x update
Næste gang skal du altid bruge nedenstående genvejskommando til at opdatere.
./update
2. Installer MariaDB med sikkerhed
Log ind igen, og indtast følgende kommando
sudo apt install mariadb-server -y && sudo mysql_secure_installation
Svar på nedenstående spørgsmål
- Enter current password for root (enter for none): Tryk på Enter-tasten
- Switch to unix_socket authentication [Y/n]: Type n and Press the Enter key.
- Set root password? [Y/n]: Tryk på Enter-tasten
- New password: Copy a strong password from Dashlane Password Generator. To paste a password in the SSH console, right-click and press the Enter key. The password will not be visible on the screen.
- Re-enter new password: Højreklik, og tryk på Enter-tasten igen.
Når du har fået indstillet en adgangskode, vil du se
Password updated successfully! Reloading privilege tables.. ... Success!
Du skal også besvare følgende spørgsmål.
- Remove anonymous users? [Y/n]: Tryk på Enter-tasten
- Disallow root login remotely? [Y/n]: Tryk på Enter-tasten
- Remove test database and access to it? [Y/n]: Tryk på Enter-tasten
- Reload privilege tables now? [Y/n]: Tryk på Enter-tasten
3. Opret en ny database til WordPress
Log ind på MySQL, tryk på enter-tasten, når der bliver spurgt om adgangskode.
mysql -u root -p
Opret en ny database, og giv rettigheder til at bruge dens bruger med adgangskode. Det er her WordPress gemmer alle indlæg, sider, temaer, plugin osv. oplysninger.
create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;
Hvor din …
database er wordpress
brugernavn er gulshan
adgangskoden er 5pY8CKJxDRJEGJEGQNkX7
Tip: Overvej at bruge unikke loginoplysninger
4. Installer PHP 8.2, Apache2 og indstil tilladelser
sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/
Justere PHP-konfiguration
De fleste smarte temaer og plugins kræver en avanceret PHP-konfiguration for at kunne køre. Derfor bør vi foretage disse ændringer.
sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart
5. Installer Wildcard Let’s Encrypt SSL-certifikat
Opret en cloudflare.ini
-fil i mappen /root/.secrets/
.
mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini
Tilføj nedenstående kode og gem ved hjælp af CTRL+O og afslut med CTRL+X
dns_cloudflare_email = "your-cloudflare-email@example.com"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"
Find din Cloudflare e-mail og globale API-nøgle på “Min profil” > API-tokens > Global API-nøgle
chmod 0400 /root/.secrets/cloudflare.ini
Installer Certbot og DNS Authenticator i overensstemmelse med OS og HTTP-webserver
apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare
Få Wildcard SSL-certifikat
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01
Indstil automatisk fornyelse ved hjælp af Cron Job
- Type
crontab -e
- Type 1 til nano editor
- Indtast nedenstående kommando, og gem
0 0 * * * /etc/init.d/apache2 reload >/dev/null 2>&1
Fornyelse af prøven
certbot renew --dry-run
Aktivér disse nyttige modulerc
a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2
6. Opret App Directory for hvert WordPress-websted, du ønsker at installere
mkdir -p /var/www/example.com/public
Dette vil være din dokumentrodssti i din Apache-konfigurationsfil. Grunden til at oprette example.com inden for www er for at holde hvert websted organiseret på en måde. For det andet oprettede jeg også en offentlig mappe med det formål at opbevare alle WordPress-kernefiler der, men wp-config.php
et niveau højere (/var/www/example.com/
).
7. Opret Apache2-konfiguration
Dette er vigtigt, når du skal konfigurere dit domæne, og hvordan Apache2 skal håndtere dine HTTP-forespørgsler.
Slet standardkonfigurationsfiler for serverblokke i Apache2
rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars
Opret nu en ny serverblok konfigurationsfiler. Du skal gøre dette trin hver gang du ønsker at tilføje en ny WordPress på samme server.
Udskift example.com med dit eget domæne, og glem ikke at afslutte konfigurationsfilens navn med .conf-udvidelsen. Ellers vil det ikke fungere.
cd /etc/apache2/sites-available/
nano example.com.conf
- Udskift
example.com
med eget domæne - Indtast nedenstående kode, og tryk på ctrl+o for at gemme og ctrl+x for at afslutte.
##############################################################
#
# NOTES: Kindly make search and replace of example.com to own domain.
#
##############################################################
# We are going to Force HTTPS non-www
# If you want HTTPS www please keep https://www.example.com/ in the last line.
# Or you may face redirect loop issue.
<VirtualHost *:80>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Protocols h2 h2c http/1.1
DirectoryIndex index.php index.html
# Recommended for Cloudflare users
# RemoteIPHeader X-Forwarded-For
# Document Root Path (Pay attention to this path to avoid 404)
DocumentRoot /var/www/example.com/public
# Logs Path is /var/log/apache2/example.com-access.log
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
# Let's Encrypt SSL
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# Allow use of .htaccess file to override configuration
<Directory /var/www/example.com/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Block PHP execution inside Uploads Directory
<Directory /var/www/example.com/public/wp-content/uploads>
<Files *.php>
deny from all
</Files>
</Directory>
# Protect wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# HTTP Auth for additional security
# If you want HTTP Auth for WordPress Login page then consider uncommenting this block of code.
# If you do so you must generate .htpasswd file as well.
# <Files wp-login.php>
# AuthName "Admins Only"
# AuthUserFile /var/www/.htpasswd
# AuthType basic
# require user gulshan
# <RequireAny>
# Require ip 127.0.0.1
# Require valid-user
# </RequireAny>
# </Files>
# Block XML-RPC to prevent DDoS Attack.
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# Handle PHP execution
<FilesMatch ".php$">
SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
Tryk på for at gemme CTRL+O and Enter key. Afslut derefter nano editor ved at bruge kommandoen CTRL+X.
For at aktivere serverblokken skal du indtaste kommandoen
Før du kører nedenstående kommando, skal du erstatte example.com
med dit eget domæne.
a2ensite example.com.conf
Testkonfiguration (valgfri)
apache2 -t
Genstart og opdatering
service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y
8. Installer WordPress-filer
Download WordPress-filer i mappen /var/www/example.com/public/
og indstil tilladelser.
cd /var/www/example.com/public && wget https://da.wordpress.org/latest-da_DK.tar.gz && tar -xvzf latest-da_DK.tar.gz && mv -v wordpress/* /var/www/example.com/public && rm -rf index.nginx-debian.html latest-da_DK.tar.gz wordpress && chown -R www-data:www-data /var/www/ && sudo chmod -R 755 /var/www
Du kan opdatere tilladelsen i fremtiden ved at bruge nedenstående kommando. Dette vil sætte www-data for alt i mappen /var/www/
chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
9. Opdatering af DNS
Hvis du hoster WordPress lokalt, ønsker at omgå proxy eller ønsker at udføre nul nedetidsmigrering, er dette trin nyttigt. Jeg foretrækker generelt i tilfælde af Static WordPress Dev-området. 😉
- Der er to måder at pege på DNS på. Hvis du migrerer webstedet til Vultr og først vil teste lokalt, skal du redigere din hosts-fil og pege der.c
Til Windows
- Gå til egenskaberne for C:\Windows\System32\drivers\etc\hosts
- Ændre tilladelsen “Sikkerhed” til fuld kontrol for dit nuværende brugernavn
- Nu kan du frit redigere hosts-filen under din System-bruger og gemme den.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com
Et eksempel, sådan skal det se ud
Til Mac eller Linux
Du kan redigere hosts-filen ved hjælp af denne kommando under sudo brugeren.
sudo nano /etc/hosts
Opdatering af DNS med Cloudflare
- Hvis alt ser perfekt ud, og du ønsker at gøre dit websted live, skal du logge ind på Cloudflare DNS og opdatere den nye IP.
Record Type | Name | Value |
---|---|---|
A | @ | IPV4 |
AAAA | @ | IPV6 |
CNAME | www | example.com |
hvor @ angiver roddomænet example.com
9. Besøg dit domænenavn for at konfigurere WordPress
Hvis du ønsker at beholde domænet for din WordPress-version uden for www, skal du besøge ikke-www-versionen ellers www.
https://example.com
- Angiv loginoplysninger til databasen for at begynde WordPress-opsætning
- Kør installation
- Udfyld de grundlæggende oplysninger om dit nye websted, og installer WordPress.
- Log ind på WordPress
Andre nødvendige ting
- Forøg swap-hukommelsen for at håndtere pludselig belastning
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- Sørg for at bruge et plugin til sidecaching for at holde serverbelastningen under kontrol. Da dette er en LAMP stack, vil jeg anbefale dig WP Fastest Cache.
- Opbevar altid en sikkerhedskopi.
- Brug SMTP-plugin Tjenester til at sende udgående e-mail fra WordPress, ellers kan du ikke modtage meddelelser om nulstilling af adgangskode, kontaktformular 7-meddelelser.
Endelig er WordPress-installationen afsluttet.
Jeg sætter stor pris på din værdifulde tid til at læse denne artikel. Vi ses i den næste vejledning!