Comment installer WordPress facilement sur un serveur Apache ?

I. Présentation

Dans ce tutoriel, nous allons voir comment installer WordPress facilement sur son serveur Web LAMP : Linux, Apache, MariaDB (MySQL) et PHP. Ce guide vous aidera étape par étape pour installer WordPress correctement.

Tutoriel pas à pas au format vidéo, en partant de zéro :

WordPress est un CMS (Content Management System) créé en 2003 qui va permettre de mettre en ligne un site Internet sans partir de zéro puisqu'il permet de créer, de modifier et d'administrer facilement un site web.

Aujourd'hui, c'est WordPress est le CMS le plus populaire et il permet de mettre en place de nombreux types de sites : sites vitrine, blog, sites d'e-commerce, etc...Grâce à son énorme communauté et les nombreux développeurs qui proposent des plug-ins (gratuits ou payants) afin de permettre la personnalisation de son site Web.

Nativement, WordPress va permettre de créer des utilisateurs, des pages et des articles. Il va permettre aussi de gérer la configuration globale du site (nom, adresse, format des liens, etc...). Cette base solide doit être complétée par des plug-ins (appelés aussi extensions) qui vont permettre d'ajouter des fonctionnalités à votre site WordPress, mais aussi d'avoir un thème graphique correspondant à vos attentes.

II. Prérequis pour installer WordPress

Certains hébergeurs proposent une installation clé en main, il suffit de cliquer sur un bouton et WordPress se déploie tout seul. Par contre, si vous gérez vous-même votre serveur, par exemple sur un serveur VPS ou un serveur dédié, c'est vous qui allez devoir réaliser l'installation.

Quant aux ressources que doit avoir votre machine, c'est-à-dire l'espace de stockage, le CPU et la RAM, j'ai envie de dire "ça dépend". En effet, au début ce sera surement très peu, mais si votre site grossit et qu'il y a de nombreux visiteurs, vous allez avoir besoin d'adapter les ressources en conséquence.

Pour suivre ce tutoriel, vous avez besoin d'une machine sous Linux, avec un accès "root" sur cette machine (ou un niveau de droits suffisants pour réaliser les manipulations qui vont suivre).

A. L'archive d'installation de WordPress

Connectez-vous sur votre serveur Linux en SSH afin de télécharger l'archive ZIP qui contient les sources de WordPress.

Positionnez-vous dans le dossier "/tmp" et téléchargez la dernière version de WordPress :

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

Voilà, laissez le téléchargement s'effectuer... Nous allons utiliser cette archive dans une prochaine étape.

B. Le serveur Web

Dans cet exemple, je vais partir sur un socle LAMP sous Debian 11 pour effectuer l'installation. Cela correspond à un serveur Web basé sur Linux (Debian 11) sur lequel on va retrouver Apache, MariaDB ou MySQL et PHP.

Pour Apache, installez la dernière version disponible dans les dépôts de votre distribution et vérifiez que vous êtes en mesure d'activer certains modules ("deflate" pour la compression GZip, "rewrite" pour la réécriture d'URL et "ssl" pour le support du HTTPS).

Au sujet de PHP, pour le moment je vous recommande de commencer par PHP 7.4 dans un premier temps et de basculer sur PHP 8 dans un second temps. Le support pour les mises à jour de sécurité de PHP 7.4 expire en novembre 2022.

Pour le système de gestion de bases de données, MariaDB (open source fork de MySQL) ou MySQL (gratuit, mais propriétaire Oracle), installez la dernière version disponible.

Si vous avez besoin d'aide pour mettre en place le serveur Web, c'est-à-dire installer les différents paquets, suivez le premier lien ci-dessous. Ce sera mon point de départ.

III. Créer une base de données pour WordPress

WordPress s'appuie sur une base de données afin de stocker toutes les informations liées à la configuration et à vos contenus (catégorie, pages, articles, etc.). Sur notre serveur Web, nous allons lui créer une base de données dédiée avec un utilisateur dédié, et ce dernier aura les droits uniquement sur la BDD WordPress.

