Tutoriel complet : installation de WordPress sur Debian 13

Tutoriel complet : installation de WordPress sur Debian 13

Descriptions préliminaires

WordPress
WordPress est un système de gestion de contenu (CMS) open source permettant de créer et gérer facilement des sites Web et des blogs. Il est principalement écrit en PHP et utilise une base de données MySQL ou MariaDB pour enregistrer le contenu du site, les utilisateurs, les paramètres et les différentes configurations.

PHP
PHP est un langage de programmation exécuté côté serveur. WordPress utilise PHP pour générer dynamiquement les pages Web avant de les envoyer au navigateur.

Apache
Apache est le serveur Web qui recevra les requêtes HTTP ou HTTPS des utilisateurs et transmettra les pages générées par WordPress.

MySQL / MariaDB
MySQL est un système de gestion de base de données relationnelle. MariaDB est un fork de MySQL largement utilisé sous Linux et compatible avec WordPress. Sur Debian, MariaDB est généralement utilisé à la place de MySQL.

Installation de WordPress sur Debian

Étapes principales :
  1. Mettre à jour le serveur
  2. Installer les prérequis
  3. Configurer Apache et le VirtualHost
  4. Sécuriser MariaDB
  5. Générer le mot de passe de la base de données
  6. Créer la base de données WordPress
  7. Télécharger et installer WordPress
  8. Configurer wp-config.php
  9. Configurer les permissions
  10. Finaliser l'installation dans le navigateur
  11. Sécuriser l'accès à l'administration

1. Mettre à jour le système

Commencer par mettre à jour la liste des paquets et les logiciels déjà installés.

sudo apt update
sudo apt upgrade -y

2. Installer les prérequis

WordPress a besoin d'un serveur Web, de PHP et d'une base de données.

Installer Apache

Vérifier premièrement si Apache est déjà installé :

apache2 -v

Si Apache n'est pas installé :

sudo apt install apache2 -y

Activer Apache au démarrage et démarrer immédiatement le service :

sudo systemctl enable --now apache2

Vérifier son fonctionnement :

sudo systemctl status apache2

Résultat attendu : le service doit afficher active (running).

Installer PHP

sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-soap php-intl php-zip php-imagick unzip wget -y

Vérifier la version de PHP :

php -v

Installer MariaDB

sudo apt install mariadb-server -y

Activer et démarrer MariaDB :

sudo systemctl enable --now mariadb

Vérifier son fonctionnement :

sudo systemctl status mariadb

3. Créer le répertoire du site WordPress

WordPress sera installé dans un répertoire dédié plutôt que directement dans /var/www/html.

sudo mkdir -p /var/www/wp-monsite

Le répertoire utilisé pour le site sera :

/var/www/wp-monsite

4. Créer le VirtualHost Apache

Créer le fichier de configuration :

sudo nano /etc/apache2/sites-available/wp-monsite.conf

Ajouter la configuration suivante :

<VirtualHost *:80>

    ServerName wp-monsite.ca
    ServerAlias www.wp-monsite.ca

    DocumentRoot /var/www/wp-monsite

    <Directory /var/www/wp-monsite>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/wp-monsite-error.log
    CustomLog ${APACHE_LOG_DIR}/wp-monsite-access.log combined

</VirtualHost>
Important :
Remplacer wp-monsite.ca et www.wp-monsite.ca par le véritable nom de domaine utilisé pour le site.

Activer le site :

sudo a2ensite wp-monsite.conf

Activer le module Apache rewrite :

sudo a2enmod rewrite

Si le site Apache par défaut n'est plus nécessaire, le désactiver :

sudo a2dissite 000-default.conf

Vérifier la configuration Apache :

sudo apache2ctl configtest

Résultat attendu :

Syntax OK

Recharger Apache :

sudo systemctl reload apache2

5. Sécuriser MariaDB

Lancer l'utilitaire de sécurisation :

sudo mariadb-secure-installation

Parmi les options proposées, il est recommandé de :

  • supprimer les utilisateurs anonymes ;
  • interdire la connexion distante de l'utilisateur root ;
  • supprimer la base de données de test ;
  • recharger les tables de privilèges.
Les questions exactes affichées par mysql_secure_installation peuvent varier légèrement selon la version de MariaDB installée.

6. Générer un mot de passe pour WordPress

Avant de créer l'utilisateur de la base de données, générer un mot de passe long et aléatoire.

openssl rand -base64 32

Exemple de résultat :

3Yk8Lqv4SxN2u7pF9mA1cD6rT0wE5zBhKXoQnJgP4Ls=
Très important :
Copier immédiatement le mot de passe généré et le conserver dans un endroit sécurisé. Ce même mot de passe devra être utilisé dans MariaDB et dans le fichier wp-config.php.

7. Créer la base de données WordPress

Se connecter à MariaDB :

sudo mariadb

Créer la base de données :

CREATE DATABASE wordpress
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

Créer ensuite l'utilisateur WordPress en utilisant le mot de passe généré précédemment :

CREATE USER 'wordpressuser'@'localhost'
IDENTIFIED BY 'MOT_DE_PASSE_GENERE';

Donner à cet utilisateur les permissions sur la base WordPress :

GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Explications :

  • CREATE DATABASE crée la base utilisée par WordPress.
  • CREATE USER crée un utilisateur uniquement pour WordPress.
  • GRANT ALL PRIVILEGES lui donne les permissions sur cette base uniquement.
  • FLUSH PRIVILEGES recharge les privilèges.
  • EXIT quitte MariaDB.

8. Télécharger WordPress

Se placer temporairement dans /tmp :

cd /tmp

Télécharger la dernière version de WordPress :

wget https://wordpress.org/latest.tar.gz

Extraire l'archive :

tar -xzf latest.tar.gz

Copier WordPress dans le répertoire du VirtualHost :

sudo cp -a wordpress/. /var/www/wp-monsite/

Les fichiers WordPress doivent maintenant se trouver directement dans :

/var/www/wp-monsite

9. Configurer wp-config.php

Se déplacer dans le répertoire WordPress :

cd /var/www/wp-monsite

Créer le fichier de configuration à partir du modèle :

sudo cp wp-config-sample.php wp-config.php

Ouvrir le fichier :

sudo nano wp-config.php

Configurer les paramètres de connexion à la base de données :

define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpressuser' );
define( 'DB_PASSWORD', 'MOT_DE_PASSE_GENERE' );
define( 'DB_HOST', 'localhost' );
Attention :
La valeur utilisée pour DB_PASSWORD doit être exactement le même mot de passe que celui utilisé lors de la création de wordpressuser dans MariaDB.

Ne pas générer un nouveau mot de passe à cette étape.

10. Configurer les clés de sécurité WordPress

Dans wp-config.php, WordPress contient également plusieurs clés utilisées pour sécuriser les sessions et les cookies.

Remplacer les valeurs par défaut par des clés aléatoires générées par WordPress.

Ces clés sont différentes du mot de passe MariaDB. Elles servent à protéger les sessions d'authentification WordPress.

11. Configurer les permissions

Donner les fichiers du site à l'utilisateur utilisé par Apache :

sudo chown -R www-data:www-data /var/www/wp-monsite

Configurer les permissions des répertoires :

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

Configurer les permissions des fichiers :

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

12. Vérifier Apache

Faire une dernière vérification :

sudo apache2ctl configtest

Puis recharger Apache :

sudo systemctl reload apache2

13. Finaliser l'installation dans le navigateur

Ouvrir un navigateur et accéder au nom de domaine configuré dans le VirtualHost.

http://wp-monsite.ca

L'assistant d'installation WordPress demandera notamment :

  • la langue du site ;
  • le titre du site ;
  • le nom du compte administrateur ;
  • le mot de passe administrateur ;
  • l'adresse courriel de l'administrateur.

14. Créer un compte administrateur sécurisé

Le site sera exposé à Internet.

Le compte administrateur doit donc utiliser un mot de passe très complexe, long et unique.

Enregistrer ce mot de passe dans un endroit sécurisé, idéalement dans un gestionnaire de mots de passe.

Éviter également les noms d'utilisateur évidents comme :

  • admin
  • administrator
  • root
  • wordpress

Utiliser plutôt un nom d'utilisateur administrateur moins facile à deviner.

15. Vérifier le fonctionnement de WordPress

Vérifier premièrement la page publique du site :

http://wp-monsite.ca

Puis vérifier l'interface d'administration :

http://wp-monsite.ca/wp-admin
Si les deux pages fonctionnent correctement, l'installation de base de WordPress est terminée.

16. Masquer la page de connexion WordPress

Par défaut, la page de connexion à l'administration WordPress est facilement identifiable :

/wp-admin
/wp-login.php

Pour limiter les tentatives automatisées les plus simples, installer l'extension :

WPS Hide Login

Dans WordPress :

  1. Ouvrir Extensions.
  2. Cliquer sur Ajouter une extension.
  3. Rechercher WPS Hide Login.
  4. Installer l'extension.
  5. Activer l'extension.

Configurer ensuite une nouvelle adresse de connexion.

Par exemple :

https://wp-monsite.ca/gestion-site-7x92

Éviter les chemins faciles à deviner :

  • /admin
  • /login
  • /connexion
  • /backend
Important :
Conserver la nouvelle adresse de connexion dans un endroit sécurisé. Si elle est oubliée, l'accès normal à l'administration pourrait devenir plus difficile.
Masquer /wp-admin ou /wp-login.php ne constitue pas à lui seul une protection suffisante. Cette mesure doit être utilisée en complément d'un mot de passe complexe, de HTTPS, des mises à jour et idéalement de l'authentification à deux facteurs.

17. Sécurité minimale avant l'exposition à Internet

Avant de considérer le serveur prêt à être publié, vérifier au minimum les éléments suivants :

  • utiliser HTTPS ;
  • utiliser un mot de passe administrateur long et unique ;
  • conserver les mots de passe dans un gestionnaire de mots de passe ;
  • maintenir WordPress à jour ;
  • maintenir les extensions à jour ;
  • maintenir les thèmes à jour ;
  • supprimer les extensions inutilisées ;
  • supprimer les thèmes inutilisés ;
  • mettre en place des sauvegardes régulières ;
  • utiliser un pare-feu sur le serveur ;
  • utiliser l'authentification à deux facteurs pour l'administrateur si possible.
Installation terminée.
WordPress fonctionne maintenant derrière un VirtualHost Apache dédié et utilise une base de données MariaDB avec un compte spécifique.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *