Ce guide vous explique comment installer WordPress sur votre VPS Linux. WordPress est le système de gestion de contenu (CMS) le plus populaire au monde, utilisé par des millions de sites web.
⚠️ Avertissement important
Important : Pour les sites WordPress, il est spécialement conseillé de prendre un hébergement web chez Infrawire. Un hébergement web mutualisé ou dédié offre de nombreux avantages :
- Stabilité optimale : Environnement optimisé et maintenu pour WordPress
- Sauvegardes automatiques : Vos données sont sauvegardées régulièrement
- Support spécialisé : Assistance technique dédiée à WordPress
- Mises à jour gérées : Mises à jour de sécurité et de performance
- Sécurité renforcée : Protection contre les attaques courantes
- Performance optimisée : Configuration serveur adaptée à WordPress
Cependant, si vous souhaitez un environnement non mutualisé et dédié avec un contrôle total sur votre serveur, vous pouvez installer WordPress sur un VPS Infrawire. Ce guide vous explique comment procéder.
📋 Prérequis
- Un VPS Linux avec accès root ou sudo
- Au moins 1 Go de RAM (2 Go recommandé pour WordPress)
- Au moins 10 Go d'espace disque libre
💡 Recommandation d'infrastructure
Pour des performances optimales avec WordPress, nous recommandons nos VPS NVMe pour les sites à trafic modéré, ou nos VPS Ryzen pour les sites à fort trafic nécessitant des ressources CPU importantes. Les disques NVMe accélèrent considérablement le chargement des pages et les opérations de base de données.
- Un nom de domaine pointant vers l'IP de votre VPS
- Les ports 80 (HTTP) et 443 (HTTPS) ouverts dans votre pare-feu
🔧 Méthode 1 : Installation avec LAMP (Apache)
Étape 1 : Mettre à jour le système
Bash1# Mettre à jour la liste des paquets 2sudo apt update 3 4# Mettre à jour les paquets installés 5sudo apt upgrade -y
Étape 2 : Installer Apache
Bash1# Installer Apache 2sudo apt install -y apache2 3 4# Démarrer Apache 5sudo systemctl start apache2 6 7# Activer Apache au démarrage 8sudo systemctl enable apache2 9 10# Vérifier le statut 11sudo systemctl status apache2
Étape 3 : Installer MySQL
Bash1# Installer MySQL Server 2sudo apt install -y mysql-server 3 4# Démarrer MySQL 5sudo systemctl start mysql 6 7# Activer MySQL au démarrage 8sudo systemctl enable mysql 9 10# Sécuriser l'installation MySQL 11sudo mysql_secure_installation
Lors de la sécurisation, vous devrez :
- Définir un mot de passe root pour MySQL
- Supprimer les utilisateurs anonymes
- Désactiver la connexion root à distance
- Supprimer la base de données test
- Recharger les privilèges
Étape 4 : Créer la base de données WordPress
Bash# Se connecter à MySQL sudo mysql -u root -p
Dans MySQL, exécutez les commandes suivantes :
SQL1-- Créer la base de données 2CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 3 4-- Créer un utilisateur pour WordPress 5CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'VotreMotDePasseSecurise123!'; 6 7-- Donner tous les privilèges à l'utilisateur 8GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; 9 10-- Appliquer les changements 11FLUSH PRIVILEGES; 12 13-- Quitter MySQL 14EXIT;
Important : Remplacez VotreMotDePasseSecurise123! par un mot de passe fort et unique.
Étape 5 : Installer PHP et les extensions nécessaires
Bash1# Installer PHP et les extensions requises pour WordPress 2sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip libapache2-mod-php 3 4# Vérifier la version de PHP 5php -v
WordPress nécessite PHP 7.4 ou supérieur. Pour installer une version spécifique :
Bash# Pour PHP 8.1 (recommandé) sudo apt install -y php8.1 php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip libapache2-mod-php8.1
Étape 6 : Télécharger WordPress
Bash1# Aller dans le répertoire temporaire 2cd /tmp 3 4# Télécharger la dernière version de WordPress 5curl -O https://wordpress.org/latest.tar.gz 6 7# Extraire l'archive 8tar xzf latest.tar.gz 9 10# Copier WordPress dans le répertoire web 11sudo cp -r wordpress/* /var/www/html/ 12 13# Donner les bonnes permissions 14sudo chown -R www-data:www-data /var/www/html 15sudo chmod -R 755 /var/www/html
Étape 7 : Configurer WordPress
Bash1# Créer le fichier de configuration 2cd /var/www/html 3sudo cp wp-config-sample.php wp-config.php 4 5# Éditer le fichier de configuration 6sudo nano wp-config.php
Modifiez les lignes suivantes avec vos informations de base de données :
PHPdefine( 'DB_NAME', 'wordpress_db' ); define( 'DB_USER', 'wordpress_user' ); define( 'DB_PASSWORD', 'VotreMotDePasseSecurise123!' ); define( 'DB_HOST', 'localhost' );
Ajoutez également ces lignes de sécurité (générez des clés uniques) :
PHP1define('AUTH_KEY', 'générez-une-clé-unique-ici'); 2define('SECURE_AUTH_KEY', 'générez-une-clé-unique-ici'); 3define('LOGGED_IN_KEY', 'générez-une-clé-unique-ici'); 4define('NONCE_KEY', 'générez-une-clé-unique-ici'); 5define('AUTH_SALT', 'générez-une-clé-unique-ici'); 6define('SECURE_AUTH_SALT', 'générez-une-clé-unique-ici'); 7define('LOGGED_IN_SALT', 'générez-une-clé-unique-ici'); 8define('NONCE_SALT', 'générez-une-clé-unique-ici');
Vous pouvez générer des clés uniques sur : https://api.wordpress.org/secret-key/1.1/salt/
Étape 8 : Configurer Apache pour WordPress
Bash1# Activer le module rewrite 2sudo a2enmod rewrite 3 4# Éditer la configuration Apache 5sudo nano /etc/apache2/sites-available/000-default.conf
Ajoutez ou modifiez la section <Directory /var/www/html> :
Apache1<Directory /var/www/html> 2 Options Indexes FollowSymLinks 3 AllowOverride All 4 Require all granted 5</Directory>
Redémarrer Apache :
Bashsudo systemctl restart apache2
Étape 9 : Finaliser l'installation via l'interface web
- Ouvrez votre navigateur
- Accédez à :
http://VOTRE_IPouhttp://votredomaine.com - Suivez l'assistant d'installation WordPress :
- Choisissez votre langue
- Remplissez les informations du site (titre, utilisateur admin, email, mot de passe)
- Cliquez sur Installer WordPress
🔧 Méthode 2 : Installation avec LEMP (Nginx)
Étape 1 : Installer Nginx
Bash1# Installer Nginx 2sudo apt install -y nginx 3 4# Démarrer Nginx 5sudo systemctl start nginx 6 7# Activer Nginx au démarrage 8sudo systemctl enable nginx
Étape 2 : Installer MySQL (identique à la méthode LAMP)
Suivez les étapes 3 et 4 de la méthode LAMP pour installer MySQL et créer la base de données.
Étape 3 : Installer PHP-FPM
Bash1# Installer PHP-FPM et les extensions 2sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip 3 4# Pour PHP 8.1 5sudo apt install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip
Étape 4 : Télécharger WordPress
Suivez l'étape 6 de la méthode LAMP pour télécharger et installer WordPress.
Étape 5 : Configurer Nginx pour WordPress
Bash# Créer un fichier de configuration pour votre site sudo nano /etc/nginx/sites-available/wordpress
Ajoutez la configuration suivante (remplacez votredomaine.com par votre domaine) :
Nginx1server { 2 listen 80; 3 listen [::]:80; 4 server_name votredomaine.com www.votredomaine.com; 5 root /var/www/html; 6 index index.php index.html index.htm; 7 8 location / { 9 try_files $uri $uri/ /index.php?$args; 10 } 11 12 location ~ \.php$ { 13 include snippets/fastcgi-php.conf; 14 fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; 15 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 16 include fastcgi_params; 17 } 18 19 location ~ /\.ht { 20 deny all; 21 } 22}
Activer le site :
Bash1# Créer un lien symbolique 2sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ 3 4# Tester la configuration 5sudo nginx -t 6 7# Redémarrer Nginx 8sudo systemctl restart nginx
Étape 6 : Configurer WordPress
Suivez les étapes 7 et 9 de la méthode LAMP pour configurer WordPress.
🔒 Sécurisation de WordPress
1. Changer les permissions des fichiers
Bash1# Permissions pour les fichiers 2sudo find /var/www/html -type f -exec chmod 644 {} \; 3 4# Permissions pour les répertoires 5sudo find /var/www/html -type d -exec chmod 755 {} \; 6 7# Permissions spéciales pour wp-config.php 8sudo chmod 600 /var/www/html/wp-config.php
2. Installer un certificat SSL avec Let's Encrypt
Bash1# Installer Certbot 2sudo apt install -y certbot python3-certbot-apache 3# Pour Nginx : sudo apt install -y certbot python3-certbot-nginx 4 5# Obtenir un certificat SSL 6sudo certbot --apache -d votredomaine.com -d www.votredomaine.com 7# Pour Nginx : sudo certbot --nginx -d votredomaine.com -d www.votredomaine.com 8 9# Renouvellement automatique 10sudo certbot renew --dry-run
3. Configurer le pare-feu
Bash1# Autoriser HTTP et HTTPS 2sudo ufw allow 'Apache Full' 3# Pour Nginx : sudo ufw allow 'Nginx Full' 4 5# Ou manuellement 6sudo ufw allow 80/tcp 7sudo ufw allow 443/tcp
4. Limiter les tentatives de connexion
Installez un plugin de sécurité WordPress comme :
- Wordfence Security
- iThemes Security
- Sucuri Security
5. Désactiver l'édition de fichiers via l'interface
Ajoutez dans wp-config.php :
PHPdefine('DISALLOW_FILE_EDIT', true);
🔄 Mises à jour de WordPress
Via l'interface WordPress
- Connectez-vous à l'administration WordPress
- Allez dans Tableau de bord → Mises à jour
- Cliquez sur Mettre à jour maintenant
Via WP-CLI (ligne de commande)
Bash1# Installer WP-CLI 2curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar 3chmod +x wp-cli.phar 4sudo mv wp-cli.phar /usr/local/bin/wp 5 6# Mettre à jour WordPress 7cd /var/www/html 8sudo -u www-data wp core update 9sudo -u www-data wp plugin update --all 10sudo -u www-data wp theme update --all
📦 Plugins recommandés
- Yoast SEO : Optimisation pour les moteurs de recherche
- Wordfence Security : Sécurité et protection
- UpdraftPlus : Sauvegardes automatiques
- W3 Total Cache : Mise en cache pour améliorer les performances
- Contact Form 7 : Formulaires de contact
❓ Problèmes courants
Erreur "Error establishing a database connection"
Solutions :
- Vérifiez les identifiants dans
wp-config.php - Vérifiez que MySQL est démarré :
sudo systemctl status mysql - Testez la connexion :
mysql -u wordpress_user -p wordpress_db
Erreur 404 sur les permaliens
Pour Apache :
Bash# Vérifier que mod_rewrite est activé sudo a2enmod rewrite sudo systemctl restart apache2
Pour Nginx : Vérifiez que la configuration try_files est correcte.
Problèmes de permissions
Bash# Corriger les permissions sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type d -exec chmod 755 {} \; sudo find /var/www/html -type f -exec chmod 644 {} \;
📝 Commandes utiles
Bash1# Vérifier le statut des services 2sudo systemctl status apache2 # ou nginx 3sudo systemctl status mysql 4 5# Redémarrer les services 6sudo systemctl restart apache2 # ou nginx 7sudo systemctl restart mysql 8 9# Voir les logs Apache 10sudo tail -f /var/log/apache2/error.log 11 12# Voir les logs Nginx 13sudo tail -f /var/log/nginx/error.log 14 15# Voir les logs PHP-FPM 16sudo tail -f /var/log/php8.1-fpm.log
📞 Besoin d'aide ?
Si vous rencontrez des difficultés lors de l'installation de WordPress, n'hésitez pas à contacter le support Infrawire. Notre équipe est disponible pour vous aider.
Note : Pour une meilleure expérience WordPress avec support dédié, sauvegardes automatiques et optimisations pré-configurées, considérez notre hébergement web dédié à WordPress.