GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer WordPress avec Nginx et Lets Encrypt SSL sur CentOS 8

WordPress est un système de gestion de contenu gratuit, open-source et le plus utilisé au monde. Il s'agit d'une plate-forme de blogs très puissante qui peut être utilisée pour héberger un blog, un site Web de portefeuille et une plate-forme de commerce électronique. WordPress utilise Apache/Nginx comme serveur Web, MariaDB/MySQL comme base de données et traitement PHP. WordPress fournit un grand nombre de thèmes et de plugins qui peuvent être utilisés pour personnaliser ses fonctionnalités.

Dans ce tutoriel, nous expliquerons comment installer WordPress avec Nginx sur le serveur CentOS 8, puis nous sécuriserons le serveur en utilisant un certificat SSL Let's Encrypt gratuit.

Prérequis

  • Un serveur exécutant CentOS 8.
  • Un mot de passe root est configuré sur votre serveur.
  • Un nom de domaine valide pointe vers l'adresse IP de votre serveur.

Mise en route

Par défaut, SELinux est activé sur le serveur CentOS 8. Vous devrez donc d'abord le désactiver.

Vous pouvez le faire en éditant le fichier /etc/selinux/config :

nano /etc/selinux/config

Effectuez les modifications suivantes :

SELINUX=disabled

Enregistrez et fermez le fichier. Ensuite, redémarrez votre serveur pour appliquer les modifications.

Installer le serveur LEMP

Avant de commencer, vous devrez installer Nginx, MariaDB, PHP et d'autres packages requis sur votre serveur. Vous pouvez tous les installer en exécutant la commande suivante :

yum install nginx php php-cli php-curl php-zip php-mbstring php-mysqlnd php-fpm curl unzip mariadb-server -y

Une fois tous les packages installés, démarrez Nginx, PHP-FPM, le service MariaDB et activez-les après le redémarrage du système :

systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpm

Vous pouvez également vérifier l'état du service PHP-FPM avec la commande suivante :

systemctl status php-fpm

Vous devriez obtenir le résultat suivant :

? php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago
 Main PID: 1475 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 5060)
   Memory: 28.5M
   CGroup: /system.slice/php-fpm.service
           ??1475 php-fpm: master process (/etc/php-fpm.conf)
           ??1478 php-fpm: pool www
           ??1479 php-fpm: pool www
           ??1480 php-fpm: pool www
           ??1481 php-fpm: pool www
           ??1482 php-fpm: pool www

Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager...
Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer la base de données WordPress

Par défaut, le serveur MariaDB n'est pas sécurisé. Vous devrez donc d'abord le sécuriser. Vous pouvez le sécuriser avec la commande suivante :

mysql_secure_installation

Répondez à toutes les questions comme indiqué ci-dessous :

Enter current password for root (enter for none):
Set root password? [Y/n] n
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

Une fois sécurisé, vous devriez obtenir le résultat suivant :

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Ensuite, connectez-vous au shell MariaDB avec la commande suivante :

mysql -u root -p

Fournissez votre mot de passe root lorsque vous y êtes invité, puis créez une base de données et un utilisateur pour WordPress avec les commandes suivantes :

MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to 'wpuser'@'localhost' identified by 'password';

Ensuite, videz les privilèges et quittez le shell MariaDB avec la commande suivante :

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

Une fois votre base de données configurée, vous pouvez passer à l'étape suivante.

Télécharger WordPress

Vous pouvez télécharger la dernière version de WordPress avec la commande suivante :

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

Une fois téléchargé, extrayez le fichier téléchargé avec la commande suivante :

tar -xvzf latest.tar.gz

Ensuite, changez la propriété du répertoire wordpress en nginx :

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

Ensuite, changez le répertoire en wordpress et renommez le fichier de configuration par défaut de wordpress :

cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php

Ensuite, modifiez le fichier wp-config.php dans votre éditeur de texte préféré :

nano wp-config.php

Définissez les informations de votre base de données comme indiqué ci-dessous :

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

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

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

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

