WordPress installeren met Ubuntu 22.04, Apache2, MariaDB en PHP 8.2-FPM

Als u van plan bent WordPress te hosten op Cloud Server, zal deze gids nuttig voor u zijn. LAMP staat voor Linux, Apache, MariaDB en PHP software die samen bekend staan als LAMP stack.

WordPress Apache2 Install

Voor- en nadelen van het kiezen van Apache webserver boven NGINX

  • Voors: Het ondersteunt .htaccess bestand dat veel gebruikt wordt door Page Caching & Optimization. Dit is een geweldige keuze voor niet-coders.
  • Nadelen: Het is iets minder performant dan NGINX, maar dat kan worden beheerd met APO. Voor een site met veel verkeer, LEMP stack is de beste keuze.

Volg deze 3 stappen en bekijk de video. Hulp nodig? Contacteer mij. 😊

  1. Cloudflare DNS instellen
  2. Ubuntu Server krijgen
  3. LAMP Stack implementeren

Voordat u aan de slag gaat, is hier een snelle tip. Gebruik de Extensie Zoeken en Vervangen om example.com in bulk te veranderen in uw eigen domein in deze webpagina.

Tijdbesparende tip voor gebruikers van Google Chrome.
search replace

Deel A: Cloudflare Nameservers actief houden

We zullen Cloudflare DNS gebruiken voor het verkrijgen van Let’s Encrypt Wildcard SSL-certificaat. Voltooi deze stap eerst om te genieten van een migratie zonder downtime.

Huidige nameservers controleren

Deel B: Maak een Ubuntu Server 22.04 LTS Server klaar

Ubuntu
Ubuntu logo

1. Meld je aan bij Vultr en pak $100 gratis credits (14 dagen geldig)

Als iemand die zoveel Cloud server bedrijven heeft geprobeerd, zegt mijn ervaring dat je niet verkeerd kan gaan met Vultr. Deze jongens zijn oprecht en zorgzaam als het gaat om ondersteuning en diensten.

vultr

⚡ Prestaties

  • 3rd Generation AMD EPYC™
  • NVME / SSD
  • Tot 4 GHz CPU
  • Tot 5Gbps netwerksnelheid
  • Datacentrum in America, Europe, Asia, Austraillia
  • IPV6 klaar

💡 Kenmerken

  • Dashboard voor beginners
  • One-click to Snapshot
  • Automatische back-up (Betaald)
  • Gratis Cloud Firewall
  • DDoS bescherming (Betaald)
  • 100% KVM Virtualization

⚙ Steun

  • PayPal/Card
  • 24/7 Ticketondersteuning
  • Documentatie

2. Deloy een nieuwe server

Klik gewoon op de plusknop om te beginnen

Deploy New Server

3. Kies type server

Kies Cloud Compute voor gedeelde CPU tegen betaalbare prijzen.

Cloud Compute

Hierna kunt u de AMD High Performance of Intel High Frequency optie selecteren in CPU & Storage Technology. Het heeft de snelste CPU en NVMe schijf ooit. Als het budget minder is, kies dan voor het Regular plan met Intel CPU waarin u een SSD schijf krijgt.

CPU Technology

4. Kies een serverlocatie

Vultr biedt servers aan in de vier continenten. Voor de laagste latentie en de beste prestaties moet u altijd een regio kiezen die het dichtst bij uw publiek ligt.

vultr server region

Als bijvoorbeeld 99% van het verkeer uit India komt, kies dan de dichtstbijzijnde regio – Mumbai.

Asia

  • Mumbai, India
  • Delhi NCR, India
  • Bengaluru, India
  • Singapore, Singapore
  • Tokyo, Japan
  • Seoul, South Korea

America

  • Miami, United States
  • Atlanta, United States
  • Chicago, United States
  • Dallas, United States
  • Honolulu, United States
  • Los Angeles, United States
  • Mexico City, Mexico
  • New York (NJ), United States
  • Seattle, United States
  • Silicon Valley, United States
  • Toronto, Canada, São Paulo

Europe

  • Stockholm, Sweden
  • London, United Kingdom
  • Amsterdam, Netherlands
  • Frankfurt, Germany
  • Madrid, Spain
  • Paris, France
  • Warsaw, Poland

Australlia

  • Sydney, Australlia
  • Melbourne, Australia

5. Selecteer de serverafbeelding > Besturingssysteem > Ubuntu 22.04 LTS x64

ubuntu os

Long-term support (LTS) is een beleid voor het beheer van de levenscyclus van een product waarbij een stabiele release van computersoftware gedurende een langere periode dan de standaardeditie in stand wordt gehouden.

