Installer WordPress sur son VPS
L'installation complète sur une pile nginx, les droits de fichiers corrects, et les cinq réglages à faire avant d'ouvrir le site.
Ce guide suppose que nginx, PHP et MariaDB sont installés — voir le guide précédent. Comptez vingt minutes en tout, dont la moitié à choisir un thème.
- 1
Créer la base
bashsudo mariadb -e "CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; \ CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'mot-de-passe-long'; \ GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost'; FLUSH PRIVILEGES;" - 2
Déposer les fichiers
bashcd /tmp && curl -LO https://fr.wordpress.org/latest-fr_FR.tar.gz tar xzf latest-fr_FR.tar.gz sudo mkdir -p /var/www/monsite sudo cp -a wordpress/. /var/www/monsite/ - 3
Donner les bons droits
Les fichiers appartiennent au serveur web, les dossiers sont traversables, rien n'est en écriture pour tout le monde.
bashsudo chown -R www-data:www-data /var/www/monsite sudo find /var/www/monsite -type d -exec chmod 755 {} \; sudo find /var/www/monsite -type f -exec chmod 644 {} \; - 4
Créer le vhost, puis lancer l'installation
Ouvrez ensuite votre domaine dans un navigateur : WordPress demande les identifiants de la base et crée son compte administrateur.
Le vhost WordPress
server {
listen 80;
server_name monsite.fr www.monsite.fr;
root /var/www/monsite;
index index.php;
client_max_body_size 64M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
# Le fichier de configuration ne doit jamais être servi
location = /wp-config.php { deny all; }
# Ni les fichiers déposés qui seraient exécutables
location ~* /wp-content/.*\.php$ { deny all; }
}Les deux règles deny all
La seconde bloque l'attaque la plus courante contre WordPress : déposer un fichier PHP via une extension vulnérable, puis l'appeler depuis le navigateur. Ces deux lignes annulent une bonne partie de ces tentatives.
Les cinq réglages avant d'ouvrir
- Le certificat HTTPS, avec certbot — et l'adresse du site en https dans Réglages.
- Désactiver la modification des fichiers depuis l'interface : ajoutez define('DISALLOW_FILE_EDIT', true); dans wp-config.php.
- Régénérer les clés de sécurité de wp-config.php depuis api.wordpress.org/secret-key/1.1/salt/.
- Supprimer les thèmes et extensions inutilisés : ce qui n'est pas installé ne peut pas être vulnérable.
- Activer les mises à jour automatiques pour les versions mineures — elles corrigent les failles.
Les tâches planifiées
WordPress déclenche ses tâches à la visite d'un internaute, ce qui est à la fois lent et peu fiable sur un site peu fréquenté. Confiez-les à cron.
# Dans wp-config.php
define('DISABLE_WP_CRON', true);
# Puis, dans crontab -e :
*/15 * * * * curl -s https://monsite.fr/wp-cron.php > /dev/null 2>&1Bloqué malgré tout ? Ouvrez un ticket : on répond en français, et on regarde votre machine si besoin.
Ouvrir un ticket