Nginx est un serveur Web bien connu utilisé pour servir des pages Web sur Internet. Nginx, qui a été lancé pour la première fois en octobre 2004, est rapidement devenu le serveur Web et le serveur proxy de choix pour des milliers de développeurs Web. Il présente un certain nombre d'avantages par rapport à son concurrent Apache. Dans cet article, nous allons apprendre à installer Nginx sur Ubuntu et à l'utiliser pour héberger WordPress.
Avant de commencer, permettez-moi de dire sans équivoque qu'il ne s'agit pas d'une comparaison entre Nginx et Apache ou tout autre serveur Web. Apache a été introduit en 1999 et offre plusieurs fonctionnalités utiles. Si vous souhaitez installer WordPress sur Apache, nous avons déjà un article sur le sujet, alors consultez-le.
Nginx a été lancé pour la première fois en octobre 2004, il y a environ 17 ans. La plupart des développeurs Web préfèrent Nginx en raison de sa capacité à gérer rapidement plusieurs demandes simultanées de clients avec des ressources matérielles limitées, ce qui rend l'hébergement de sites Web sur Internet moins coûteux. Nginx peut également être utilisé comme proxy inverse, dirigeant les demandes des clients vers le serveur d'hébergement principal, qui n'a pas d'accès public à Internet, ce qui rend le serveur d'hébergement plus sécurisé qu'il ne le serait autrement.
Prérequis pour installer WordPress sur Nginx
Dans cet article, nous utiliserons le système d'exploitation Ubuntu, PHP 8.1, Nginx et WordPress. Si vous ne savez pas ce qu'est WordPress, nous avons couvert WordPress dans une série d'articles, WordPress 101.
- Ubuntu 20.04
- Nginx
- PHP 8
- WordPress
Ubuntu 20.04 est une version de support à long terme d'Ubuntu. Si vous avez besoin d'aide pour installer Ubuntu, veuillez vous référer à cet article sur LinuxAndUbuntu. Une fois que vous avez installé Ubuntu, nous pouvons passer à l'installation du reste des packages requis.
Si vous utilisez des services cloud comme AWS, Google Cloud Platform, Linode, DigitalOcean ou MassiveGRID, vous pouvez ignorer l'étape d'installation. Tous les fournisseurs de cloud prennent en charge l'installation du serveur Ubuntu en un clic avec Nginx. Alors optez pour Ubuntu 20.04, dont le nom de code est Focal Fossa. La plupart des fournisseurs de cloud préinstallent le pare-feu UFW sur Ubuntu par défaut. Je vous recommande d'activer le pare-feu pour améliorer la sécurité du serveur et d'autoriser les ports TCP répertoriés ci-dessous.
Si UFW n'est pas préinstallé, n'hésitez pas à l'installer à partir du référentiel –
apt install ufw
ufw enable
ufw allow http
ufw allow https
ufw allow 22
http et https sont le port 80 et le port 443. Le port 22 est pour la connexion SSH au serveur. Si votre serveur utilise un port personnalisé pour ssh, veuillez autoriser le port ssh personnalisé avant de fermer la connexion SSH actuelle. Après avoir activé le pare-feu UFW, il bloquera tous les ports, sauf autorisation manuelle. Ainsi, une fois que vous avez fermé la connexion SSH en cours, l'accès SSH n'est pas autorisé tant que le port SSH n'est pas autorisé.
Mettez également à jour le système d'exploitation pour vous assurer que le serveur est entièrement corrigé avec les dernières mises à jour de sécurité.
apt update
apt upgrade
Avis Il n'est pas recommandé de se connecter en tant que root et d'effectuer des actions sur le serveur. Alors configurez un nouveau compte utilisateur et accordez-lui
sudo
privilèges.adduser username
La commande ci-dessus lancera le processus de création d'utilisateur. Suivez les instructions simples, puis accordez à l'utilisateur nouvellement créé sudo
privilèges en utilisant la commande suivante –
usermod -aG sudo username
Maintenant, reboot
le serveur et ssh
dans le serveur avec un nouveau compte utilisateur.
Installer Nginx
L'installation de Nginx est identique à l'installation de tout autre package sur le système. Utilisez le gestionnaire de packages apt pour installer nginx à partir du référentiel –
sudo apt install nginx
Lorsque le processus d'installation est terminé, démarrez/redémarrez le serveur à l'aide de la commande suivante -
service nginx restart
service nginx status
Visitez l'adresse IP pour confirmer que le serveur fonctionne correctement. Voici la page nginx par défaut qui confirme le bon fonctionnement de nginx sur le serveur.
Configurer Nginx pour servir WordPress
Nginx peut facilement gérer plusieurs sites Web sur le même serveur à l'aide d'hôtes virtuels. Par défaut, nginx crée un profil par défaut qui affiche la page d'accueil Nginx ci-dessus. Nous allons d'abord désactiver le profil par défaut, puis créer un nouveau profil pour gérer WordPress.
sudo unlink /etc/nginx/sites-enabled/default
La commande ci-dessus désactivera le profil Nginx par défaut. Créez maintenant un nouveau profil pour notre installation WordPress.
sudo nano /etc/nginx/sites-available/example.com
Collez maintenant la configuration suivante dans l'éditeur de texte.
server {
listen 80;
listen [::]:80;
server_name gaminggroup.online;
root /var/www/gaminggroup.online;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
}
Avant d'enregistrer le fichier ci-dessus, veuillez comprendre ce que fait la configuration ci-dessus. Après avoir activé cette configuration, Nginx commencera à rechercher des requêtes pour le nom de domaine mentionné comme valeur de server_name dans la configuration.
nom_serveur => le nom de domaine de notre site Web
racine => le répertoire racine de notre site Web stocké sur le serveur
index => le fichier à rechercher dans la racine du site Web
emplacement => le bloc location traite l'URI de la requête (c'est un peu compliqué et mérite un article à part sur son fonctionnement)
Remplacez le gaminggroup.online avec votre propre nom de domaine. Avec l'option root, nous avons spécifié que la racine de notre site Web se trouve dans /var/www/gaminggroup.online
. Donc, à l'étape suivante, nous allons créer le répertoire du site Web à /var/www
.
Enregistrez maintenant le fichier de configuration avec ctrl + x et appuyez sur Entrée .
Créer le répertoire racine du site Web
sudo mkdir /var/www/gaminggroup.online
Désormais, chaque fois que quelqu'un visite notre site Web example.com, en fonction de la demande, nginx fournira du contenu à l'utilisateur à partir de ce /var/www/gaminggroup.online
annuaire. Pour tester notre configuration, créez un exemple index.html à la racine de notre site Web (/var/www/gaminggroup.online).
sudo nano /var/www/gaminggroup.online/index.html
Collez l'exemple HTML suivant dans le fichier et enregistrez-le.
<h2>Hello world!</h2>
<p>This is a test page for gaminggroup.online</p>
Avant de tester si tout fonctionne correctement, définissons les autorisations correctes sur le répertoire racine du site Web afin que le serveur puisse accéder aux fichiers qu'il contient.
sudo chown -R www-data:www-data /var/www/gaminggroup.online/index.html
Vérifiez la configuration de Nginx pour toute erreur –
sudo ln -s /etc/nginx/sites-available/gaminggroup.online /etc/nginx/sites-enabled/
sudo nginx -t
S'il n'y a pas d'erreur dans la configuration, nous sommes prêts à partir. Visitez le nom de domaine et vous devriez voir l'exemple de page index.html que nous avons configuré.
sudo service nginx restart
La capture d'écran ci-dessus confirme le bon fonctionnement de nos configurations. Nous pouvons maintenant passer à la préparation de l'installation de WordPress.
Installons le serveur de base de données et créons la base de données pour WordPress.
Installer le serveur MariaDB
sudo apt install mariadb-server
Exécutez mysql_secure_installation pour configurer le serveur ».
sudo mysql_secure_installation
Vous pouvez créer le mot de passe de l'utilisateur racine MySQL. Si vous ne souhaitez pas créer de mot de passe pour l'utilisateur root, connectez-vous simplement à l'utilisateur root MySQL en utilisant sudo msyql
.
Si vous avez créé un mot de passe utilisateur root, connectez-vous à l'utilisateur root à l'aide de la commande suivante -
mysql -u root -p
Or
sudo mysql (type sudo password when prompted)
Créer une base de données –
create database wordpress;
Astuce Il est fortement recommandé de créer un nouvel utilisateur MySQL pour la base de données WordPress.
Créer un utilisateur MySQL –
create user 'sandy'@'localhost' identified by 'password';
Accorder des privilèges de base de données (wordpress) à l'utilisateur nouvellement créé –
grant all privileges on wordpress.* to 'sandy'@'localhost';
Veuillez noter que nous utiliserons cet utilisateur de base de données dans WordPress afin qu'il puisse se connecter à la base de données. La connexion de WordPress à la base de données à l'aide de l'utilisateur root est strictement interdite.
Installons les packages requis, y compris PHP et plusieurs extensions PHP dont WordPress a besoin pour fonctionner.
Ajouter un dépôt PHP 8
sudo add-apt-repository ppa:ondrej/php
Installer PHP et extensions PHP –
sudo apt install php-cli php-fpm php-mysql php-json php-mbstring php-xml php-gd php-curl
Et c'est tout pour notre installation WordPress. Supprimez l'exemple de fichier index.html de /var/www/gaminggroup.online
.
Télécharger WordPress –
wget -O /tmp/wordpress.tar.gz https://wordpress.org/latest.tar.gz
sudo tar -xvf /tmp/wordpress.tar.gz -C /tmp/
Déplacer les fichiers WordPress vers le répertoire racine du site Web –
sudo mv /tmp/wordpress/* /var/www/gamingroup.online
Corriger les autorisations –
sudo chown -R www-data:www-data /var/www/gaminggroup.online
sudo find /var/www/gaminggroup.online/ -type d -exec chmod 755 {} \;
sudo find /var/www/gaminggroup.online/ -type f -exec chmod 644 {} \;
Ajoutez le location
suivant bloquer dans la configuration du site après le location
existant bloquer pour qu'il fonctionne avec WordPress.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
La configuration finale devrait ressembler à ceci -
server {
listen 80;
listen [::]:80;
server_name gaminggroup.online;
root /var/www/gaminggroup.online;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}
Et c'est tout pour notre configuration WordPress. Maintenant, d'autres étapes devaient être effectuées à partir du navigateur Web. Visitez votre nom de domaine depuis le navigateur Web et il vous redirigera vers la page d'installation de WordPress.
Cliquez sur « Allons-y ! » pour la configuration de la base de données avec WordPress. Entrez maintenant le nom de la base de données, le nom d'utilisateur de la base de données, le mot de passe de l'utilisateur de la base de données que nous avons créé ci-dessus, puis cliquez sur "Soumettre".
Cliquez sur "Exécuter l'installation" et cela vous permettra d'entrer le titre du site Web, de configurer l'administrateur WordPress, etc. Ne vous inquiétez pas, vous pourrez toujours modifier ces détails plus tard.
Et surprise surprise ! Nous avons installé WordPress sur Nginx. Les prochains jours, vous devrez consacrer à la configuration du site Web, à l'installation de nouveaux thèmes, plugins et publier un contenu incroyable. Partagez avec nous ce que vous créez ! 🙂
Conclusion
Bien que l'installation soit terminée, mais comme il s'agit d'un serveur non géré, vous devrez vous occuper vous-même de votre serveur. Assurez-vous de maintenir le serveur à jour en installant régulièrement des mises à jour ou en configurant mieux les mises à niveau sans surveillance pour installer automatiquement les mises à jour. Configurez également Canonical Livepatch pour installer les mises à jour du noyau sans redémarrer le serveur.
Si vous souhaitez migrer WordPress d'un ancien hébergement Web vers ce serveur, veuillez lire ce guide. Ou lisez ce guide si vous souhaitez migrer votre site Weebly vers WordPress.