WordPress met Nginx op AlmaLinux 8 installeren

WordPress is een gratis, open-source, en ’s werelds populairste CMS, geheel in PHP gebouwd. Het wordt door duizenden mensen over de hele wereld gebruikt voor het runnen van blogs, bedrijfswebsites, en e-commerce winkels. Het heeft een aantal geweldige functies waaronder, een eenvoudig en gemakkelijk te gebruiken admin paneel, duizenden plugins, een enorme gemeenschap, diepgaande thematisering, aanpassing, en meer.

In deze gids laten we je zien hoe je WordPress met Apache en Let’s Encrypt SSL op AlmaLinux 8 kunt installeren.

Vereisten

  • Een server met AlmaLinux 8.
  • Een geldige domeinnaam gericht met je server IP.
  • Een root wachtwoord is op de server ingesteld.

Installeer een LAMP server

WordPress vereist dat de LAMP server op je server geïnstalleerd is. Je kunt het installeren met het volgende commando:

dnf install httpd mariadb-server php php-mysqlnd php-dom php-simplexml php-xml php-xmlreader php-curl php-exif php-ftp php-gd php-iconv php-json php-mbstring php-posix php-sockets php-tokenizer unzip -y

Nadat je de LAMP server geïnstalleerd hebt, start je de Apache en MariaDB dienst, en zet je ze aan om te starten bij het herstarten van het systeem:

systemctl start mariadb
systemctl start httpd
systemctl enable mariadb
systemctl enable httpd

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer de MariaDB Database

Eerst moet je het MariaDB root wachtwoord instellen en de MariaDB installatie beveiligen. Je kunt dat doen met het volgende commando:

mysql_secure_installation

Beantwoord alle vragen zoals hieronder aangegeven:

Enter current password for root (enter for none): 
Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Als je klaar bent, log je in op MariaDB met het volgende commando:

mysql -u root -p

Zodra je ingelogd bent, maak je een database en een gebruiker voor WordPress:

MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]> CREATE USER `wordpress`@`localhost` IDENTIFIED BY 'password';

Verleen vervolgens alle privileges aan de WordPress database met het onderstaande commando:

MariaDB [(none)]> GRANT ALL ON wordpress.* TO `wordpress`@`localhost`;

Spoel vervolgens de privileges door en verlaat de MariaDB shell met het volgende commando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Als je klaar bent, kun je verder gaan met de volgende stap.

Download WordPress

Verander vervolgens de directory in de Apache web root en download de nieuwste versie van WordPress met het volgende commando:

cd /var/www/html
wget https://wordpress.org/latest.tar.gz

Als de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:

tar -xvzf latest.tar.gz

Verander vervolgens de directory in de wordpress en hernoem het voorbeeld configuratiebestand:

cd wordpress
mv wp-config-sample.php wp-config.php

Bewerk vervolgens het configuratiebestand met het volgende commando:

nano wp-config.php

Definieer je database configuratie zoals hieronder:

/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'wordpress' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

Bewaar en sluit het bestand als je klaar bent en stel dan de juiste toestemming in voor de WordPress directory:

chown -R apache:apache /var/www/html/wordpress

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer Apache voor WordPress

Vervolgens moet je een Apache virtual host configuratiebestand voor WordPress maken. Je kunt het aanmaken met het volgende commando:

nano /etc/httpd/conf.d/wordpress.conf

Voeg de volgende regels toe:

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot "/var/www/html/wordpress"
   ServerName wordpress.example.com
   ErrorLog "/var/log/httpd/example.com-error_log"
   CustomLog "/var/log/httpd/example.com-access_log" combined

<Directory "/var/www/html/wordpress">
   DirectoryIndex index.html index.php
   Options FollowSymLinks
   AllowOverride All
   Require all granted
</Directory>
</VirtualHost>

Sla het bestand op en sluit het af, herstart dan de Apache dienst om de veranderingen toe te passen:

systemctl restart httpd

Je kunt de status van de Apache controleren met het volgende commando:

systemctl status httpd

Je zou de volgende uitvoer moeten krijgen:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-07-09 03:30:47 EDT; 3s ago
     Docs: man:httpd.service(8)
 Main PID: 4153 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 12524)
   Memory: 24.5M
   CGroup: /system.slice/httpd.service
           ??4153 /usr/sbin/httpd -DFOREGROUND
           ??4155 /usr/sbin/httpd -DFOREGROUND
           ??4156 /usr/sbin/httpd -DFOREGROUND
           ??4157 /usr/sbin/httpd -DFOREGROUND
           ??4158 /usr/sbin/httpd -DFOREGROUND

Jul 09 03:30:47 AlmaLinux systemd[1]: Stopped The Apache HTTP Server.
Jul 09 03:30:47 AlmaLinux systemd[1]: Starting The Apache HTTP Server...

Als je klaar bent, kun je verder gaan met de volgende stap.

Beveilig WordPress met Let’s Encrypt SSL

Vervolgens moet je het Certbot programma installeren om de Let’s Encrypt SSL voor WordPress te installeren. Je kunt het installeren met het volgende commando:

dnf install epel-release -y 
dnf install certbot python3-certbot-apache

Verkrijg en installeer vervolgens een SSL certificaat voor je lets domein met het volgende commando:

certbot --apache -d wordpress.example.com

Je wordt gevraagd je email adres op te geven en de dienstverleningsvoorwaarden te accepteren:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for wordpress.example.com
Performing the following challenges:
http-01 challenge for wordpress.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/wordpress.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/wordpress.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wordpress.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [email protected]).


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wordpress.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wordpress.example.com/privkey.pem
   Your certificate will expire on 2022-02-09. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Configureer Firewall

Vervolgens moet je poorten 80 en 443 door de firewalld toelaten. Je kunt ze toestaan met het volgende commando:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https

Herlaad vervolgens de firewalld om de veranderingen toe te passen:

firewall-cmd --reload

Als je klaar bent, kun je verder gaan met de volgende stap.

Toegang tot het WordPress Dashboard

Open vervolgens je webbrowser en ga naar het WordPress admin paneel met de URL https://wordpress.example.com. Je wordt doorverwezen naar de volgende pagina:

Kies taal

Kies je taal en klik op Verder. Je zou de WordPress site configuratie pagina moeten zien:

Details van de site

Geef je site informatie en klik op de knop WordPress installeren. Als de installatie voltooid is, zou je de volgende pagina moeten zien:

WordPress installatie geslaagd

Klik op de knop Inloggen. Je wordt doorverwezen naar de WordPress login pagina:

Log in op WordPress

Geef je admin gebruikersnaam en wachtwoord op en klik op de Login knop. Je zou het WordPress dashboard op de volgende pagina moeten zien:

WordPress Dashboard

Conclusie

Gefeliciteerd! Je hebt WordPress met succes geïnstalleerd met Apache en Let’s Encrypt SSL op AlmaLinux 8. Je kunt nu eenvoudig je eigen website maken met WordPress. Voel je vrij me te vragen als je vragen hebt.