Installer WordPress sur Debian
Published on October 3, 2025 at 09:09 PM

Ce tutoriel guide pas à pas pour déployer WordPress sur une Debian 13 minimale avec la pile LAMP : Apache, MariaDB et PHP. Il inclut la mise en place d’un VirtualHost, le durcissement de la base de données, les permissions correctes et l’activation du HTTPS avec Let’s Encrypt.
## Prérequis
- Serveur Debian 13 frais, accès SSH avec un utilisateur disposant de sudo ou root
- Nom de domaine pointant vers l’adresse IP publique du serveur (recommandé pour HTTPS)
- Ports 80 et 443 ouverts vers le serveur
- Heure système correcte et synchronisée (chrony ou systemd-timesyncd)
Optionnel : si un pare-feu est actif, prévoyez d’ouvrir HTTP et HTTPS. Avec UFW, vous utiliserez plus bas les profils Apache ou Apache Full.
---
## Étape 1 : Mise à jour du système
Mettez à jour tous les paquets puis redémarrez si nécessaire.
```bash
sudo apt update
sudo apt -y full-upgrade
sudo reboot
```
Reconnectez-vous en SSH après le redémarrage.
---
## Étape 2 : Installer Apache
Installez Apache et activez-le au démarrage.
```bash
sudo apt install -y apache2
sudo systemctl enable apache2 --now
```
Si UFW est utilisé, autorisez le trafic web.
```bash
sudo ufw allow "Apache"
```
Test rapide : rendez-vous sur l’adresse IP du serveur dans un navigateur, la page par défaut d’Apache doit s’afficher.
---
## Étape 3 : Installer MariaDB et sécuriser l’instance
Installez le serveur MariaDB et démarrez-le.
```bash
sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable mariadb --now
```
Exécutez l’assistant de sécurisation, puis suivez les invites pour définir un mot de passe root SQL, supprimer les utilisateurs anonymes, désactiver l’accès root distant et supprimer la base de test.
```bash
sudo mariadb-secure-installation
```
---
## Étape 4 : Installer PHP et les extensions nécessaires
Installez PHP avec le module Apache et les extensions requises par WordPress.
```bash
sudo apt install -y php libapache2-mod-php php-mysql php-xml php-curl php-gd php-mbstring php-zip
```
Vérifiez la version de PHP.
```bash
php -v
```
---
## Étape 5 : Créer la base de données et l’utilisateur WordPress
Connectez-vous à MariaDB en root et créez une base dédiée ainsi qu’un utilisateur restreint. Remplacez le mot de passe par une valeur forte.
```bash
sudo mysql -u root -p
```
```sql
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'MotDePasseUltraSecret!';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
---
## Étape 6 : Télécharger et positionner WordPress
Placez-vous dans le répertoire web et récupérez l’archive officielle, puis extrayez-la. Ici, on installe WordPress dans le dossier /var/www/wordpress.
```bash
cd /var/www
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo rm latest.tar.gz
```
Ajustez les propriétaires et permissions pour Apache (www-data).
```bash
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress -type f -exec chmod 644 {} \;
```
Copiez et éditez le fichier de configuration modèle.
```bash
cd /var/www/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
```
Dans wp-config.php, adaptez les quatre constantes suivantes : DB_NAME, DB_USER, DB_PASSWORD et DB_HOST.
```php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'MotDePasseUltraSecret!' );
define( 'DB_HOST', 'localhost' );
```
Option recommandé : ajoutez des clés et salages uniques en récupérant les valeurs depuis l’API de WordPress et remplacez celles par défaut. Vous pouvez également ajouter cette directive pour empêcher l’édition de fichiers depuis l’admin WordPress.
```php
define( 'DISALLOW_FILE_EDIT', true );
```
---
## Étape 7 : Créer un VirtualHost Apache dédié
Créez un site dédié pour votre domaine. Remplacez votredomaine.com par votre nom de domaine réel.
```bash
sudo nano /etc/apache2/sites-available/wordpress.conf
```
```apache
ServerName votredomaine.com
ServerAlias www.votredomaine.com
DocumentRoot /var/www/wordpress
AllowOverride All
Require all granted
DirectoryIndex index.php index.html
ErrorLog ${APACHE_LOG_DIR}/wordpress-error.log
CustomLog ${APACHE_LOG_DIR}/wordpress-access.log combined
```
Activez le site et mod_rewrite, puis désactivez le site par défaut si vous ne souhaitez pas qu’il réponde sur l’IP nue.
```bash
sudo a2ensite wordpress.conf
sudo a2enmod rewrite
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```
Si UFW est actif, pensez à autoriser HTTPS dès maintenant.
```bash
sudo ufw allow "Apache Full"
```
---
## Étape 8 : Activer HTTPS avec Let’s Encrypt
Installez Certbot et son plugin Apache, puis obtenez un certificat pour votre domaine. Acceptez la redirection automatique HTTP vers HTTPS lorsqu’elle est proposée.
```bash
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d votredomaine.com -d www.votredomaine.com
```
Le renouvellement est automatique via timer systemd. Testez un renouvellement à blanc si besoin.
```bash
sudo certbot renew --dry-run
```
---
## Étape 9 : Finaliser l’installation via le navigateur
Ouvrez votre navigateur et rendez-vous sur l’URL de votre site en HTTPS.
- https://votredomaine.com
Sélectionnez la langue, définissez le titre du site, créez l’utilisateur administrateur et validez. Ensuite :
- Dans Réglages > Permaliens, activez un format convivial comme Nom de l’article
- Supprimez le contenu de démonstration
- Activez les mises à jour proposées
---
## Étape 10 : Vérifications et dépannage
Vérifications rapides :
- Apache actif et écoute sur 80 et 443
- VirtualHost chargé, aucun conflit de DocumentRoot
- Permissions correctes sur /var/www/wordpress
- Accès à la base avec l’utilisateur wpuser
- HTTPS fonctionnel et redirection en place
Journalisation utile :
- Logs Apache : /var/log/apache2/wordpress-access.log et wordpress-error.log
- Service Apache : sudo systemctl status apache2
- Service MariaDB : sudo systemctl status mariadb
Problèmes fréquents :
- Page blanche ou erreur interne : activer temporairement WP_DEBUG dans wp-config.php et consulter les logs Apache
- Permaliens qui renvoient 404 : vérifier que mod_rewrite est activé et que AllowOverride All est bien présent dans le bloc Directory
- Échec Let’s Encrypt : vérifier la résolution DNS du domaine et qu’aucun proxy ou pare-feu n’intercepte les requêtes ACME
---
## Étape 11 : Étapes facultatives recommandées
Performances et sécurité :
- Installer un cache côté WordPress et activer la compression et l’expiration côté Apache
- Ajouter php-imagick et php-intl si nécessaire
- Mettre en place des sauvegardes régulières de la base et du dossier wp-content
- Surveiller automatiquement les mises à jour de sécurité système
Exemple de configuration d’entêtes basiques dans le VirtualHost SSL :
```apache
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
```
---
## Résumé
Vous disposez maintenant d’un WordPress opérationnel sur Debian 13 avec Apache, MariaDB, PHP et HTTPS. Conservez vos identifiants en lieu sûr, appliquez régulièrement les mises à jour et mettez en place des sauvegardes. Bon déploiement.


















