GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installer WordPress sur Ubuntu 18.04 avec Nginx, MariaDB, PHP7.2 (LEMP)

Ce tutoriel va vous montrer comment installer WordPress sur Ubuntu 18.04 avec Nginx, MariaDB et PHP7.2 (LEMP Stack). WordPress est le CMS (Content Management System) le plus populaire au monde. On estime que plus d'un tiers des sites Web d'aujourd'hui sont alimentés par WordPress. PHP7.2 a été intégré au référentiel Ubuntu 18.04 et WordPress fonctionne parfaitement avec.

Prérequis

Pour suivre ce tutoriel, vous devez disposer d'un serveur Ubuntu 18.04 avec au moins 1 Go de RAM. Si vous recherchez un VPS (Virtual Private Server), vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 50 $ sur DigitalOcean. (Pour les nouveaux utilisateurs uniquement). Si vous êtes déjà un utilisateur de DigitalOcean, vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 50 $ sur Vultr (pour les nouveaux utilisateurs uniquement).

Vous avez également besoin d'un nom de domaine, afin que les visiteurs puissent saisir un nom de domaine dans la barre d'adresse du navigateur Web pour accéder à votre site. J'ai enregistré mon nom de domaine chez NameCheap car le prix est bas et ils offrent une protection de confidentialité whois gratuite à vie.

Ce tutoriel suppose que vous avez déjà configuré une pile LEMP sur Ubuntu 18.04. Si ce n'est pas le cas, veuillez consulter le didacticiel suivant.

  • Comment installer la pile LEMP (Nginx, MariaDB, PHP7.2) sur Ubuntu 18.04

Après avoir terminé l'installation de LEMP, revenez ici et lisez la suite.

Étape 1 :Téléchargez WordPress

SSH dans votre serveur Ubuntu 18.04 et mettez à jour le logiciel existant.

sudo apt update && sudo apt upgrade

Ensuite, allez sur la page de téléchargement de wordpress.org et téléchargez l'archive zip. Vous pouvez acquérir le lien de téléchargement direct en cliquant avec le bouton droit sur le bouton de téléchargement et en sélectionnant copier l'emplacement du lien .

Ensuite, à l'invite de la ligne de commande, tapez wget suivi du lien de téléchargement direct pour télécharger WordPress sur votre serveur Ubuntu 18.04.

wget https://wordpress.org/latest.zip

Ensuite, extrayez l'archive zip à l'aide de la commande ci-dessous.

sudo apt install unzip

sudo unzip latest.zip -d /usr/share/nginx/

L'archive sera extraite vers /usr/share/nginx/ annuaire. Un nouveau répertoire nommé wordpress sera créé (/usr/share/nginx/wordpress). Maintenant, nous pouvons le renommer comme ci-dessous. Remplacez example.com avec votre vrai nom de domaine.

sudo mv /usr/share/nginx/wordpress /usr/share/nginx/example.com

Étape 2 :Créer une base de données et un utilisateur pour le site WordPress

Connectez-vous au shell MariaDB en tant que root avec la commande suivante.

sudo mariadb -u root

ou

sudo mysql -u root

