Ce tutoriel va vous montrer comment installer WordPress sur Ubuntu 20.04 avec Nginx, MariaDB et PHP7.4 (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.4 a été intégré au référentiel Ubuntu 20.04 et WordPress fonctionne parfaitement avec.
Prérequis
Pour suivre ce tutoriel, vous devez disposer d'un serveur Ubuntu 20.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 20.04. Si ce n'est pas le cas, veuillez consulter le didacticiel suivant.
- Comment installer la pile LEMP (Nginx, MariaDB, PHP7.4) sur Ubuntu 20.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 20.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 copy link location
.
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 20.04.
wget https://wordpress.org/latest.zip
Ensuite, extrayez l'archive zip à l'aide de la commande ci-dessous.
sudo apt install unzip sudo mkdir -p /usr/share/nginx 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, il nous est donc facile d'identifier chaque répertoire. 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 your-password
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');
Ensuite, faites défiler vers le bas pour trouver la ligne suivante.
$table_prefix = 'wp_';
Par défaut, chaque nom de table de base de données WordPress commence par wp_
comme préfixe. Il est fortement recommandé de le remplacer par autre chose pour améliorer la sécurité. Utilisez des caractères aléatoires comme ci-dessous.
$table_prefix = '9OzB3g_';
Enregistrez et fermez le fichier. Pour enregistrer le fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O
, puis appuyez sur Enter
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 dans votre gestionnaire DNS.
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-json/ { rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last; } 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; client_max_body_size 20M; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-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.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-json php7.4-cli php7.4-curl php7.4-zip
Rechargez ensuite PHP-FPM et Nginx. L'assistant devrait maintenant s'afficher.
sudo systemctl reload php7.4-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 20.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
Où
--nginx
:Utilisez le plug-in Nginx.--agree-tos
:acceptez les conditions d'utilisation.--redirect
: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.--email
: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.
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.
Augmenter la taille limite du fichier de téléchargement
Par défaut, les fichiers tels que les images, les fichiers PDF téléchargés dans la médiathèque WordPress ne peuvent pas dépasser 2 Mo. Pour augmenter la taille limite de téléchargement, modifiez le fichier de configuration PHP.
sudo nano /etc/php/7.4/fpm/php.ini
Trouvez la ligne suivante (ligne 846).
upload_max_filesize = 2M
Modifiez la valeur comme ci-dessous :
upload_max_filesize = 20M
Trouvez ensuite la ligne suivante (ligne 694).
post_max_size = 8M
Modifiez la taille maximale des données POST que PHP acceptera.
post_max_size = 20M
Enregistrez et fermez le fichier. Vous pouvez également exécuter les deux commandes suivantes pour modifier la valeur sans ouvrir manuellement le fichier.
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php.ini
Redémarrez ensuite PHP-FPM.
sudo systemctl restart php7.4-fpm
Nginx définit également une limite de taille de fichier de téléchargement. La limite de taille de fichier de téléchargement maximale par défaut définie par Nginx est de 1 Mo. Pour autoriser le téléchargement de fichiers volumineux sur votre site WordPress, modifiez le fichier de configuration Nginx.
sudo nano /etc/nginx/conf.d/example.com.conf
Nous avons déjà défini la taille de fichier maximale dans ce fichier, comme indiqué par
client_max_body_size 2M;
Vous pouvez le changer si vous préférez, comme 20M.
client_max_body_size 20M;
Enregistrez et fermez le fichier. Rechargez ensuite Nginx pour que les modifications prennent effet.
sudo systemctl reload nginx
É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 20.04 avec Nginx, MariaDB et PHP7.4 (pile LEMP). Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de trucs et astuces. Prenez soin de vous 🙂