ubuntu releases 2

6. Kies een servergrootte

server size

$6/mo plan zou een geweldig startpunt zijn voor een nieuwe blog. U kunt altijd upgraden naar behoefte.

Tip: Als u migreert, controleer dan de Totale installatiegrootte in Site health info.

Site health info

7. IPV6 inschakelen, back-up

vultr enable backup ipv6

8. Een SSH-sleutel toevoegen

Dit is een aanbevolen, optionele stap voor een betere beveiliging.

Add SSH key
  • Klik op de knop Nieuw toevoegen om een nieuwe SSH-sleutel toe te voegen om uw 🔒Publieke sleutel in te dienen.
  • Genereer sleutels met onderstaande methode volgens uw OS.
win os
  • Download PuTTy toepassing.
  • Zoek naar PuTTygen in het menu Start
  • Klik op de knop Genereren en laat de muisaanwijzer zweven
  • Kopieer publieke sleutel en verstrek aan Vultr
  • Sleutelwachtwoord invoeren
  • Sla 🔑Privésleutel op de veiligste locatie op.
  • Dit kan worden gebruikt voor het inloggen op SSH or SFTP.
linux 2
  • Voer uit: ssh-keygen -t rsa. Voor een veiligere 4096-bits sleutel voert u uit: ssh-keygen -t rsa -b 4096
  • Druk op enter wanneer u wordt gevraagd waar u de sleutel wilt opslaan (dit zal de standaardlocatie gebruiken).
  • Voer een wachtwoord voor uw sleutel in.
  • Voer cat ~/.ssh/id_rsa.pub uit – dit geeft u de sleutel in het juiste formaat om in het controlepaneel te plakken.
  • Zorg ervoor dat u een back-up maakt van het bestand ~/.ssh/id_rsa. Dit kan niet worden hersteld als het verloren gaat.

Selecteer uw SSH-sleutel

Het volgen van deze stappen zal uw publieke sleutel aan uw nieuwe Instance koppelen. Daarna kunt u inloggen op SSH met zowel een wachtwoord in gewone tekst als een SSH-sleutel.

select SSH public key

9. Web Firewall regel koppelen aan Server Instance

Firewall
  1. Klik op Beheer en maak een nieuwe Firewall-groep aan.
  2. Sta TCP-poort 22 voor SSH toe. 80 voor HTTP en 443 HTTPS voor zowel IPV4 als IPV6 regels.
  3. Koppel de Firewall groep aan uw Instance.
firewall status
Accepteer alleen TCP-verbindingen van 22, 80, 443
Link Firewall Group
Firewallregel koppelen aan nieuwe instantie

10. Voer hostnaam en label in en klik op Nu implementeren

server hostname label

Nu ziet u het installeren in de voortgang

Instance Installing

11. Ga naar de New Instance pagina

Kopieer IP adres, gebruikersnaam en wachtwoord. Uw standaardpoort is 22.

new instance info page

12. Wachtwoordaanmelding uitschakelen

Om veiligheidsredenen is het raadzaam de wachtwoordverificatie uit te schakelen en alleen verificatie op basis van sleutels toe te staan.

  1. Het configuratiebestand bewerken nano /etc/ssh/sshd_config
  2. Zoek (CTRL + W) en zoek PasswordAuthentication
  3. Waarde veranderen van ja naar nee
  4. Om op te slaan typt u, CTRL + O
  5. Herstart de SSH-dienst met het commando sudo service ssh restart
disable password auth
Wachtwoordverificatie uitschakelen

Vanaf de volgende keer kunt u SSH alleen via een sleutel gebruiken, zoals in de video wordt getoond.

Voor Linux of Mac gebruikt u Terminal met een commando als dit

ssh root@192.168.1.1 -p 22 -i id_rsa

Stap 13. UFW uitschakelen

Wanneer u een nieuwe instantie implementeert bij VULTR wordt deze geleverd met UFW (Uncomplicated Firewall) ingeschakeld die alle poorten geblokkeerd houdt behalve de SSH-poort 22. Dit kan een ERR_CONNECTION_REFUSED fout opleveren in de browser. Om dit te verhelpen, stel ik voor UFW uitgeschakeld te houden.

ufw disable

Nu zal ik het oorspronkelijke proces voor het inzetten van WordPress op de LAMP-stack versnellen.

Deel C. WordPress implementeren op LAMP Stack

1. Repositories bijwerken

Type onderstaand commando en druk op enter

sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot

of

