Installer WordPress avec Ubuntu 22.04, Apache2, MariaDB et PHP 8.2-FPM

Si vous envisagez d’héberger WordPress sur un serveur cloud, ce guide vous sera utile. LAMP est l’acronyme de Linux, Apache, MariaDB et PHP, des logiciels qui, combinés ensemble, sont connus sous le nom de pile LAMP.

WordPress Apache2 Install

Avantages et inconvénients de choisir le serveur web Apache plutôt que NGINX

  • Pour : Il prend en charge le fichier .htaccess qui est couramment utilisé par de nombreuses personnes pour la mise en cache et l’optimisation des pages. C’est un excellent choix pour les non codeurs.
  • Inconvénients : Il est légèrement moins performant que NGINX mais cela peut être géré en utilisant APO. Pour un site à fort trafic, la pile LEMP est le meilleur choix.

Suivez ces 3 étapes et regardez la vidéo. Vous avez besoin d’aide ? Contactez-moi. 😊

  1. Configuration du DNS de Cloudflare
  2. Obtenir un serveur Ubuntu
  3. Déploiement de la pile LAMP

Avant de commencer, voici une petite astuce. Utilisez l’extension Rechercher et Remplacer pour remplacer en vrac exemple.com par votre propre domaine dans cette page Web.

Astuce pour gagner du temps pour les utilisateurs de Google Chrome.
search replace

Partie A : Maintenez les nameservers de Cloudflare actifs.

Nous allons utiliser le DNS de Cloudflare pour obtenir le certificat SSL Wildcard de Let’s Encrypt. Effectuez d’abord cette étape pour profiter d’une migration sans temps mort.

Vérifier les serveurs de noms actuels

Partie B : Déployer un serveur Ubuntu 22.04 LTS

Ubuntu
Logo Ubuntu

1.Inscrivez-vous à Vultr pour obtenir 100 $ de crédits gratuits (Valable pendant 14 jours)

vultr

J’ai essayé de nombreuses sociétés de serveurs en nuage, mais mon expérience m’a appris que vous ne pouvez pas vous tromper avec Vultr. Ces gars-là sont authentiques et attentionnés quand il s’agit de soutien et de services.

⚡ Performance

  • AMD EPYC™ de 3ème génération
  • NVME / SSD
  • CPU jusqu’à 4 GHz
  • Vitesse du réseau jusqu’à 5Gbps
  • Centre de données en Amérique, en Europe, en Asie et en Australie.
  • IPV6 prêt

💡 Caractéristiques

  • Tableau de bord convivial pour les débutants
  • Snapshot en un clic
  • Automtatic Backup (Payant)
  • Pare-feu en nuage gratuit
  • Protection contre les DDoS (payant)
  • Virtualisation KVM à 100%.

⚙ Soutien

  • PayPal/Carte
  • Assistance ticket 24/7
  • Documentation

2. Deloy un nouveau serveur

Il suffit de cliquer sur le bouton plus pour commencer

Deploy New Server

3. Choisissez le type de serveur

Choisissez Cloud Compute pour bénéficier de CPU partagés à des prix abordables.

Cloud Compute

Ensuite, vous pouvez sélectionner l’option AMD High Performance ou Intel High Frequency dans CPU & Storage Technology. Cette dernière offre le CPU et le disque NVMe les plus rapides qui soient. Si votre budget est inférieur, optez pour le plan régulier avec CPU Intel, qui vous permettra d’obtenir un disque SSD.

CPU Technology

4. Choisir un emplacement de serveur

Vultr propose des serveurs sur les quatre continents. Pour obtenir la latence la plus faible et les meilleures performances, vous devez toujours choisir la région la plus proche de votre public.

vultr server region

Par exemple, si 99 % du trafic provient d’Inde, choisissez la région la plus proche – Paris, France.

Asia

  • Mumbai, India
  • Delhi NCR, India
  • Bengaluru, India
  • Singapore, Singapore
  • Tokyo, Japan
  • Seoul, South Korea

