Installer WordPress med Ubuntu 22.04, Apache2, MariaDB og PHP 8.2-FPM

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. 😊

  1. Opsætning af Cloudflare DNS
  2. Få Ubuntu Server
  3. Implementering af LAMP-stakken

Før du går i gang, har du et hurtigt tip. Brug Udvidelsen Søg og erstat til at ændre example.com til dit eget domæne på denne webside.

Et tidsbesparende tip til Google Chrome-brugere.
search replace

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

Del B: Gør en Ubuntu Server 22.04 LTS Server klar

Ubuntu
Ubuntu logo

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.

vultr

⚡ 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

Deploy New Server

3. Vælg servertype

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

Cloud Compute

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.

CPU Technology

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.

vultr server region

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

ubuntu os

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

ubuntu releases 2

6. Vælg en serverstørrelse

server size

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.

Site health info

7. Aktiver IPV6, sikkerhedskopi

vultr enable backup ipv6

8. Tilføj en SSH-nøgle

Dette er et anbefalet, valgfrit trin for at øge sikkerheden.

Add SSH key
  • 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.
win os
  • 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.
linux 2
  • 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.

select SSH public key

9. Link Web Firewall-regel til serverinstans

Firewall
  1. Klik på Administrer, og opret en ny firewallgruppe.
  2. Tillad TCP-port 22 til SSH. 80 for HTTP og 443 HTTPS for både IPV4- og IPV6-regler.
  3. Når det er gjort, skal du knytte firewallgruppen til din instans.
firewall status
Accepterer kun TCP-forbindelser fra 22, 80, 443
Link Firewall Group
Link firewallregel til ny instans

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

server hostname label

Nu vil du se installation i forløbet

Instance Installing

11. Gå til siden Ny instans

Kopier IP-adresse, brugernavn og adgangskode. Din standardport er 22.

new instance info page

12. Deaktivere login med adgangskode

Af sikkerhedsmæssige årsager anbefales det at deaktivere adgangskodegodkendelse og kun tillade nøglebaseret godkendelse.

  1. Rediger konfigurationsfilen nano /etc/ssh/sshd_config
  2. Find (CTRL + W) og søg PasswordAuthentication
  3. Ændre værdien fra ja til nej
  4. For at gemme typen, CTRL + O
  5. Genstart SSH-tjenesten ved hjælp af kommandoen sudo service ssh restart
disable password auth
Deaktivere adgangskodegodkendelse

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 [email protected] -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 = "[email protected]"
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
  1. Udskift example.com med eget domæne
  2. 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 TypeNameValue
A@IPV4
AAAA@IPV6
CNAMEwwwexample.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!

Skriv en kommentar