
Le guide LEMP de Vultr fournit un point de départ pour installer WordPress. Voici un parcours pour un VPS vierge sous Ubuntu 24.04, avec MariaDB, un compte sudo et un domaine dont vous contrôlez le DNS.
1. Préparer les services et la base
Remplacez partout example.com par votre domaine. Faites pointer son enregistrement A vers le VPS ; un éventuel AAAA doit aussi atteindre ce serveur. Autorisez TCP 80 et 443 dans les pare-feu local et fournisseur, tout en conservant votre accès SSH. Ne publiez pas MariaDB sur Internet.
sudo apt updatesudo apt install nginx mariadb-server php8.3-fpm \ php8.3-mysql php8.3-curl php8.3-gd php8.3-xml \ php8.3-mbstring php8.3-zip php8.3-intl curl \ certbot python3-certbot-nginxsudo systemctl enable --now nginx mariadb php8.3-fpmsudo mariadbDans MariaDB, remplacez le mot de passe d'exemple par un secret unique conservé dans votre gestionnaire de mots de passe :
CREATE DATABASE wp CHARACTER SET utf8mb4;CREATE USER 'wpapp'@'localhost' IDENTIFIED BY 'CHANGE_ME_UNIQUE';GRANT ALL PRIVILEGES ON wp.* TO 'wpapp'@'localhost';EXIT;2. Installer les fichiers et configurer Nginx
Téléchargez dans un dossier temporaire neuf. Le code reste détenu par root ; seuls les téléversements seront modifiables par PHP.
cd "$(mktemp -d)"curl -fLO https://wordpress.org/latest.tar.gztar -xzf latest.tar.gzsudo mkdir -p /var/www/wpsudo cp -a wordpress/. /var/www/wp/sudo chown -R root:www-data /var/www/wpcd /var/www/wpsudo cp wp-config-sample.php wp-config.phpsudoedit wp-config.phpRenseignez DB_NAME=wp, DB_USER=wpapp, votre DB_PASSWORD et DB_HOST=localhost dans les appels define existants. Remplacez les huit clés et sels d'authentification d'exemple par huit valeurs uniques ; openssl rand -hex 32 peut générer chacune d'elles. N'enregistrez jamais ces secrets dans un dépôt.
sudo chown root:www-data wp-config.phpsudo chmod 640 wp-config.phpsudo mkdir -p wp-content/uploadssudo chown www-data:www-data wp-content/uploadssudoedit /etc/nginx/sites-available/wpEnregistrez cette configuration :
server { listen 80; listen [::]:80; server_name example.com; root /var/www/wp; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location = /wp-config.php { deny all; } location ~* /uploads/.*\.php$ { deny all; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock; } location ~ /\. { deny all; }}Activez le site, puis testez avant tout rechargement :
sudo ln -s /etc/nginx/sites-available/wp \ /etc/nginx/sites-enabled/wpsudo nginx -t && sudo systemctl reload nginxCe modèle impose de gérer les mises à jour du cœur, des thèmes et des extensions avec votre compte d'administration du serveur. Ne rendez pas tout le dossier accessible en écriture pour contourner cette séparation.
3. Passer en HTTPS et vérifier
Avant de saisir les identifiants WordPress dans le navigateur :
sudo certbot --nginx -d example.com --redirectcurl -I https://example.comsudo certbot renew --dry-runsystemctl list-timers --all | grep certbotTerminez l'assistant sur https://example.com avec un administrateur unique. Vérifiez ensuite la connexion, l'ouverture d'un article avec permalien et l'ajout d'une image. Le certificat doit être valide, HTTP rediriger vers HTTPS et le renouvellement simulé réussir.
Erreurs courantes : un 502 invite à vérifier le service PHP-FPM et son socket ; une erreur de base demande de revoir les quatre valeurs de configuration ; un échec Certbot demande de contrôler A, AAAA et le port 80. En cas de demande FTP lors d'une mise à jour, utilisez votre procédure serveur : ne passez pas les permissions à 777.