Enregistrez et fermez le fichier lorsque vous avez terminé.

Configurer Nginx pour WordPress

Ensuite, vous devrez créer un fichier de configuration d'hôte virtuel Nginx pour servir WordPress. vous pouvez le créer avec la commande suivante :

nano /etc/nginx/conf.d/wordpress.conf

Ajoutez les lignes suivantes :

server {
    listen 80;
    server_name example.com;
    root /var/www/html/wordpress;
    index index.php;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

Enregistrez et fermez le fichier. Ensuite, vérifiez le nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarrez le service Nginx pour appliquer les modifications de configuration :

systemctl restart nginx

Accéder au tableau de bord WordPress

WordPress est installé et configuré, il est maintenant temps d'accéder à l'interface Web.

Ouvrez votre navigateur Web et saisissez l'URL http://example.com . Vous serez redirigé vers la page suivante :

Fournissez toutes les informations requises telles que le nom du site, le nom d'utilisateur de l'administrateur, le mot de passe, l'adresse e-mail de l'administrateur et cliquez sur Installer WordPress bouton. Une fois l'installation terminée. Vous devriez voir la page suivante :

Cliquez sur connexion bouton. Vous serez redirigé vers la page de connexion de WordPress :

Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord WordPress sur la page suivante :

Sécuriser WordPress avec Let's Encrypt

Afin de sécuriser votre site WordPress avec le SSL gratuit Let's Encrypt, vous devrez installer le client Certbot Let's Encrypt sur votre système. Par défaut, Certbot n'est pas disponible dans le référentiel par défaut de CentOS 8. Vous devrez donc le télécharger depuis le site officiel de Certbot.

Vous pouvez télécharger et installer Certbot avec les commandes suivantes :

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Maintenant, exécutez la commande suivante pour obtenir et installer un certificat SSL pour votre site Web WordPress.

certbot-auto --apache -d example.com

Il vous sera demandé de fournir une adresse e-mail et d'accepter les conditions d'utilisation. Vous devrez également choisir de rediriger ou non le trafic HTTP vers HTTPS. Veuillez sélectionner l'option appropriée et appuyez sur Entrée. Une fois l'installation terminée avec succès, vous devriez obtenir le résultat suivant :

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-08-14. 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

Configurer le renouvellement automatique Let's Encrypt

Le certificat Let's Encrypt est valable 90 jours. Il est donc recommandé de renouveler le certificat avant son expiration. Vous pouvez configurer la tâche Cron pour renouveler automatiquement le certificat.

Pour cela, créez la crontab avec la commande suivante :

crontab -e

Ajoutez la ligne suivante :

0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew

Enregistrez et fermez le fichier lorsque vous avez terminé.

Conclusion

Dans le didacticiel ci-dessus, nous avons appris à installer et à configurer WordPress avec Nginx sur le serveur CentOS. Nous avons également appris comment sécuriser un site WordPress avec le SSL gratuit Let's Encrypt. J'espère que vous pourrez désormais héberger facilement votre propre site Web WordPress facilement.


Cent OS
  1. Comment installer ownCloud 9.1 avec Nginx et MariaDB sur CentOS 7

  2. Comment installer WordPress avec HHVM et Nginx sur CentOS 7

  3. Comment installer Laravel 5.x avec Nginx et PHP-FPM 7.1 sur CentOS 7

  4. Installez Magento sur CentOS 7, avec Nginx, PHP-FPM et MariaDB

  5. Comment installer Let's Encrypt sur CentOS 8 avec Nginx

Comment installer Drupal avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer ElkArte Forum avec Apache et Lets Encrypt SSL sur CentOS 8

Comment installer Shopware 6 avec NGINX et Lets Encrypt sur CentOS 8

Comment installer PrestaShop avec Apache et Lets Encrypt SSL sur CentOS 8

Comment installer OwnCloud 8 avec Nginx et PHP-FPM sur CentOS 6

Comment installer Let's Encrypt SSL avec Nginx sur CentOS 7