WordPress sur Debian 13
DOG&DEV · 25/01/2025
WordPress sur Debian 13
Installer WordPress sur Debian 13 sans panel (LAMP ou LEMP) donne un contrôle total sur la stack. Ce guide décrit l’installation d’Apache ou Nginx, PHP, MySQL/MariaDB, le téléchargement de WordPress, la configuration de wp-config.php et les permissions.
Prérequis
- Debian 13 (Trixie) ou Debian 12 (Bookworm) — les noms de paquets peuvent légèrement varier
- Accès root ou sudo
- Domaine ou IP pointant vers le serveur
- Connexion Internet
1. Stack : LAMP ou LEMP
LAMP (Apache + MySQL + PHP)
sudo apt update
sudo apt install apache2 mariadb-server php php-mysql php-curl php-gd php-mbstring php-xml php-zip
LEMP (Nginx + MySQL + PHP-FPM)
sudo apt update
sudo apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
Pour Nginx + PHP : voir nginx-phpfpm-linux pour la config des blocs server et fastcgi_pass.
2. Base de données MySQL/MariaDB
sudo mysql_secure_installation
Créer une base et un utilisateur pour WordPress :
sudo mysql
CREATE DATABASE wp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'mot_de_passe_fort';
GRANT ALL ON wp_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. Télécharger WordPress
cd /var/www
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo mv wordpress monsite
sudo chown -R www-data:www-data monsite
(Remplacez monsite par le nom du répertoire souhaité.)
4. Configuration wp-config.php
cd /var/www/monsite
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
Renseigner :
- DB_NAME :
wp_db - DB_USER :
wp_user - DB_PASSWORD : le mot de passe choisi
- DB_HOST :
localhost - table_prefix : garder
wp_ou le modifier (utile si plusieurs WP dans la même BDD)
Générer les clés de sécurité : api.wordpress.org/secret-key/1.1/salt/ et les coller dans wp-config.php à la place des valeurs d’exemple.
5. Permissions
sudo find /var/www/monsite -type d -exec chmod 755 {} \;
sudo find /var/www/monsite -type f -exec chmod 644 {} \;
sudo chown -R www-data:www-data /var/www/monsite
Pour les uploads et les mises à jour, wp-content doit être inscriptible :
sudo chmod -R 775 /var/www/monsite/wp-content
6. Serveur web : Apache
VirtualHost exemple :
<VirtualHost *:80>
ServerName monsite.com
DocumentRoot /var/www/monsite
<Directory /var/www/monsite>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Activer le site, a2enmod rewrite, recharger Apache.
7. Serveur web : Nginx
Bloc server type (WP dans root et try_files vers index.php) :
server {
listen 80;
server_name monsite.com;
root /var/www/monsite;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
nginx -t puis systemctl reload nginx.
8. Installation via l’assistant web
Ouvrir http://IP_ou_domaine/ : l’assistant WordPress demande titre, identifiants admin, email. Terminer l’installation, puis en production : Réglages → Général → définir Adresse WordPress et Adresse du site en https:// si vous activez SSL.
Dépannage
| Symptôme | Cause possible | Correctif |
|---|---|---|
| Erreur 500 | PHP, droits, .htaccess (Apache) | Vérifier WP_DEBUG dans wp-config.php ; droits wp-content ; AllowOverride (Apache) |
| Page de configuration (db, 5 min) | BDD ou wp-config incorrect |
Vérifier DB_* et que MySQL écoute ; recopier wp-config.php depuis l’exemple si besoin |
| 404 sur les permaliens | try_files (Nginx) ou mod_rewrite (Apache) |
Nginx : try_files ... /index.php?$args ; Apache : a2enmod rewrite |
Bonnes pratiques
- Activer HTTPS (Let’s Encrypt) et forcer HTTPS dans les réglages WP.
- Mises à jour régulières du noyau, thèmes et extensions.
- Sauvegardes (fichiers + BDD).
- Alternative avec panel : plesk-wordpress ; stack Nginx/PHP : nginx-phpfpm-linux ; BDD : phpmyadmin-debian.
Ressources
Cet article s’inscrit dans notre série de guides hébergement et gaming. Pour un serveur sur-mesure, contact.