America

  • Miami, United States
  • Atlanta, United States
  • Chicago, United States
  • Dallas, United States
  • Honolulu, United States
  • Los Angeles, United States
  • Mexico City, Mexico
  • New York (NJ), United States
  • Seattle, United States
  • Silicon Valley, United States
  • Toronto, Canada, São Paulo

Europe

  • Stockholm, Sweden
  • London, United Kingdom
  • Amsterdam, Netherlands
  • Frankfurt, Germany
  • Madrid, Spain
  • Paris, France
  • Warsaw, Poland

Australlia

  • Sydney, Australlia
  • Melbourne, Australia

5. Sélectionnez l’image du serveur > Système d’exploitation > Ubuntu 22.04 LTS x64

ubuntu os

Le support à long terme (LTS) est une politique de gestion du cycle de vie des produits dans laquelle une version stable d’un logiciel informatique est maintenue pendant une période plus longue que l’édition standard.

ubuntu releases 2

6. Choisir une taille de serveur

server size

Un plan de 6 $/mois serait un excellent point de départ pour un nouveau blog. Vous pouvez l’améliorer à tout moment en fonction de vos besoins.

Conseil : si vous effectuez une migration, vérifiez la taille totale de l’installation dans les informations sur la santé du site.

Site health info

Activer IPV6, Sauvegarde

vultr enable backup ipv6

Ajoutez une clé SSH

Il s’agit d’une étape recommandée mais facultative pour une sécurité renforcée.

Add SSH key
  • Cliquez sur le bouton Ajouter nouveau pour ajouter une nouvelle clé SSH afin de soumettre votre clé 🔒Publique.
  • Générez les clés en utilisant la méthode ci-dessous en fonction de votre système d’exploitation.
win os
  • Téléchargez l’application PuTTy.
  • Recherchez PuTTygen dans le menu Démarrer.
  • Cliquez sur le bouton Générer et survolez le pointeur de la souris.
  • Copiez la clé publique et fournissez-la à Vultr
  • Entrez la phrase de passe de la clé
  • Save 🔑Clé privée à l’endroit le plus sûr.
  • Ceci peut être utilisé pour la connexion à SSH ou SFTP.
linux 2
  • Run: ssh-keygen -t rsa. For a more secure 4096-bit key, run: ssh-keygen -t rsa -b 4096
  • Appuyez sur la touche Entrée lorsqu’on vous demande où vous voulez enregistrer la clé (l’emplacement par défaut sera utilisé).
  • Saisissez une phrase de passe pour votre clé.
  • Run cat ~/.ssh/id_rsa.pub – this will give you the key in the proper format to paste into the control panel.
  • Assurez-vous de sauvegarder le fichier ~/.ssh/id_rsa. Il ne peut pas être récupéré s’il est perdu.

Sélectionnez votre clé SSH

En suivant ces étapes, vous attacherez votre clé publique à votre nouvelle Instance. Ensuite, vous serez en mesure de vous connecter à SSH en utilisant à la fois le mot de passe en texte brut et la clé SSH.

select SSH public key

9. Lier la règle du pare-feu Web à l’instance du serveur

Firewall
  1. Cliquez sur Gérer et créez un nouveau groupe de pare-feu.
  2. Autoriser le port TCP 22 pour SSH. 80 pour HTTP et 443 HTTPS pour les règles IPV4 et IPV6.
  3. Une fois cela fait, associez le groupe Pare-feu à votre Instance.
firewall status
Accepter les connexions TCP de 22, 80, 443 seulement
Link Firewall Group
Lier la règle de pare-feu à la nouvelle instance

10. Entrez le nom d’hôte et l’étiquette cliquez sur Déployer maintenant

server hostname label

Maintenant, vous verrez l’installation dans la progression

Instance Installing

11. Aller à la page New Instance

Copiez l’adresse IP, le nom d’utilisateur et le mot de passe. Votre port par défaut est le 22.

new instance info page

12. Désactiver la connexion par mot de passe

