WordPress est un système de gestion de contenu (CMS) extrêmement populaire pour les sites Web. Sa popularité et son omniprésence ne peuvent vraiment pas être surestimées, car il alimente 35% des sites Web. C'est un moyen facile de mettre un site Web en ligne, et il offre beaucoup de possibilités de personnalisation.
Ubuntu 20.04 Focal Fossa et Nginx sont la combinaison parfaite pour faire fonctionner votre site WordPress. L'utilisation de ces utilitaires vous donnera un site Web très puissant, efficace et stable. Mieux encore, tous ces logiciels sont entièrement gratuits et la configuration n'est pas très difficile. Suivez nos étapes ci-dessous pour voir comment faire fonctionner votre site WordPress sur Ubuntu 20.04 avec Nginx.
Si vous êtes plus familier avec ou si vous préférez Apache à Nginx, nous avons rédigé un guide séparé pour l'installation d'Ubuntu 20.04 WordPress sur Apache.
Dans ce didacticiel, vous apprendrez :
- Comment installer et configurer Nginx
- Comment installer et configurer MariaDB pour MySQL
- Comment configurer une base de données MySQL pour WordPress
- Comment télécharger et installer WordPress
- Comment configurer SSL pour votre site WordPress
Exécution d'un site Web WordPress sur Ubuntu 20.04 avec Nginx
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Installation d'Ubuntu 20.04 ou mise à niveau d'Ubuntu 20.04 Focal Fossa |
Logiciel | WordPress, Nginx, PHP, MariaDB (MySQL) |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Installer Nginx, PHP et MySQL
Avant d'installer WordPress, notre système Ubuntu 20.04 aura besoin de trois composants principaux pour l'exécuter :Nginx, PHP et MySQL. Nginx est pour notre serveur Web, PHP est pour afficher du contenu dynamique et MariaDB (un fork open source de MySQL) est pour notre base de données. Vous pouvez installer ces packages en ouvrant un terminal et en tapant les deux commandes suivantes :
$ sudo apt update $ sudo apt install nginx mariadb-server mariadb-client php-fpm php-mysql
Configurer MySQL
MySQL nécessite un peu de configuration avant de pouvoir commencer à créer une base de données. Passons d'abord en revue la configuration de sécurité initiale. Tapez la commande suivante dans le terminal :
$ sudo mysql_secure_installation
Il vous sera demandé de définir un mot de passe root pour MySQL, puis quelques questions de sécurité. Vous pouvez répondre y
(oui) à toutes les questions, puis la configuration sera terminée.
Nous couvrons plus en profondeur la configuration de MySQL dans notre article sur l'installation de MySQL sur Ubuntu 20.04, bien que la configuration ci-dessus soit vraiment tout ce que vous aurez à faire.
Créer une base de données pour WordPress
Votre site WordPress aura besoin d'une base de données pour stocker toutes les informations utilisateur, publier du contenu, etc. Suivez ces étapes pour préparer votre base de données et votre utilisateur MySQL :
- Démarrez MySQL en tant qu'utilisateur root :
$ sudo mysql
- Créer une nouvelle base de données pour WordPress :
MariaDB [(none)]> CREATE DATABASE wordpress_db;
- Ensuite, créez un nouvel utilisateur de base de données pour WordPress. Le
my_password
le texte ci-dessous doit être remplacé par votre mot de passe (sécurisé) souhaité :MariaDB [(none)]> CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'my_password';
- Maintenant, nous devons donner à notre utilisateur WordPress des autorisations complètes sur la base de données WordPress :
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@'localhost';
- Enfin, enregistrez les modifications que nous avons apportées aux autorisations des utilisateurs et quittez la base de données :
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
Création de la nouvelle base de données et de l'utilisateur pour WordPress dans MySQL
Configurer Nginx
Avant de pouvoir télécharger WordPress, nous devons configurer correctement Nginx pour héberger notre site Web. Nous allons appeler notre site Web "wordpress" dans toute la configuration de Nginx, mais vous pouvez choisir un autre nom si vous le souhaitez.
Tout d'abord, créez un fichier de configuration sous le /etc/nginx/sites-available
répertoire à l'aide de nano ou de votre éditeur de texte préféré :
$ sudo nano /etc/nginx/sites-available/wordpress
Vous pouvez coller le contenu suivant dans votre fichier nouvellement créé, qui est une configuration Nginx assez standard.
server {
listen 80;
listen [::]:80;
root /var/www/wordpress;
index index.php;
server_name 127.0.0.1;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
Il y a quelques lignes ici que vous devrez peut-être modifier. La ligne 9 doit contenir votre nom de domaine à la place de 127.0.0.1
, sauf si vous n'avez pas de nom de domaine. La ligne 17 doit être mise à jour avec le numéro de version de votre PHP installé. Pour vérifier votre version de PHP, exécutez le php --version
commande dans le terminal.
Une fois vos modifications de configuration effectuées, vous pouvez enregistrer vos modifications dans ce fichier et le fermer. Les dernières étapes de la configuration de Nginx consistent à supprimer le site par défaut, à activer votre site Web et à redémarrer Nginx pour que les modifications prennent effet :
$ sudo rm /etc/nginx/sites-enabled/default $ sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress $ sudo systemctl restart nginx
Téléchargez et installez WordPress
Maintenant que toutes les conditions préalables sont remplies, nous pouvons enfin passer à l'installation de WordPress lui-même.
- Tout d'abord, téléchargez la dernière version de WordPress en utilisant
wget
:$ wget -O /tmp/wordpress.tar.gz https://wordpress.org/latest.tar.gz
- Décompressez l'archive WordPress téléchargée dans le répertoire du site :
$ sudo tar -xzvf /tmp/wordpress.tar.gz -C /var/www
- Changer le propriétaire du répertoire du site :
$ sudo chown -R www-data.www-data /var/www/wordpress
- Ouvrez votre navigateur Internet et accédez à
127.0.0.1
ou votre nom de domaine complet. Vous serez accueilli par l'assistant de configuration de WordPress. Cliquez sur le bouton "Allons-y" pour commencer la configuration. Page de configuration de WordPress - L'écran suivant nous demande des informations sur la configuration de notre base de données. Entrez les valeurs que vous avez définies précédemment, puis cliquez sur "Soumettre". Les deux dernières cases (hôte de la base de données et préfixe de la table) peuvent être laissées à leurs valeurs par défaut. Entrez les informations de la base de données MySQL pour WordPress
- WordPress doit confirmer qu'il est capable de communiquer avec la base de données MySQL. Cliquez sur "Exécuter l'installation" pour commencer l'installation de WordPress. WordPress confirme qu'il peut se connecter à la base de données MySQL
- Vous devrez maintenant remplir quelques informations générales sur votre nouveau site Web :son nom, son nom d'utilisateur d'administrateur, son mot de passe, etc. Remplissez-les, puis cliquez sur "installer WordPress" en bas. Entrez les informations sur votre nouveau site WordPress
- L'installation devrait être terminée et vous pouvez vous connecter à votre nouveau site Web pour commencer à créer du contenu ! L'installation de WordPress s'est terminée avec succès
Vous pouvez toujours accéder au panneau d'administration de WordPress en accédant à http://127.0.0.1/wp-admin
(ou remplaçant 127.0.0.1
avec votre nom de domaine complet).
Les modifications que vous apportez dans le panneau d'administration seront répercutées sur le site :
Notre nouveau site WordPress est opérationnelConfiguration SSL facultative
Avant de conclure, nous vous montrerons également comment activer SSL sur votre nouveau site WordPress. Ceci est purement facultatif, car votre site fonctionnera parfaitement sans lui, mais cela offre une sécurité supplémentaire et donne aux utilisateurs une sensation chaleureuse et floue en voyant le cadenas à côté de votre nom de domaine dans la barre d'URL de leur navigateur.
- Commencez par générer un nouveau certificat auto-signé avec la commande suivante et répondez aux quelques questions qui vous sont posées. Pour le "nom commun", entrez l'adresse IP de votre site Web ou le nom de domaine complet :
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
Remplir les informations du certificat SSL - Ensuite, créez un nouveau fichier de configuration SSL à l'emplacement suivant :
$ sudo nano /etc/nginx/snippets/self-signed.conf
- Dans ce fichier, entrez les deux lignes suivantes, avant d'enregistrer les modifications et de quitter le fichier :
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
Configuration de l'extrait SSL self-signed.conf - Ensuite, nous devons créer un autre extrait de configuration :$ sudo nano /etc/nginx/snippets/ssl-params.conf
- Entrez le contenu suivant dans ce fichier, puis enregistrez-le et quittez-le. Notez que puisque nous utilisons un certificat auto-signé, les lignes 9 et 10, qui concernent l'agrafage SSL, ont été commentées. Si vous n'utilisez pas de certificat auto-signé, décommentez ces deux lignes.
Configuration de l'extrait SSL ssl-params.confssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-> ssl_ecdh_curve secp384r1; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; # ssl_stapling on; # ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block";
- Ensuite, exécutez la commande suivante pour générer le
dhparam.pem
fichier :$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Génération du fichier dhparam.pem - Maintenant que la configuration SSL est terminée, nous devons configurer Nginx pour utiliser SSL. Ouvrez le fichier de configuration Nginx que nous avons créé précédemment pour notre site WordPress :
$ sudo nano /etc/nginx/sites-available/wordpress
- Dans le
server
block, nous devons ajouter les quatre lignes suivantes :listen 443 ssl; listen [::]:443 ssl; include snippets/self-signed.conf; include snippets/ssl-params.conf;
Ces quatre lignes sont nécessaires pour activer SSL sur notre site WordPress - Enregistrez vos modifications dans ce fichier avant de le fermer, puis redémarrez Nginx :
$ sudo systemctl restart nginx
Votre site WordPress pourra désormais utiliser le cryptage SSL :
Le site Web WordPress utilise maintenant le cryptage SSL (HTTPS)Conclusion
WordPress est utilisé par des millions de personnes, des entreprises Fortune 500 aux petits blogueurs. Il utilise des composants haut de gamme et fonctionne à merveille sur Ubuntu 20.04 Focal Fossa - un combo vraiment difficile à battre.
Dans cet article, nous avons vu comment installer et configurer Nginx, PHP et MySQL afin de faire fonctionner un site Web WordPress. Bien que la configuration prenne un peu de temps, cela en vaut la peine. Nginx est plus rapide que les autres serveurs Web et WordPress vous offre un site Web élégant dès la sortie de la boîte.