wget -qO update https://dl.gulshankumar.net/update && chmod +x update

Gebruik de volgende keer altijd onderstaande snelkoppeling om te updaten.

./update

2. MariaDB installeren met beveiliging

Log opnieuw in en voer het volgende commando in

sudo apt install mariadb-server -y && sudo mysql_secure_installation

Beantwoord onderstaande vragen

  • Enter current password for root (enter for none): Druk op de Enter toets
  • Switch to unix_socket authentication [Y/n]: Antwort N
  • Set root password? [Y/n]: Druk op de Enter-toets.
  • New password: Typ uw wachtwoord, u kunt Dashlane gebruiken om het te genereren. Klik rechts op plakken.
  • Re-enter new password: Voer uw wachtwoord opnieuw in.

Na succesvolle instelling van het wachtwoord ziet u

Password updated successfully!
Reloading privilege tables..
... Success!

Je moet ook de volgende vragen beantwoorden.

Remove anonymous users? [Y/n]: Druk op Y en voer in
Disallow root login remotely? [Y/n]: Druk op Y en voer in
Remove test database and access to it? [Y/n]: Druk op Y en voer in
Reload privilege tables now? [Y/n]: Druk op Y en voer in

3. Maak een nieuwe database voor WordPress

Log in op MySQL, druk op enter wanneer om een wachtwoord wordt gevraagd.

mysql -u root -p

Maak een nieuwe Database, en geef privileges aan de gebruiker met wachtwoord. Dit is waar WordPress alle berichten, pagina’s, thema’s, plugin, etc informatie opslaat.

create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;

Waar uw …
database is wordpress
gebruikersnaam is gulshan
wachtwoord is 5pY8CKJxDRJEGQNkX7

Tip: Overweeg het gebruik van unieke aanmeldingsgegevens

4. Installeer PHP 8.2, Apache2 en stel Toestemming in

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/

Tweak PHP configuratie

De meeste fancy thema’s en plugin vereisen high-end PHP configuratie om te kunnen draaien. Daarom moeten we deze wijzigingen aanbrengen.

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. Wildcard Let’s Encrypt SSL-certificaat installeren

Maak een cloudflare.ini bestand aan in de map /root/.secrets/.

mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini

Voeg onderstaande code toe en sla op met CTRL+O en sluit af met CTRL+X

dns_cloudflare_email = "your-cloudflare-email@example.com"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"

Vind uw Cloudflare e-mail en Global API key bij “My Profile” > API Tokens > Global API Key

chmod 0400 /root/.secrets/cloudflare.ini

Installeer Certbot en DNS Authenticator volgens OS en 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

Wildcard SSL Certificaat aanvragen

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01

Automatische verlenging instellen met Cron Job

  • Type crontab -e
  • Type 1 voor nano-editor
  • Voer onderstaand commando in en sla op
0 0 * * *  /etc/init.d/apache2 reload >/dev/null 2>&1

Test verlenging

certbot renew --dry-run

Activeer deze nuttige modules

a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2

6. Maak App Directory aan voor elke WordPress site die u wilt installeren

mkdir -p /var/www/example.com/public

Dit wordt uw Document Root-pad in uw Apache Configuratiebestand. De reden om example.com binnen www te plaatsen is om elke site georganiseerd te houden. Ten tweede heb ik ook een openbare map gemaakt om alle WordPress kernbestanden daar te houden, maar wp-config.php een niveau hoger (/var/www/example.com/).

7. Apache2 configuratie aanmaken

Dit is belangrijk wanneer u uw domein moet configureren, hoe Apache2 uw HTTP-verzoeken moet afhandelen.

Standaard configuratiebestanden voor serverblokken van Apache2 verwijderen

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

Maak nu een nieuw serverblok configuratiebestanden. Je moet deze stap elke keer doen als je een nieuwe WordPress op dezelfde server wilt toevoegen.

Vervang example.com door uw eigen domein en vergeet niet de naam van het configuratiebestand te eindigen met de extensie .conf. Anders werkt het niet.

cd /etc/apache2/sites-available/
nano example.com.conf
  1. Vervang example.com door uw eigen domein
  2. Voer onderstaande code in en druk op CTRL+O om op te slaan en CTRL+X om af te sluiten.
##############################################################
#                                                               
# OPMERKINGEN: Zoek en vervang example.com door het eigen domein.
#                                                                
##############################################################


