Ce guide couvre uniquement les étapes spécifiques à WordPress : base de données MariaDB dédiée, configuration Nginx pour WordPress, installation via WP-CLI, optimisations PHP et sécurité wp-admin. Les étapes préalables sont documentées séparément - voir les liens en début de chaque section.
Prérequis
Avant de commencer, les éléments suivants doivent être en place sur votre VPS :
- Nginx et PHP 8.4-FPM installés → guide Nginx + PHP-FPM
- Pare-feu UFW configuré (ports 80 et 443 ouverts) → guide UFW
- Accès SSH sécurisé par clé → guide clé SSH
- Un nom de domaine pointant vers l'IP du VPS (enregistrement A configuré)
Extensions PHP requises pour WordPress (source : wordpress.org/about/requirements/) - vérifier qu'elles sont installées :
- php8.4-mysql, php8.4-curl, php8.4-gd, php8.4-mbstring, php8.4-xml, php8.4-zip, php8.4-intl, php8.4-opcache
Si ces extensions ne sont pas présentes, les ajouter :
sudo apt install -y php8.4-mysql php8.4-curl php8.4-gd php8.4-mbstring php8.4-xml php8.4-zip php8.4-intl php8.4-opcache Nginx et PHP-FPM ne sont pas encore en place ? Suivez d'abord notre guide installer Nginx et PHP-FPM sur un VPS Linux. Et pour un accès sécurisé dès le départ, configurez une clé SSH.
Étape 1 - Créer la base de données MariaDB dédiée
WordPress nécessite une base de données et un utilisateur dédiés. Ne pas utiliser root pour les connexions applicatives.
Se connecter à MariaDB :
sudo mariadb -u root Créer la base, l'utilisateur et les droits (remplacer les valeurs entre crochets) :
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'mot_de_passe_fort';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT; Note : utf8mb4 est le jeu de caractères recommandé par WordPress pour la prise en charge complète des emojis et caractères Unicode (source : developer.wordpress.org/advanced-administration/before-install/howto-install/).
Étape 2 - Installer WP-CLI
WP-CLI est l'outil officiel en ligne de commande pour WordPress. Il permet d'installer, configurer et maintenir WordPress sans interface graphique.
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp Vérifier l'installation :
wp --info Source : wp-cli.org/docs/installing/
Étape 3 - Télécharger et configurer WordPress
Télécharger WordPress
sudo mkdir -p /var/www/monsite.fr
sudo chown -R www-data:www-data /var/www/monsite.fr
cd /var/www/monsite.fr
sudo -u www-data wp core download --locale=fr_FR Créer wp-config.php
sudo -u www-data wp config create \
--dbname=wordpress_db \
--dbuser=wordpress_user \
--dbpass=mot_de_passe_fort \
--dbhost=localhost \
--dbcharset=utf8mb4 \
--locale=fr_FR Lancer l'installation WordPress
sudo -u www-data wp core install \
--url=https://monsite.fr \
--title="Mon site" \
--admin_user=admin \
--admin_password=mot_de_passe_admin \
[email protected] Note : remplacer toutes les valeurs entre guillemets par les vôtres. Utiliser un mot de passe admin fort (16 caractères minimum, majuscules, chiffres, symboles).
Étape 4 - Configurer le vhost Nginx pour WordPress
La configuration Nginx pour WordPress requiert des directives spécifiques pour les permaliens et la sécurité. Créer un fichier de configuration dédié :
sudo nano /etc/nginx/sites-available/monsite.fr Contenu du fichier (remplacer monsite.fr par votre domaine) :
server {
listen 80;
listen [::]:80;
server_name monsite.fr www.monsite.fr;
root /var/www/monsite.fr;
index index.php;
# Taille maximale des uploads (à aligner avec PHP)
client_max_body_size 64M;
# Permaliens WordPress
location / {
try_files $uri $uri/ /index.php?$args;
}
# Traitement PHP via PHP-FPM
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Bloquer l'accès aux fichiers sensibles
location ~ /\.(ht|git|env) {
deny all;
}
# Bloquer l'accès direct à xmlrpc.php si non utilisé
location = /xmlrpc.php {
deny all;
}
# Cache navigateur pour les assets statiques
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
} Activer le site et recharger Nginx :
sudo ln -s /etc/nginx/sites-available/monsite.fr /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx Note : la directive try_files $uri $uri/ /index.php?$args; est indispensable pour que les permaliens WordPress fonctionnent correctement (source : nginx.org/en/docs/http/ngx_http_core_module.html).
Étape 5 - Activer HTTPS avec Certbot
Les options avancées de Certbot (renouvellement, wildcard, Apache) sont détaillées dans notre guide Certbot dédié.
Le certificat SSL est indispensable. Suivre notre guide dédié pour l'obtenir et le renouveler automatiquement.
Après l'obtention du certificat, Certbot modifie automatiquement le vhost pour rediriger HTTP vers HTTPS et ajouter les directives SSL.
Étape 6 - Optimisations PHP pour WordPress
OPcache
OPcache met en cache le bytecode PHP compilé, réduisant le temps de traitement de chaque requête. Vérifier qu'il est activé dans /etc/php/8.4/fpm/conf.d/10-opcache.ini :
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=2
opcache.fast_shutdown=1 Ces valeurs sont adaptées à un VPS avec 4 Go de RAM. Source : php.net/manual/fr/opcache.configuration.php.
Taille maximale des uploads
Aligner la limite d'upload PHP avec la directive Nginx client_max_body_size :
sudo nano /etc/php/8.4/fpm/php.ini Modifier ou ajouter :
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120 Redémarrer PHP-FPM :
sudo systemctl restart php8.4-fpm Étape 7 - Sécuriser wp-admin
En complément, verrouillez le serveur lui-même : pare-feu UFW et Fail2ban contre le brute-force.
Protéger wp-admin par IP (optionnel mais recommandé)
Si vous accédez à l'administration depuis une IP fixe, restreindre l'accès dans le vhost Nginx :
location /wp-admin {
allow 203.0.113.10; # Remplacer par votre IP
deny all;
} Protéger wp-login.php contre le brute-force
Ajouter dans le vhost Nginx pour limiter les tentatives de connexion :
location = /wp-login.php {
limit_req zone=login burst=3 nodelay;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} Déclarer la zone de limitation dans le bloc http de /etc/nginx/nginx.conf :
http {
limit_req_zone $binary_remote_addr zone=login:10m rate=1r/m;
...
} Fail2ban pour WordPress
Pour une protection complémentaire contre les tentatives de connexion répétées, configurer Fail2ban avec un filtre WordPress : voir le guide Fail2ban.
Quelle configuration VPS pour WordPress ?
| Trafic mensuel estimé | RAM recommandée | Offre OuiHeberg |
|---|---|---|
| Jusqu'à 10 000 visites | 4 Go | VPS Linux 04G - 7,00 € TTC/mois |
| 10 000 à 50 000 visites | 8 Go | Voir la gamme VPS Linux |
| Plus de 50 000 visites | 16 Go+ | Voir la gamme VPS Linux |
Ces estimations supposent un site WordPress standard avec cache activé (WP Super Cache ou W3 Total Cache). Un site WooCommerce ou à fort trafic simultané nécessite davantage de RAM.
Questions fréquentes
Peut-on héberger plusieurs sites WordPress sur un seul VPS ?
Oui. Créer un vhost Nginx distinct et une base de données MariaDB dédiée pour chaque site. Chaque site dispose ainsi de son propre espace d'isolation. La RAM du VPS est le facteur limitant : compter environ 256-512 Mo par site WordPress actif avec OPcache.
Faut-il un VPS managé pour WordPress ?
Non. Ce guide couvre l'installation sur un VPS non managé avec accès root complet. Un VPS managé délègue la maintenance système (mises à jour OS, sauvegardes) mais réduit le contrôle et augmente le coût. Pour la plupart des projets, un VPS non managé avec les bonnes pratiques de sécurité (SSH par clé, UFW, Fail2ban) est suffisant.
WP-CLI est-il nécessaire ou peut-on installer WordPress manuellement ?
WP-CLI est optionnel. L'installation manuelle consiste à télécharger l'archive depuis wordpress.org/download/, l'extraire dans /var/www/monsite.fr, puis renseigner wp-config.php à la main. WP-CLI automatise ces étapes et facilite les mises à jour futures (wp core update).
Comment mettre à jour WordPress via WP-CLI ?
cd /var/www/monsite.fr
sudo -u www-data wp core update
sudo -u www-data wp plugin update --all
sudo -u www-data wp theme update --all Comment sauvegarder WordPress sur un VPS ?
Deux éléments à sauvegarder : les fichiers et la base de données.
# Sauvegarde de la base de données
sudo -u www-data wp db export /var/www/monsite.fr/backup-$(date +%F).sql
# Sauvegarde des fichiers
tar -czf /root/backup-wordpress-$(date +%F).tar.gz /var/www/monsite.fr Automatiser via cron ou utiliser les sauvegardes automatiques incluses dans votre offre VPS OuiHeberg.
Vous n'avez pas encore de VPS ? L'offre VPS Linux 04G (4 Go RAM, NVMe, Anti-DDoS, support 24/7) est le point d'entrée recommandé pour héberger WordPress.
→ Découvrir les VPS Linux OuiHeberg
Votre site WordPress tourne déjà sur un hébergement mutualisé ? La procédure de transfert vers un VPS sans coupure (rsync, base de données, bascule DNS) est détaillée dans notre guide de migration.