Pour des raisons de sécurité, il est recommandé de désactiver l’authentification par mot de passe et de n’autoriser que l’authentification par clé.

  1. Modifier le fichier de configuration nano /etc/ssh/sshd_config
  2. Trouvez(CTRL + W) et recherche PasswordAuthentication
  3. Changer la valeur de oui à non
  4. Pour sauvegarder, tapez, CTRL + O
  5. Redémarrez le service SSH en utilisant la commande sudo service ssh restart
disable password auth
Désactiver l’authentification par mot de passe

A partir de la prochaine fois, vous pourrez utiliser SSH via une clé uniquement comme indiqué dans la vidéo.

Pour Linux ou Mac, utilisez le Terminal avec une commande comme celle-ci

ssh [email protected] -p 22 -i id_rsa

Step 13. Désactiver l’UFW

Lorsque vous déployez une nouvelle instance de VULTR, elle est livrée avec un UFW (Uncomplicated Firewall) activé qui bloque tous les ports sauf le port SSH 22. Cela peut renvoyer l’erreur ERR_CONNECTION_REFUSED dans le navigateur. Pour résoudre ce problème, je vous suggère de désactiver l’UFW.

ufw disable

Maintenant, je vais accélérer le processus original de déploiement de WordPress sur la pile LAMP.

Partie C. Déployer WordPress sur une pile LAMP

1. Mise à jour des référentiels

Tapez la commande suivante et appuyez sur la touche Entrée

sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot

or

wget -qO update https://dl.gulshankumar.net/update && chmod +x update

La prochaine fois, utilisez toujours le raccourci de commande ci-dessous pour mettre à jour.

./update

2. Installer MariaDB avec sécurité

Connectez-vous à nouveau et entrez la commande suivante

sudo apt install mariadb-server -y && sudo mysql_secure_installation

Répondez aux questions ci-dessous

  • Enter current password for root (enter for none): Appuyez sur la touche Entrée
  • Switch to unix_socket authentication [Y/n]: Tapez n et appuyez sur la touche Entrée.
  • Set root password? [Y/n]: Appuyez sur la touche Entrée.
  • New password: Copiez un mot de passe fort à partir du générateur de mots de passe Dashlane. Pour coller un mot de passe dans la console SSH, faites un clic droit et appuyez sur la touche Entrée. Le mot de passe ne sera pas visible à l’écran.
  • Re-enter new password: Faites un clic droit et appuyez à nouveau sur la touche Entrée.

Après avoir réussi à définir le mot de passe, vous verrez

Password updated successfully!
Reloading privilege tables..
... Success!

Vous devez également répondre aux questions suivantes.

Remove anonymous users? [Y/n]: Appuyez sur Y et entrez
Disallow root login remotely? [Y/n]: Appuyez sur Y et entrez
Remove test database and access to it? [Y/n]:Appuyez sur Y et entrez
Reload privilege tables now? [Y/n]: Appuyez sur Y et entrez

3. Créer une nouvelle base de données pour WordPress

Connectez-vous à MySQL, appuyez sur la touche entrée lorsqu’il vous demande votre mot de passe.

mysql -u root -p

Créez une nouvelle base de données, et accordez des privilèges à son utilisateur avec un mot de passe. C’est là que WordPress stocke toutes les informations concernant les articles, les pages, les thèmes, les plugins, etc.

create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;

Où votre …
la base de données est wordpress
nom d’utilisateur est gulshan
le mot de passe est 5pY8CKJxDRJEGQNkX7

Conseil : Pensez à utiliser un identifiant de connexion unique

4. Installez PHP 8.2, Apache2 et définissez les permissions.

À l’heure actuelle, PHP 8.2 est la dernière version stable. Si vous avez besoin d’une version différente de PHP, vous devez conserver la même version dans toutes les commandes ci-dessous.

sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/

Modifier la configuration de PHP

La plupart des thèmes et plugins de fantaisie nécessitent une configuration PHP haut de gamme pour fonctionner. Par conséquent, nous devons effectuer ces modifications.

sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart

5. Installer le certificat SSL Let’s Encrypt Wildcard

Créez un fichier cloudflare.ini dans le répertoire /root/.secrets/.

mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini

