Migration d’un site WordPress vers un serveur VPS
Dans cet article, je vais vous expliquer comment migrer un site WordPress vers un VPS (même procédure pour un serveur dédié) : de l’achat du serveur à la configuration de WordPress.
Tout d’abord, que veut dire VPS ? VPS signifie Virtual Private Server, soit un serveur virtuel (exemple : machine virtuelle VMWare, VirtualBox, Hyper-V). Si vous souscrivez à une offre VPS cela veut dire que vous serez seul sur votre serveur virtuel. Cela permet de se placer entre un serveur mutualisé (faible coût mais qui est souvent lent et surchargé) et un serveur dédié (qui s’avère plus onéreux et moins simple de gestion : redondance, panne matérielle, déploiements lents…).
Mon site Informatique Astuces était auparavant hébergé sur un serveur mutualisé chez OVH et l’évolution du site et les lenteurs du mutualisé m’ont obligé à migrer le site WordPress Informatique-Astuces vers un VPS.
Pour info, j’ai opté pour un serveur VPS LC3, ce qui correspond à un serveur avec un cœur Intel Bi-Xeon® E5 2640 (2.5 Ghz), 1Go de RAM en DDR3 et 150 Go d’espace disque en SAS. Le coût mensuel pour cette solution bien taillée ? Seulement 8.99€ par mois. Je n’ai pas hésité une seconde à partir sur cette solution et j’ai eu raison, je vous expliquerai pourquoi à la fin de cet article.

Avant tout, je vous conseille de ne pas changer l’enregistrement de type A (lien entre votre nom de domaine et l’adresse IP du serveur) de votre nom de domaine pour le moment car le transfert de votre site, l’importation de la base et les autres manipulations éventuelles peuvent prendre un peu de temps. Sachez quand même qu’un changement d’adresse IP sur un enregistrement de type A peut prendre de 24 à 48h. J’ai préféré avoir deux serveurs identiques côte à côte pendant 2 jours (pour effectuer des tests) que de n’en avoir qu’un seul mais avec des problèmes…
J’ai choisi une distribution Debian 7 x64 pour réinstaller mon site Web WordPress car c’est celle que j’utilise le plus.
Depuis le panel de Be1Host, vous obtiendrez toutes les informations techniques concernant votre serveur virtuel. Il est également possible depuis cet espace de réinstaller la machine virtuelle avec l’OS souhaité (en quelques clics). La configuration du mot de passe root se fait elle aussi depuis l’interface de gestion du VPS.