# We gaan HTTPS non-www forceren
# Als je HTTPS www wilt, hou dan https://www.example.com/ in de laatste regel.
# 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
    
   # Aanbevolen voor Cloudflare gebruikers
   # RemoteIPHeader X-Forwarded-For
   
   # Document Root Path (let op dit pad om 404 te voorkomen)
   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
   
   # Gebruik van .htaccess bestand toestaan om configuratie te overschrijven
   <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>
   
   # Bescherm wp-config.php
   <files wp-config.php>
      order allow,deny
      deny from all
   </files>

# HTTP Auth voor extra veiligheid
# Als je HTTP Auth wilt voor WordPress Login pagina, overweeg dan om dit blok code te verwijderen.
# Als je dat doet moet je ook een .htpasswd bestand genereren.
  # <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>
   
   # XML-RPC blokkeren om DDoS-aanval te voorkomen.
   <Files xmlrpc.php>
      Order Deny,Allow
      Deny from all
   </Files>
   
   # PHP-uitvoering afhandelen
   <FilesMatch ".php$">
      SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
   </FilesMatch>
</VirtualHost>

Om te besparen, druk op CTRL+O en Enter key. Sluit dan nano-editor af met command CTRL+X.

Om het serverblok te activeren, voer het commando

Voordat u onderstaande opdracht uitvoert, moet u example.com vervangen door uw eigen domein.

a2ensite example.com.conf

Testconfiguratie (optioneel)

apache2 -t

Opnieuw opstarten en bijwerken

service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y

8. WordPress bestanden installeren

Download WordPress bestanden in /var/www/example.com/public/ directory en stel toestemming in.

cd /var/www/example.com/public/ && wget https://nl.wordpress.org/latest-nl_NL.tar.gz && tar -xvzf latest-nl_NL.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf index.nginx-debian.html latest-nl_NL.tar.gz wordpress && chown -R www-data:www-data /var/www/ && sudo chmod -R 755 /var/www

Om de toestemming in de toekomst bij te werken, gebruikt u onderstaand commando. Dit zal www-data instellen voor alles in /var/www/ directory

chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

9. DNS bijwerken

Als u WordPress lokaal host, een proxy wilt omzeilen of een migratie zonder downtime wilt uitvoeren, is deze stap nuttig. Ik geef over het algemeen de voorkeur in het geval van Static WordPress Dev area. 😉

  • Er zijn twee manieren om DNS aan te wijzen. Als u een site migreert naar Vultr en eerst lokaal wilt testen, bewerk dan uw hosts file en wijs daarheen.

Voor Windows

  • Ga naar de eigenschappen van ‪‪C:\Windows\System32\drivers\etc\hosts
  • Verander “Beveiliging” toestemming naar volledige controle voor uw huidige Gebruikersnaam
  • Nu kunt u het hosts-bestand vrij bewerken onder uw systeemgebruiker en opslaan.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com

Een voorbeeld, zo moet het eruit zien

Voor Mac of Linux

U kunt het hosts-bestand bewerken met dit commando onder sudo gebruiker.

sudo nano /etc/hosts

DNS bijwerken met Cloudflare

  • Als alles er perfect uitziet en u uw site live wilt zetten, logt u in bij Cloudflare DNS en werkt u het nieuwe IP-adres bij.
A@IPV4
AAAA@IPV6
CNAMEwwwexample.com

waarbij @ staat voor het hoofddomein example.com

9. Bezoek uw domeinnaam om WordPress in te stellen

Als u een niet-www versie domein voor uw WordPress wilt behouden, bezoek dan niet-www versie anders www.

https://example.com
  • Zorg voor Database login gegevens om te beginnen met de WordPress Setup
  • Installatie uitvoeren
  • Vul de basisgegevens van uw nieuwe site in en installeer WordPress.
  • Inloggen op WordPress

Andere noodzakelijke dingen

  • Verhoog het wisselgeheugen om plotselinge belasting op te vangen
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
  • Zorg ervoor dat je een Page Caching plugin gebruikt om de serverbelasting onder controle te houden. Aangezien dit een LAMP-stack is, zou ik u WP Fastest Cache aanraden.
  • Bewaar altijd een back-up.
  • Gebruik SMTP plugin Services voor het verzenden van uitgaande e-mail van WordPress anders kunt u geen wachtwoord reset link, contactformulier 7 berichten ontvangen.

Eindelijk is de installatie van WordPress voltooid.

Ik stel uw kostbare tijd voor het lezen van dit artikel zeer op prijs. Tot ziens in de volgende tutorial!

Wil je meer?
Stel je voor dat je elke dag tutorials krijgt! Dat is echt geweldig. Schrijf je nu in.

Plaats een reactie