Ajoutez le code ci-dessous et enregistrez en utilisant CTRL+O et quittez en utilisant CTRL+X.

dns_cloudflare_email = "[email protected]"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"

Trouvez votre e-mail Cloudflare et votre clé API globale dans « Mon profil » > Jetons API > Clé API globale.

chmod 0400 /root/.secrets/cloudflare.ini

Installez Certbot et DNS Authenticator en fonction du système d’exploitation et du serveur web HTTP.

apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare

Obtenir un certificat SSL Wildcard

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01

Renouvellement automatique à l’aide d’une tâche Cron

  • Type crontab -e
  • Type 1 pour l’éditeur nano
  • Entrez la commande suivante et enregistrez-la
0 0 * * *  /etc/init.d/apache2 reload >/dev/null 2>&1

Renouvellement des tests

certbot renew --dry-run

Activez ces modules utiles

a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2

6. Créez un répertoire d’applications pour chaque site WordPress que vous souhaitez installer.

mkdir -p /var/www/example.com/public

Ce sera le chemin de la racine de votre document dans votre fichier de configuration Apache. La raison de créer exemple.com à l’intérieur de www est de garder chaque site organisé. Ensuite, j’ai également créé un répertoire public dans le but d’y conserver tous les fichiers de base de WordPress, mais wp-config.php à un niveau supérieur (/var/www/example.com/).

7. Créer la configuration d’Apache2

C’est important lorsque vous devez configurer votre domaine, comment Apache2 doit traiter vos requêtes HTTP.

Suppression des fichiers de configuration des blocs serveur par défaut d’Apache2

rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars

Maintenant, créez les fichiers de configuration du nouveau bloc serveur. Vous devez faire cette étape chaque fois que vous voulez ajouter un nouveau WordPress sur le même serveur.

Veuillez remplacer exemple.com par votre propre domaine et n’oubliez pas de terminer le nom du fichier de configuration par l’extension .conf. Sinon, cela ne fonctionnera pas.

cd /etc/apache2/sites-available/
nano example.com.conf
  1. Remplacer exemple.com par son propre domaine
  2. Entrez le code ci-dessous et appuyez sur ctrl+o pour enregistrer et ctrl+x pour quitter.
##############################################################
#                                                               
# NOTES : Merci d'effectuer une recherche et un remplacement de exemple.com par votre propre domaine.
#                                                                
##############################################################


# Nous allons forcer HTTPS non-www
# Si vous voulez HTTPS www, gardez https://www.example.com/ dans la dernière ligne.
# Ou vous risquez de rencontrer un problème de boucle de redirection.

<VirtualHost *:80>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Protocols h2 h2c http/1.1
   DirectoryIndex index.php index.html
    
   # Recommandé aux utilisateurs de Cloudflare
   # RemoteIPHeader X-Forwarded-For
   
   # Chemin de la racine du document (Faites attention à ce chemin pour éviter les 404)
   DocumentRoot /var/www/example.com/public
   
   # Logs Path is /var/log/apache2/example.com-access.log
   ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
   CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
   
   # Let's Encrypt SSL
   SSLEngine On
   SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
   
   # Autoriser l'utilisation du fichier .htaccess pour remplacer la configuration
   <Directory /var/www/example.com/public>
     Options FollowSymLinks
     AllowOverride All
     Require all granted
   </Directory>
   
   # Bloquer l'exécution de PHP dans le répertoire Uploads
   <Directory /var/www/example.com/public/wp-content/uploads>
    <Files *.php>
      deny from all
    </Files>
   </Directory>
   
   # Protéger wp-config.php
   <files wp-config.php>
      order allow,deny
      deny from all
   </files>

  # HTTP Auth pour une sécurité supplémentaire
  # Si vous souhaitez utiliser HTTP Auth pour la page de connexion de WordPress, pensez à décommenter ce bloc de code.
  # Si vous le faites, vous devez également générer le fichier .htpasswd.
  # <Files wp-login.php>
  #  AuthName "Admins Only"
  #    AuthUserFile /var/www/.htpasswd
  #   AuthType basic
  #    require user gulshan
  #   <RequireAny>
  #      Require ip 127.0.0.1
  #       Require valid-user
  #   </RequireAny>
  # </Files>
   
