# Installation de WordPress sur une pile LAMP

- Link: https://dpioch.aristeecampus.org/procedure/installation-de-wordpress/
- Published: 2026-09-22T11:19:17+02:00
- Author: Admin

_Installation d’Apache, PHP et MariaDB sur Debian, création d’une base dédiée, déploiement
de WordPress, hôte virtuel et sécurisation de base._

## 1. Objectif

Héberger un site WordPress sur une pile LAMP (Linux, Apache, MariaDB, PHP) maîtrisée
de bout en bout, avec un compte de base de données limité au site.

## 2. Prérequis

 * Une Debian à jour avec une adresse IP fixe et un accès root.
 * Un nom DNS pointant vers le serveur (exemple : `site.lab.lan`).

## 3. Pile LAMP

    ```
    apt update
    apt install -y apache2 mariadb-server php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip php-intl
    systemctl enable --now apache2 mariadb
    ```

Vérifier que la page par défaut d’Apache s’affiche sur `http://<ip_du_serveur>`,
puis sécuriser MariaDB :

    ```
    mysql_secure_installation
    ```

## 4. Base de données

    ```
    mysql -u root -p
    ```

    ```
    CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '<mot_de_passe>';
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
    FLUSH PRIVILEGES;
    ```

Note

Le compte `wpuser` n’a de droits que sur la base du site et ne peut se connecter
qu’en local : c’est le principe du moindre privilège.

## 5. Déploiement de WordPress

    ```
    cd /tmp
    wget https://fr.wordpress.org/latest-fr_FR.tar.gz
    tar -xzf latest-fr_FR.tar.gz
    mkdir -p /var/www/site
    cp -r wordpress/* /var/www/site/
    chown -R www-data:www-data /var/www/site
    find /var/www/site -type d -exec chmod 755 {} \;
    find /var/www/site -type f -exec chmod 644 {} \;
    ```

## 6. Hôte virtuel

Fichier `/etc/apache2/sites-available/site.conf` :

    ```
    <VirtualHost *:80>
        ServerName site.lab.lan
        DocumentRoot /var/www/site
        <Directory /var/www/site>
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    ```

    ```
    a2enmod rewrite
    a2ensite site
    a2dissite 000-default
    systemctl reload apache2
    ```

## 7. Assistant d’installation

 1. **Lancer l’assistant**
 2. Ouvrir `http://site.lab.lan`.
 3. **Base de données**
 4. Nom `wordpress`, utilisateur `wpuser`, mot de passe défini à l’étape 4, hôte `localhost`.
 5. **Compte administrateur**
 6. Choisir un identifiant qui n’est pas « admin » et un mot de passe robuste.

## 8. Sécurisation

 * Passer le site en HTTPS (Let’s Encrypt ou autorité interne).
 * Activer les mises à jour automatiques du cœur et garder extensions et thèmes 
   à jour.
 * Supprimer les extensions et thèmes inutilisés.
 * Mettre en place une sauvegarde régulière des fichiers et de la base.

## 9. Vérifications

  |  Contrôle |  Critère attendu |  
   |  Services |  `systemctl status apache2 mariadb` : active (running) |  
 |  Site |  La page d’accueil s’affiche sur le nom prévu |  
 |  Administration |  Connexion possible à `/wp-admin` |  
 |  Santé du site |  Outils → Santé du site : aucune erreur critique |
