GNU/Linux >> Tutoriels Linux >  >> Debian

Installer WordPress avec Nginx sur Debian 10/11

Aperçu

L'article suivant présentera les étapes d'installation de WordPress avec Nginx sur Debian 10 et sur Debian 11 également. Sur un seul serveur Debian, nous allons installer et configurer la pile LEMP (Nginx, PHP et MariaDB) et à la fin installer et exécuter WordPress. En d'autres termes, notre serveur Debian unique exécutera le serveur Web Nginx, le serveur MariaDB et exécutera WordPress ensemble.

WordPress peut également être configuré et exécuté sur plusieurs serveurs distincts (serveur Web distinct et serveur de base de données distinct). Si vous avez besoin d'une telle configuration (avec une base de données distante), vous pouvez vérifier comment la configurer sur ce post. Une autre méthode d'installation et d'exécution de WordPress consiste à utiliser Docker, qui est couvert dans cet article.

Installez les bibliothèques et packages nécessaires

sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl mariadb-server

Une fois l'installation terminée, démarrez Nginx et MariaDB s'ils ne sont pas en cours d'exécution et activez-les pour qu'ils démarrent automatiquement au démarrage.

sudo systemctl start nginx.service

sudo systemctl enable nginx.service

sudo systemctl start mariadb.service

sydo systemctl enable mariadb.service

Configurer la base de données

Démarrez et configurez le serveur mariadb avec une base de données, un utilisateur et des privilèges d'octroi.

Avant cela, il est d'abord recommandé d'exécuter l'installation sécurisée :

sudo mysq_secure_installation

Lorsque vous êtes invité à modifier le mot de passe root, vous pouvez l'ignorer, mais cela dépend de vous, vous devez ou non modifier le mot de passe root. Avec le reste des questions posées, vous pouvez continuer et choisir l'option Oui. Similaire comme dans l'image ci-dessous :

puis accédez au serveur de base de données et créez la base de données, un utilisateur et définissez les privilèges

sudo mysql -u root -p


CREATE DATABASE sampledbwp;


GRANT ALL ON sampledbwp.* TO 'sample-admin'@'localhost' IDENTIFIED BY 'SamplePassword1';


quit

Avec ces commandes, nous avons créé la base de données - sampledbwp, créé l'utilisateur sample-admin sur localhost et accordé tous les privilèges pour lire et écrire la base de données que nous venons de créer.

Installer et configurer WordPress

Accédez au répertoire suivant et téléchargez et extrayez l'installation de WordPress :

cd /var/www/html/

sudo wget https://wordpress.org/latest.tar.gz

sudo tar -xzfv latest.tar.gz

Basculez vers le répertoire wordpress et renommez le fichier wp-config-sample.php en wp-config.php

cd wordpress

mv wp-config-sample.php wp-config.php

Nous allons maintenant éditer le fichier de configuration de WordPress :

sudo nano wp-config.php

Dans le fichier de configuration, nous devons ajouter l'utilisateur de la base de données, le nom de la base de données et le mot de passe que nous avons créés sur le serveur MariaDB et ajouter des clés de sel à partir de - https://api.wordpress.org/secret-key/1.1/salt/ . Reportez-vous à l'exemple d'image ci-dessous :

Enregistrez et quittez.

Définissez les autorisations correctes sur l'installation de WordPress afin d'être accessible depuis Internet :

sudo chown -R www-data:www-data /var/www/html/wordpress

sudo chmod -R 755 /var/www/html/wordpress

Configurer Nginx

Passons à la configuration du serveur Web nginx. La première étape consiste à créer le fichier de configuration pour notre site Web WordPress. Exécutez la commande suivante pour démarrer l'éditeur de texte :

sudo nano /etc/nginx/sites-available/wordpress.conf

Vous trouverez ci-dessous l'exemple de configuration :

server {
        listen 80;
        listen [::]:80;
        root /var/www/html/wordpress;
        index  index.php index.html index.htm;
        server_name mysite.com www.mysite.com;

        error_log /var/log/nginx/mysite.com_error.log;
        access_log /var/log/nginx/mysite.com_access.log;
        
        client_max_body_size 100M;
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

Enregistrez et quittez.

Remarque – Vérifiez et confirmez la racine de votre installation wordpress et la version php-fpm exécutée sur votre serveur. Ceux-ci doivent correspondre dans le fichier de configuration.

Au final, cela devrait ressembler à ceci :

La configuration par défaut reste toujours dans le Nginx et est active. Tant qu'elle n'est pas supprimée, votre configuration n'aura pas lieu, ce qui signifie que votre site Web WordPress ne sera pas accessible, nous devons donc supprimer la configuration par défaut :

sudo rm /etc/nginx/sites-available/default

sudo rm /etc/nginx/sites-enabled/default

Créez le lien symbolique pour notre nouvelle configuration wordpress Nginx :

sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/

Après cela, revérifiez la configuration avec :

sudo nginx -t

et redémarrez Nginx

sudo systemctl restart nginx

Testez si WordPress est activé dans le navigateur en y accédant avec l'adresse IP du serveur ou avec l'URL (si vous avez attribué le nom de domaine) et terminez l'installation :

Et c'est tout. Vous avez maintenant un site Web WordPress opérationnel.

Quelques suggestions et conseils de sécurité

Ici, je voudrais souligner quelques suggestions pour une installation WordPress plus sûre et plus sécurisée et comment la maintenir.

  • La première suggestion est de supprimer le fichier xmlrpc.php

Ce fichier n'est pas un point crucial de WordPress et WordPress peut fonctionner sans ce fichier sans aucun problème. Le fichier Xmlrpc a été utilisé aux premiers stades de WordPress en tant que service, où les clients de blog se connectent à WordPress via xmlrpc pour publier de nouveaux contenus (en bref). Ce fichier est maintenant à l'origine de nombreuses et diverses attaques malveillantes (DDoS, force brute, etc.).

Dans cet exemple, nous pouvons supprimer ce fichier avec la commande :

sudo rm /var/www/html/wordpress/xmlrpc.php

Une remarque également - à chaque mise à jour/mise à niveau de WordPress, ce fichier réapparaîtra, il est donc nécessaire de répéter l'action à chaque mise à jour de WordPress.

  • Supprimer wp-config-sample.php

Dans cet article, nous avons renommé ce fichier en wp-config.php. Nous avons procédé de cette manière puisque nous avons ajouté manuellement les informations d'identification de la base de données pour que WordPress se connecte au serveur de base de données et avons également ajouté les clés de sel. Ce fichier réapparaît également à chaque mise à jour/mise à niveau de WordPress et il est suggéré de le supprimer car il est exposé à de nombreuses attaques malveillantes pouvant entraîner la fermeture de votre site.

  • Masquer l'URL wp-login et ajouter une connexion 2FA

Il est fortement suggéré de modifier l'URL de connexion par défaut afin d'empêcher les attaques par force brute et d'ajouter une connexion d'authentification à deux facteurs. Vous pouvez le faire facilement avec des plugins tels que – WPS Hide login et miniOrange 2-Factor. De plus, WordPress a également sa connexion 2FA par défaut.

  • Ajouter un plug-in de pare-feu et ne pas utiliser de compte avec le nom d'utilisateur admin

L'un des premiers plugins qu'il est fortement suggéré d'installer est un plugin de pare-feu, tel que - Wordfence ou Sucuri

Résumé

Nous avons couvert les étapes d'installation de WordPress avec Nginx sur Debian 10 et également sur Debian 11. Ce scénario où WordPress est servi avec sa base de données sur une seule machine serveur est une bonne option si vous débutez également maintenant et que vous n'avez pas de budget supplémentaire à consacrer à l'infrastructure ou si vous êtes un débutant qui essaie WordPress pour la première fois sur un hébergement cloud/dédié/VM/VPS ou juste à des fins de test.

Mais un inconvénient que cela peut causer au fil du temps est que si vous avez toujours ce scénario en production, il peut devenir assez difficile de maintenir le serveur lorsque des mises à niveau doivent être appliquées car cela peut entraîner des temps d'arrêt. C'est pourquoi il est courant d'avoir au moins deux serveurs et de séparer l'installation de WordPress en ayant sur un serveur uniquement le serveur Web (Nginx ou Apache) et l'installation de WordPress et l'autre le serveur de base de données (MariaDB, MySQL). Le processus de configuration pour ce type d'environnement, vous pouvez le vérifier sur ce post.

Merci beaucoup pour votre temps…


Debian
  1. Comment installer Nginx sur Debian 8 (Jessie)

  2. Comment installer Nginx sur Debian 9 (Stretch)

  3. Comment installer Webmin sur Debian 10/11

  4. Installer Plone avec Nginx sur un VPS Debian 8

  5. Comment installer WordPress avec Nginx sur Debian 10

Comment installer le dernier PHP 8.1 sur Debian 11/10

Comment installer le serveur SVN sur Debian 11/10

Comment installer Nginx avec PHP-FPM sur Debian 10

Comment installer WordPress avec LEMP Stack sur Debian 11 Bullseye

Comment installer WordPress avec LAMP Stack sur Debian 11 Bullseye

Comment installer phpMyAdmin avec Nginx sur Debian 11