# Bloquer XML-RPC pour prévenir les attaques DDoS.
   <Files xmlrpc.php>
      Order Deny,Allow
      Deny from all
   </Files>
   
# Gérer l'exécution de PHP
   <FilesMatch ".php$">
      SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
   </FilesMatch>
</VirtualHost>

Pour sauvegarder, appuyez sur CTRL+O et Enter clé. Ensuite, quittez l’éditeur nano en utilisant la commande CTRL+X.

Pour activer le bloc serveur, entrez la commande

Avant d’exécuter la commande ci-dessous, veuillez remplacer exemple.com par votre propre domaine.

a2ensite example.com.conf

Configuration du test (facultatif)

apache2 -t

Redémarrer et mettre à jour

service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y

8. Installer les fichiers WordPress

Téléchargez les fichiers de WordPress dans le répertoire /var/www/example.com/public/ et définissez les autorisations.

cd /var/www/example.com/public/ && wget https://fr.wordpress.org/latest-fr_FR.tar.gz && tar -xvzf latest-fr_FR.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf latest-fr_FR.tar.gz wordpress && chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

Pour mettre à jour la permission dans le futur, utilisez la commande ci-dessous. Cela va définir www-data pour tout ce qui se trouve dans le répertoire /var/www/.

chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

9. Mise à jour du DNS

Si vous hébergez WordPress localement, si vous voulez contourner le proxy ou si vous voulez effectuer une migration sans interruption de service, cette étape est utile. Je préfère généralement dans le cas d’une zone de développement statique de WordPress. 😉

  • Il y a deux façons de faire pointer les DNS. Si vous migrez votre site vers Vultr et que vous souhaitez d’abord le tester localement, modifiez votre fichier hosts et faites pointer les DNS à cet endroit.

Pour Windows

  • Allez dans les propriétés de C:\Windows\System32\drivers\etc\hosts
  • Changez l’autorisation « Sécurité » en contrôle total pour votre nom d’utilisateur actuel.
  • Vous pouvez maintenant modifier librement le fichier hosts sous votre utilisateur système et le sauvegarder.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com

Par exemple, voici à quoi il devrait ressembler

Pour Mac ou Linux

Vous pouvez éditer le fichier hosts en utilisant cette commande sous l’utilisateur sudo.

sudo nano /etc/hosts

Mise à jour des DNS avec Cloudflare

  • Si tout semble parfait et que vous voulez mettre votre site en ligne, connectez-vous à Cloudflare DNS et mettez à jour la nouvelle IP.
Record TypeNameValue
A@IPV4 Address
AAAA@IPV6 Address
CNAMEwwwexample.com

où @ désigne le domaine racine exemple.com

9. Visitez votre nom de domaine pour configurer WordPress

Si vous souhaitez conserver le domaine de la version non-www pour votre WordPress, visitez la version non-www ou www.

https://example.com
  • Fournissez l’identifiant de connexion à la base de données pour commencer l’installation de WordPress.
  • Installation d’exécution
  • Remplissez les détails de base de votre nouveau site et installez WordPress.
  • Connectez-vous à WordPress

Autres choses nécessaires

  • Augmentez la mémoire swap pour faire face à une charge soudaine.
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • Assurez-vous d’utiliser un plugin de mise en cache des pages pour garder la charge du serveur sous contrôle. Comme il s’agit d’une pile LAMP, je vous recommande WP Fastest Cache.
  • Gardez toujours une sauvegarde.
  • Utilisez les services du plugin SMTP pour envoyer les emails sortants de WordPress, sinon vous ne pourrez pas recevoir les messages du lien de réinitialisation du mot de passe, du formulaire de contact 7.

Enfin, l’installation de WordPress est terminée.

J’apprécie grandement le temps précieux que vous avez consacré à la lecture de cet article. Rendez-vous dans le prochain tutoriel !

Laisser un commentaire