Une fois connecté, créez une base de données pour WordPress à l'aide de la commande suivante. Je l'ai nommé wordpress , mais vous pouvez utiliser le nom de votre choix, par exemple le nom de votre site. (N'oubliez pas le point-virgule.)

create database wordpress;

Entrez ensuite la commande ci-dessous pour créer un utilisateur de base de données pour WordPress. Cette commande accorde également tous les privilèges de la base de données WordPress à l'utilisateur. Remplacez wpuser et votre-mot de passe avec votre nom d'utilisateur et votre mot de passe préférés.

grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';

Videz la table des privilèges pour que les modifications prennent effet, puis sortez du shell MariaDB.

flush privileges;

exit;

Étape 3 :Configurer WordPress

Accédez à votre répertoire WordPress.

cd /usr/share/nginx/example.com/

Copiez l'exemple de fichier de configuration et renommez-le en wp-config.php .

sudo cp wp-config-sample.php wp-config.php

Modifiez maintenant le nouveau fichier de configuration avec un éditeur de texte en ligne de commande comme Nano.

sudo nano wp-config.php

Recherchez les lignes suivantes et remplacez les textes rouges par le nom de la base de données, le nom d'utilisateur et le mot de passe que vous avez créés à l'étape précédente.

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

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

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

Enregistrez et fermez le fichier. Pour enregistrer le fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O , puis appuyez sur Entrée confirmer. Ensuite, appuyez sur Ctrl+X pour quitter.

Nous devons également définir l'utilisateur Nginx (www-data ) en tant que propriétaire du répertoire du site WordPress en utilisant la commande suivante.

sudo chown www-data:www-data /usr/share/nginx/example.com/ -R

Étape 4 :Créer un bloc de serveur Nginx pour WordPress

Nous allons créer le fichier de blocage du serveur dans /etc/nginx/conf.d/ annuaire. Le nom du fichier doit se terminer par .conf .

sudo nano /etc/nginx/conf.d/example.com.conf

Mettez les textes suivants dans le fichier. Remplacez les textes rouges par votre propre nom de domaine. N'oubliez pas de créer des enregistrements A pour votre nom de domaine.

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /usr/share/nginx/example.com/;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~* /wp-sitemap.*\.xml {
     try_files $uri $uri/ /index.php$is_args$args;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  #enable gzip compression
  gzip on;
  gzip_vary on;
  gzip_min_length 1000;
  gzip_comp_level 5;
  gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
  gzip_proxied any;

  # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx.

sudo systemctl reload nginx

Entrez votre nom de domaine dans la barre d'adresse du navigateur.

example.com

ou

example.com/wp-admin/install.php

Vous verrez l'assistant d'installation de WordPress. Sélectionnez une langue.

Si l'assistant d'installation ne s'affiche pas, vous devez probablement installer des extensions PHP7.

sudo apt install php-imagick php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-common php7.2-gd php7.2-json php7.2-cli php7.2-curl php7.2-zip

Rechargez ensuite PHP-FPM et Nginx. L'assistant devrait maintenant s'afficher.

sudo systemctl reload php7.2-fpm nginx

Avant de saisir vos informations sensibles dans l'assistant de configuration, il est recommandé d'activer HTTPS pour empêcher le détournement de trafic.

Étape 5 :Activer HTTPS

Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Ubuntu 18.04.

sudo apt install certbot python3-certbot-nginx

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com

  • --nginx  :Utilisez le plug-in Nginx.
  • --agree-tos  :acceptez les conditions d'utilisation.
  • --redirection  :Forcer HTTPS par redirection 301.
  • --hsts :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.
  • --staple-ocsp :active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.
  • --courriel :E-mail utilisé pour l'enregistrement et le contact de récupération.
  • -d flag est suivi d'une liste de noms de domaine, séparés par une virgule. Vous pouvez ajouter jusqu'à 100 noms de domaine.

Le certificat devrait maintenant être obtenu et installé automatiquement.

Maintenant, si vous rechargez l'assistant de configuration WordPress, vous pouvez voir que HTTP est automatiquement redirigé vers la connexion HTTPS.

Étape 6 :Terminez l'installation avec l'assistant de configuration

Créez un compte administrateur et cliquez sur Installer WordPress bouton.

Et maintenant, votre nouveau site WordPress est installé.

Comment rediriger www vers non-www (ou vice versa)

Nous avons déjà activé la redirection HTTP vers HTTPS, il ne reste plus qu'à rediriger www vers non-www, ou vice versa. C'est très facile. Accédez simplement au tableau de bord WordPress> Paramètres> Général et définissez votre version préférée (www ou non-www) dans WordPress Address et Adresse du site . Assurez-vous d'inclure le https:// préfixe.

Éviter les requêtes malveillantes

Une fois WordPress installé, il n'est pas nécessaire d'accéder au /wp-admin/setup-config.php et /wp-admin/install.php URL plus. Cependant, les mauvais acteurs peuvent accéder à ces deux URL et si une vulnérabilité est trouvée, le mauvais acteur pourrait entrer dans votre back-end WordPress. Pour empêcher l'accès à ces deux URL, ajoutez les lignes suivantes dans le bloc du serveur Nginx. Ajoutez-les avant le emplacement ~ \.php$ {/code> ligne.

location ~* ^/wp-admin/(setup-config|install)\.php$ {
       deny all;
}

Si vous ne voulez pas que d'autres personnes enregistrent un compte sur votre site WordPress, vous pouvez ajouter les lignes suivantes pour restreindre l'accès au /wp-login.php URL, afin que seule votre adresse IP puisse accéder à cette URL. Remplacez 78.56.34.12 par votre propre adresse IP.

location = /wp-login.php {
    try_files $uri $uri/ /index.php?$args;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
    include snippets/fastcgi-php.conf; 
 
    allow 78.56.34.12;
    deny all;
}

N'oubliez pas de recharger Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

Si vous n'avez pas d'adresse IP statique sur votre réseau domestique, vous pouvez configurer un serveur VPN dans un centre de données.

Comment envoyer des e-mails dans WordPress

Votre site WordPress doit envoyer des e-mails tels que des e-mails d'enregistrement de compte, des e-mails de réinitialisation de mot de passe, des e-mails de notification de commentaires, etc. Au lieu d'utiliser des solutions tierces coûteuses comme Gsuite pour créer des adresses e-mail professionnelles pour votre site Web, vous pouvez suivre ce tutoriel iRedMail pour définir créez votre propre serveur de messagerie avec votre propre nom de domaine, afin que vous puissiez avoir un nombre illimité de boîtes aux lettres et envoyer des e-mails illimités sans vous ruiner.

Notez que c'est une bonne pratique d'installer le serveur de messagerie et WordPress sur deux serveurs privés virtuels différents car vous ne voulez pas que le serveur de messagerie ralentisse la vitesse de votre site WordPress, et le serveur de messagerie divulguera l'adresse IP de votre site WordPress s'ils sont sur le même serveur privé virtuel, ce qui signifie que les pirates peuvent contourner tout CDN (réseau de diffusion de contenu) que vous utilisez et lancer une attaque DDoS directement sur votre serveur d'origine.

Une fois que votre serveur de messagerie est opérationnel, vous pouvez installer un plugin SMTP dans WordPress, afin qu'il puisse se connecter à votre serveur de messagerie et envoyer des e-mails. Accédez à votre tableau de bord WordPress -> Plugins , cliquez sur Ajouter nouveau pour installer un nouveau plugin.

Tapez ensuite WP Mail SMTP dans le champ de recherche. Installez et activez le WP Mail SMTP par WPForms plugin.

Rechargez la page Web du tableau de bord WordPress, vous verrez WP Mail SMTP dans la barre de menu de gauche. Cliquez dessus et sélectionnez Paramètres .

Ensuite, faites défiler jusqu'à la section Mailer. Par défaut, le mailer PHP est sélectionné. Nous devons le remplacer par Autre SMTP .

Faites défiler vers le bas et vous devrez entrer les paramètres SMTP.

  • Entrez le nom d'hôte de votre serveur de messagerie.
  • Sélectionnez TLS comme chiffrement.
  • Utilisez le port 587.
  • Activer l'authentification.
  • Entrez une adresse e-mail de votre domaine et le mot de passe.

Après avoir enregistré les paramètres, vous pouvez tester l'envoi d'e-mails en vous déconnectant du tableau de bord WordPress et en cliquant sur mot de passe perdu lien pour envoyer un e-mail de réinitialisation du mot de passe.

Étape suivante

  • Vous pouvez également utiliser l'outil de ligne de commande WP-CLI pour gérer votre site WordPress.
  • Vous pouvez utiliser WPScan pour analyser les vulnérabilités de votre site WordPress.
  • Pour surveiller les performances back-end de votre site WordPress, vous pouvez utiliser Nginx Amplify.

J'espère que ce tutoriel vous a aidé à installer WordPress sur Ubuntu 18.04 avec Nginx, MariaDB et PHP7.2 (pile LEMP). Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de conseils et astuces. Prenez soin de vous 🙂


Ubuntu
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment installer SuiteCRM avec Nginx sur Ubuntu 16.04

  3. Comment installer Magento avec Nginx sur Ubuntu 16.04

  4. Comment installer Wordpress avec Nginx, MariaDB et HHVM sur Ubuntu 16.04 LTS

  5. Comment installer WordPress avec LEMP sur Ubuntu 20.04

Installer WordPress sur Ubuntu 20.04 avec Apache, MariaDB, PHP7.4 (LAMP)

Installer WordPress sur Ubuntu 20.04 avec Nginx, MariaDB, PHP7.4 (LEMP)

Comment installer WordPress 4.7 sur Ubuntu 16.04 avec Apache, MariaDB, PHP7

Comment installer la pile LEMP (Nginx, MariaDB, PHP7.1) sur Ubuntu 17.10

Comment installer la pile LEMP (Nginx, MariaDB, PHP7.2) sur Ubuntu 18.04 LTS

Installer WordPress avec Nginx sur Ubuntu 18.04