Lorsque votre système est installé et actif (généralement quelques minutes) et que vous avez l’adresse IP du serveur et le mot de passe root en main, connectez-vous avec votre client SSH (par exemple Putty). Pour plus de facilité, je vous conseille également d’établir une connexion avec l’outil WinSCP afin de modifier les fichiers plus rapidement sans avoir à passer par l’éditeur en ligne de commande (nano ou vi). Commencez par explorer les différents répertoires déjà présents sur le serveur. Vous pourrez voir que le répertoire /var/www est déjà existant et donc qu’apache est pré-installé sur le VPS.
Nous allons devoir installer quelques paquets sur la distribution, commencez par mettre à jour la liste des paquets :
A présent, nous allons avoir besoin d’une base de données SQL pour notre site WordPress. Installez alors le paquet mysql-server :
Lorsque cela vous sera demandé, renseignez le mot de passe SQL root que vous souhaitez définir.
L’installation s’achève mais nous n’avons pas de gestionnaire de bases SQL. Installez alors phpmyadmin pour gérer votre base de données WordPress, ça peut toujours servir :
Lorsqu’on vous demandera le mot de passe de connexion à la base SQL, renseignez celui que vous avez défini auparavant.
Nous sommes déjà équipé d’un serveur Web fonctionnel et d’une base de données (qui est pour le moment vide).
Transférez alors votre site Web dans le dossier /var/www du nouveau serveur avec WinSCP. Vous devez placer vos fichiers et répertoires en respectant la même arborescence, sous peine que tous vos liens ne fonctionnent plus.
Attaquons nous à présent à la base de données. Vous allez devoir (depuis votre ancien espace client) exporter votre base de données SQL (avec phpmyadmin par exemple) et l’importer sur votre nouveau VPS. Au moment de l’importation de la base avec phpmyadmin, vous recevrez peut-être un message d’erreur vous indiquant que la taille du fichier sql est trop importante. Modifiez alors dans le fichier « /etc/php5/apache2/php.ini » les valeurs post_max_size et upload_max_filesize (pour ma part j’ai fixé les valeurs à 50M pour le moment).
Vous rencontrerez peut-être aussi un problème lors de l’importation de la base dû à une base de données non existante. Vous devrez alors recréer votre base de données. Elle doit porter le même nom que l’ancienne base et avoir le même encodage (UTF8, ISO8859,…). Je vous conseille également de renseigner la ligne suivante dans le fichier SQL à importer (à placer avant le premier CREATE_TABLE) : USE votre_base_de_donnees;
Lorsque la migration est effectuée, nous allons devoir vérifier le fichier .htaccess présent à la raçine de votre site Web (/var/www).
Pour une meilleure sécurité, je vous conseille de vérifier les droits du fichier .htaccess (permissions : 0644) et de remplacer les lignes de votre fichier par les suivantes :
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress #Interdit la navigation dans les repertoires Options All -Indexes #Protege le fichier wp-config <Files wp-config.php> order allow,deny deny from all </Files> #Protege le fichier htaccess <Files .htaccess> order allow,deny deny from all </Files>
Pour que le htaccess fonctionne correctement, vous devrez activer le mod_rewrite avec la ligne de commande suivante (c’est très important car si vous ne le faites pas vous risquez d’obtenir des pages d’erreurs 404) :
Maintenant, nous allons devoir activer toutes les options pour le htaccess, rendez-vous dans le fichier /etc/apache2/sites-available/default et modifiez la ligne « AllowOverride None » par « AllowOverride all ».
Ci-dessous, la ligne à modifier :
Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all
Pour finir, nous devons faire cibler le site WordPress vers la base de données du nouveau serveur. Ouvrez le fichier « /var/www/wp-config.php » et renseignez nom, identifiant, mot de passe et adresse du serveur SQL :
/** Nom de la base de données de WordPress. */ define('DB_NAME', 'votre_base_de_donnees'); /** Utilisateur de la base de données MySQL. */ define('DB_USER', 'votre_utilisateur_sql'); /** Mot de passe de la base de données MySQL. */ define('DB_PASSWORD', 'votre_mot_de_passe_sql'); /** Adresse de l'hébergement MySQL. */ define('DB_HOST', 'localhost');
Laissez localhost pour le paramètre DB_HOST si votre base est hébergée sur le même serveur.
Redémarrez alors le service apache pour prendre en compte les changements :
Ou redémarrez votre serveur :
Votre site Web WordPress est de nouveau fonctionnel, il ne vous reste plus qu’à appliquer le changement (d’adresse IP) sur l’enregistrement de type A dans l’espace de gestion de votre nom de domaine. Vous disposez à présent d’un serveur VPS rien qu’à vous, avec de très bonnes performances et de très bon débits au prix d’un serveur mutualisé. J’ai fait des tests de performance de mon côté et la différence entre un serveur mutualisé et ce VPS (de chez Be1Host) est importante.
Vous pouvez dès maintenant aller visiter le site Web Be1Host pour comparer les prix et les caractéristiques des serveurs avec ceux des concurrents. Be1Host est selon moi un des leaders sur le marché des VPS LC en France et a un grand avenir devant lui !
Vous savez à présent migrer un site WordPress vers un VPS. Si vous avez des questions par rapport à ce tuto ou si vous avez des éléments à apporter n’hésitez-pas.
Votre site Web est fonctionnel mais nous n’avons pas abordé l’aspect sécurité de votre VPS (ou dédié pour les chanceux), je vous conseille donc de suivre ce nouveau tutoriel pour la mise en place d’un firewall sous Linux.

A bientôt sur Informatique-Astuces.com !