Que ce soit avec MariaDB ou MySQL, vous pouvez vous connecter à la console de votre instance avec la commande suivante :

mysql –u root –p

Saisissez le mot de passe "root" de votre instance : une console va s'ouvrir, prête à recevoir des commandes SQL.

Première étape : la création de la base de données. Ne donnez pas un nom trop évident, mais parlant malgré tout, par exemple cela peut être : wp202110_itconnect. Ce nom reste parlant pour vous : on sait qu'il s'agit de la base de données WordPress (wp), créée en octobre 2021 pour le site "itconnect".

CREATE DATABASE wp202110_itconnect;
# Retour dans la console : 
Query OK, 1 row affected (0.001 sec)

Vous pouvez lister les bases de données de votre instance avec la commande suivante :

SHOW DATABASES;

On peut voir que notre base de données apparaît bien dans la liste :

Deuxième étape : créer l'utilisateur qui sera administrateur de la base de données WordPress. Cet utilisateur sera nommé "adminwp202110_itconnect" et il aura comme mot de passe "Votre-Super-Mot-De-Passe".

Ce qui donne la requête SQL suivante :

CREATE USER 'adminwp202110_itconnect'@'localhost' IDENTIFIED BY 'Votre-Super-Mot-De-Passe';

Troisième étape : donner tous les droits à l'utilisateur "adminwp202110_itconnect" sur la base de données WordPress. Notre serveur Web et la base de données étant sur le même serveur, nous allons donner ces droits pour une connexion locale. Ce qui donne :

GRANT ALL PRIVILEGES ON wp202110_itconnect.* TO adminwp202110_itconnect@localhost;

Enfin, il faut exécuter la commande suivante pour actualiser les droits et activer les nouveaux privilèges sur notre base de données :

FLUSH PRIVILEGES;

La base de données pour WordPress est prête. Pour le moment elle est vide, mais WordPress va créer sa structure de tables lors de l'installation. Quittez la console MariaDB / MySQL :

exit

Passons à l'étape suivante.

IV. Décompresser l'archive WordPress à la racine du site

Nous allons utiliser le site par défaut d'Apache, qui a pour racine "/var/www/html" afin de stocker les données de notre site WordPress. Au préalable, on supprime la page d'index créée par défaut par Apache :

sudo rm /var/www/html/index.html

Ensuite, on installe le paquet « zip » sur notre serveur pour pouvoir décompresser l’archive de WordPress :

sudo apt-get update 
sudo apt-get install zip

On décompresser l'archive dans "/var/www/html" grâce à la commande suivante (en étant positionné dans le dossier où l'on a téléchargé le fichier latest.zip) :

sudo unzip latest.zip -d /var/www/html

L'option "-d" permet de définir là où sera décompressée l'archive. Le dossier WordPress apparaitra donc dans "/var/www/html" qui est le dossier où sont stockées les pages web par défaut.

Le problème, c'est que là on vient de décompresser le contenu de l'archive ZIP dans un dossier nommé "wordpress", ce qui donne : /var/www/html/wordpress. Du coup, pour accéder à notre site, il faudra faire : http://domaine.fr/wordpress/. Ce n'est pas top, nous allons corriger cela dès maintenant.

Déplacez-vous dans le dossier "/var/www/html" :

cd /var/www/html

Ensuite, exécutez la commande ci-dessous pour déplacer tout le contenu du dossier "wordpress" à la racine de notre site :

sudo mv wordpress/* /var/www/html/

Puisque le dossier "wordpress" ne sert plus à rien, on va le supprimer :

sudo rm wordpress/ -Rf

Enfin, on termine en donnant les droits à l'utilisateur "www-data" (correspondant à Apache) sur tous les fichiers de notre site, de manière récursive :

sudo chown -R www-data:www-data /var/www/html/

On obtient une belle liste de fichiers et dossiers. Au niveau des droits et pour des raisons de sécurité, vous devez avoir 755 sur les dossiers et 644 sur les fichiers. Ce qui est le cas par défaut si vous n'avez pas fait de modifications. En aucun cas vous ne devez poser des droits "777" sur un dossier ou un fichier.

Aperçu des droits WordPress
Aperçu des droits WordPress

Si vous avez un doute ou que vous pensez avoir modifié les droits, vous pouvez rectifier la situation.

Pour les fichiers, exécutez cette commande :

sudo find /var/www/html/ -type f -exec chmod 644 {} \;

Pour les dossiers, exécutez cette commande :

sudo find /var/www/html/ -type d -exec chmod 755 {} \;

Passez à la suite : ce sera à partir d'un navigateur.

V. Installation de WordPress

Pour la première fois, nous allons nous connecter sur l'interface web WordPress dans le but d'effectuer l'installation. Pour cela, il faut se rendre sur "http://IP-SERVEUR" avec votre navigateur préféré. Si vous avez déjà enregistré le nom de domaine et que l'enregistrement A du DNS pointe vers votre serveur, vous devriez pouvoir accéder au site grâce au nom de domaine du serveur.

Note : vous pouvez aussi tricher avec le fichier hosts de votre machine cliente (Linux : /etc/hosts - Windows : C:\Windows\System32\drivers\etc\hosts) afin d'associer l'adresse IP de votre serveur à un nom de domaine en créant un enregistrement local.

La première étape consiste à choisir la langue du site et de l'interface de WordPress. Ça devrait aller. 🙂

Ensuite, cliquez sur le bouton "C'est parti !". WordPress va générer lui-même le fichier "wp-config.php" : il s'agit d'un fichier de configuration très sensible qui contient des informations confidentielles comme le nom de la base de données, le nom de l'utilisateur pour s'y connecter et le mot de passe associé. Indispensable pour que PHP (et donc WordPress) puisse utiliser votre base de données.

Voilà l'étape la plus délicate de l'installation via l'assistant. Vous devez renseigner les différents champs pour indiquer à WordPress comment se connecter à votre base de données.

  • Nom de la base de données : dans cet exemple, ce sera "wp202110_itconnect"
  • Identifiant : le nom de l'utilisateur qui a les droits sur la base de données, en l'occurrence "adminwp202110_itconnect"
  • Mot de passe : le mot de passe de cet utilisateur
  • Adresse de la base de données : si le serveur Web et la base de données sont sur le même serveur, indiquez "localhost", sinon indiquez l'adresse IP du serveur distant
  • Préfixe des tables : chaque table de la base de données WordPress aura un préfixe. Par défaut, ce préfixe est "wp" donc par exemple la table des utilisateurs sera nommée "wp_users". Il faut personnaliser ce préfixe et le rendre un peu plus aléatoire pour des raisons de sécurité. Pour ma part, je vais partir sur "web14_", mais vous pouvez prendre aussi quelque chose d'aléatoire comme "sg389_".

Quand vous êtes prêt, cliquez sur "Envoyer". Ce qui donne au final :

Indiquez à WordPress comment il doit se connecter à votre base de données.
Indiquez à WordPress comment il doit se connecter à votre base de données.

WordPress va tester de se connecter à votre base de données et si cela fonctionne, un bouton "Lancer l'installation" va s'afficher. Cliquez dessus.

Installer WordPress sous Linux : c'est le grand moment !
Installer WordPress sous Linux : c'est le grand moment !

Il ne reste que quelques champs à renseigner comme le titre du site (modifiable ultérieurement) et la création d'un premier compte utilisateur. Je dirais même d'un compte administrateur, car ce compte sera admin du site. Évitez les identifiants trop évidents comme "admin", "administrateur", "webadmin", "adminwordpress", etc... Prenez quelque chose de plus original et personnel !

Choisissez un mot de passe complexe pour cet utilisateur, indiquez l'adresse e-mail associée et cliquez sur "Installer WordPress". Si vous désirez monter votre site tranquillement sans qu'il soit indexer par Google et consort, cochez la case associée à l'option "Visibilité par les moteurs de recherche".

WordPress est installé ! Cliquez sur le bouton "Se connecter". Sur la page de connexion qui apparaît, authentifiez-vous avec le compte admin que vous venez de créer, pour ma part "adm_florian".

Avant d'aller plus loin, prenez 30 secondes pour retourner sur votre console Linux et réaliser deux petites opérations. Tout d'abord pour supprimer le fichier "wp-config-sample.php", car il n'a plus d'intérêt (nous avons notre fichier wp-config.php définitif).

sudo rm /var/www/html/wp-config-sample.php

Ensuite, pour appliquer des droits très restrictifs sur le fichier "wp-config.php" pour le basculer en lecture seule seulement pour Apache. Indispensable pour des raisons de sécurité.

sudo chmod 400 /var/www/html/wp-config.php

Suite à la connexion, vous arrivez sur l'interface d'administration de WordPress. C'est votre centre de contrôle pour créer vos pages, vos articles, mais aussi ajouter des extensions, des thèmes et configurer WordPress dans son ensemble.

Cette interface d'administration est accessible à l'adresse suivante : http://<adresse-ip-ou-domaine>/wp-admin/.

L'interface d'administration de WordPress
L'interface d'administration de WordPress

En haut de l'interface, on peut qu'il y a une notification avec un "1". Cette icône correspond aux mises à jour et signifie qu'il y a une mise à jour disponible. Il peut s'agir d'une mise à jour de WordPress, d'une extension, d'un thème ou d'une traduction.

Par défaut, WordPress est livré avec deux extensions :

  • Akismet Anti-Spam qui est une extension performante pour lutter contre les spams dans les commentaires (je vous la recommande si vous envisagez de laisser la possibilité de publier des commentaires sur votre site)
  • Hello Dolly qui ne sert pas à grand-chose puisqu'elle sert seulement à afficher les paroles de la chanson "Hello, Dolly" de Louis Armstrong. Ne me demandez pas pourquoi, mais elle est là.

Ces deux extensions sont désactivées par défaut. En fait, une extension peut être présente sur votre installation de WordPress, c'est-à-dire qu'elle est téléchargée, mais non activée. De toute façon, lorsqu'une nouvelle extension est ajoutée sur WordPress, il faut toujours l'activer manuellement.

Le suivi des mises à jour est indispensable
Le suivi des mises à jour est indispensable

Sur le site en lui-même, c'est-à-dire la partie publique, cela donne :

WordPress est installé et il ne demande plus qu'une chose : être configuré et personnalisé.

Je vous recommande fortement de maintenir dans le temps votre site WordPress et de bien suivre les mises à jour. C'est un outil très populaire et donc, de fait, très ciblé par les hackers. Lorsque vous choisissez d'installer une extension, veillez à ce que ce soit une extension suivie (regardez la fréquence des mises à jour et la date de la dernière mise à jour) et bien notée.

Il y a également de bonnes extensions à mettre en place pour sécuriser son site WordPress contre les attaques courantes en ajoutant une fonction de pare-feu à WordPress. Pensez également à mettre en place une solution pour sauvegarder votre site (base de données + fichiers).

Si vous avez des questions sur l'installation ou sur WordPress, n'hésitez pas à laisser un commentaire sur ce tutoriel. De même si vous aimeriez un tutoriel sur une fonctionnalité particulière.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5470.Voir tous les posts

14 thoughts on “Comment installer WordPress facilement sur un serveur Apache ?

  • Bonjour,
    j’ai suivi avec intérêt votre poste concernant l’installation WordPress et je vous en remercie parce que ça fonctionne 🙂 Je ne pensais pas être capable de manipuler le terminal Linux (pour info j’utilise un ChromeBook avec 64 Go de stockage sous Chrome OS) grâce à vos explications j’ai pu installé Debian 11.
    Après vérification je m’aperçois que les fichiers :
    find/var/www/html/ -type d -exec chmod 755{}\;
    find/var/www/html/ -type f -exec chmod 644{}\;
    sont manquant.
    Je vous remercie par avance pour vos explications.

    Répondre
  • Bonjour,

    Après 3 tentatives sur mon Rock64 (equivalent a un Raspberry) , Apache est bien OK, PHP et la page de test est bien OK, Mariadb également. Lorsque je lance met l’adresse ip du serveur, j’ai systematiquement :
    « Your PHP installation appears to be missing the MySQL extension which is required by WordPress. »

    La page test avec la commande phpinfo() etait bien ok. Je ne sais plus quoi faire :-(.

    Si vous avez une idée. Un grand merci par avance !

    Votre tuto est vraiment top en mode pas à pas j’adore !

    Répondre
  • vraiment merci pour votre soutient.toutes les opérations ont réussit.mon system: ubuntu 20 sur un pentium

    Répondre
  • qd je suis sur la page de première connexion a wordpress, il affiche le texte
    « Your PHP installation appears to be missing the MySQL extension which is required by WordPress. »
    Vous pouvez m’aidez svp
    Merci

    Répondre
    • Hello,
      J’aurais tendance à dire qu’il manque ce paquet : php-mysql.
      Il permet à PHP d’interagir avec la base de données MySQL/MariaDB.
      A+
      Florian

      Répondre
      • Bonjour, j’ai exactement le même problème et avec l’installation de php-mysql cela ne change rien, une autre piste ?

        Répondre
        • Bonsoir,
          J’ai eu le même message d’erreur et il ma suffit de redémarrer ma VM où est installer WordPress, PHP, MariaDB, …
          Après cela j’ai rafraîchi la page web de mon navigateur internet et c’est passé.

          Répondre
  • Salut Florian,
    Super tuto, j’ai bien suivi tout le processus et l’installation de wordpress se fait correctement mais lorsque je veux changer les permaliens et mettant « titre de la publication » j’ai l’erreur « La mise à jour a échoué. La réponse n’est pas une réponse JSON valide. » J’ai cherché sur le net et tenté d’appliquer plusieurs méthodes mais j’ai toujours cette erreur!

    ça fonctionne quand je garde le réglage des permaliens en mode basique!
    Est-ce un problème de droit? je ne sait plus trop quoi faire!
    J’ai déjà ré-installé tout le serveur plusieurs fois, soit sans générer de certificat ssl soit avec, j’ai essayé de mettre à jour le module php en 8 et j’ai toujours le même souci! Merci pour votre aide!

    Répondre
    • Bonjour, merci beaucoup pour cet exemple. Tout est ok pour l’installation grâce à vous.

      Aujourd’hui le site que je créé est accessible par l’adresse IP/wp… du serveur sur lequel il est hébergé.

      Le serveur est aussi accessible par le nom de domaine, mais renvoi la page index.html, qui n’affiche rien.

      Je souhaite transférer le site wp pour qu’il soit accessible par le nom de domaine et non plus par l’IP/wp…, seulement je n’arrive pas à trouver d’infos concrètes sur ce type de modifications ?

      Serai-ce dans la config wp sur mon serveur, dois-je déplacer le dossier a un autre emplacement du serveur, dois-je édité le fichier index.html pour qu’il renvoi vers le dossier wp ?

      J’ai du mal à visualiser ce que je dois faire et me demande si vous pouviez m’aider et m’orienter ?

      Par avance merci pour vos réponses.
      Benjamin

      Répondre
  • Florian
    Super ton tuto !
    j’ai eu le même problème, « Your PHP installation appears to be missing the MySQL extension which is required by WordPress. »j’ai installer php-db c’est passé.

    Répondre
  • Je me demande avec tout les tutos que se soit Windows ou Linux, comment les gens peuvent visualiser d’autres WordPress hormis ce faire de la pub, sinon il y en à qui ne sont jamais mis en avant, mais qui le mériterez mais qui reste dans le sable ?

    Je vous remercie bonne journée !

    Répondre
  • Bonjour,

    j’ai un souci, lorsque je certifie mon wordpress avec let’s and crypt, le css disparait totalement de mon site web… (j’ai mis en place une reverse proxy est-ce que cela peut avoir un lien ??) de plus lorsque je rajoute après le nom de domaine (publique) /wp-admin/, le site me renvoie vers mon ip local du serveur…

    Je ne comprends pas pourriez-vous m’aider ?

    Répondre
  • Merci super tuto et très bonne explication , tout fonctionne .

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.