Transférer son site local sur un serveur de production
Il arrive souvent que le développement du site soit réalisé soit sur un serveur local en interne, soit sur une URL temporaire afin de pouvoir échanger plus facilement avec le client. De ce fait, et dans les deux cas, il suffit simplement lors de la mise en ligne officielle, et l’ouverture en mode production aux internautes, de basculer certaines données sur le serveur ad hoc. Cependant, avec WordPress, il est important de prendre en compte un certains nombre de points et d’adapter base de données et les fichiers de configuration. Voyons au cour de cet article un petit check-list à respecter pour mener à bien cette opération.
Utiliser un plugin dédié ou à la mano
Encore une fois il existe une série d’outils nous permettant de gérer ce type de transfert de manière quasi transparente, et là encore c’est à nous de décider ce qui nous convient le mieux. Quoi qu’il en soit, et quelque soit votre choix, n’hésitez pas à vous rapprocher de l’article Running a Development Copy of WordPress sur le Codex qui apporte quelques informations sur l’approche en général.
Voici quelques plugin permettant de cloner les deux installation, soit dans un sens pour mettre en place une version de travail d’un site de production, soit dans l’autre pour basculer le travail de préparation local en production distante:
- Duplicator
- WP Clone by WP Academy
- All-in-One WP Migration
- BackupBuddy
- WP Migrate DB Pro
- DesktopServer
Opérations à prendre en compte
Si vous optez pour la méthode traditionnelle, à la mano, vous allez vite vous rendre compte que cela n’est pas bien compliqué et qu’armé d’une bonne TO DO list cela ne prend guère plus de temps qu’il ne faut pour le dire.
- Transférer, par FTP, l’ensemble des fichiers du serveur de développement vers le serveur de production
- S’assurer des droits d’accès des fichiers et dossiers. Il ne s’agit là que d’une simple vérification, car par défaut votre serveur devrait utiliser un paramétrage adéquat sur ce genre d’opérations. Quant-à lui, WordPress nécessite un réglage de permissions valant 644 pour les fichiers et 755 pour les dossiers. Pour en savoir plus, rapprochez vous de Changing File Permissions.
- Depuis votre application, PHP MyAdmin du serveur local, exporter l’intégralité de la base de données de développement, au format SQL.
- Créer une base de données sur le serveur distant, essayez de préserver le même nom de base de données, en prenant soin, par contre, de mettre en place un utilisateur à pouvoir. Généralement en local, il s’agissait d’un utilisateur par défaut root n’ayant pas de mot de passe.
- En profiter pour réaliser la modification du fichier wp-config.php. Attention à modifier le cas échéant le préfixe des tables en fonction de la base locale. Il est important de modifier ce préfix pour optimiser la sécurité de la base de données des attaques robots. Voir éventuellement l’article dédié à ce sujet Modifier le pré-fixage des tables une fois l’installation en place. Sinon, renseigner les quatre propriétés concernant l’accès et le contrôle de la base de données, à savoir:
- define(‘DB_NAME’, ‘your_database_name’);
- define(‘DB_USER’, ‘your_database_user’);
- define(‘DB_PASSWORD’, ‘your_database_password’);
- define(‘DB_HOST’, ‘localhost’);
- Importer les données dans la base de production. Concernant les URLs contenu dans le fichier SQL précédemment exporté, toutes pointent toujours vers le site local, il faudra donc les modifier. Là encore, deux écoles ‘manuelles’ sont possibles, soit en réalisant un simple rechercher / remplacer dans ce fichier SQL (remplacer http://localhost/alias par http://www.domaine.ext), soit au travers d’une séries de requêtes SQL une fois que la base sera ré-importée (ci-dessous). À vous de voir.
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://localhost/alias', 'http://www.domaine.ext'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://localhost/alias', 'http://www.domaine.ext'); UPDATE wp_posts SET guid = REPLACE(guid, 'http://localhost/alias', 'http://www.domaine.ext'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://localhost/alias', 'http://www.domaine.ext');
Bien sur dans les deux cas http://localhost/alias correspond à l’adresse locale utilisée et http://www.domaine.ext à l’adresse du site en production. Remarquez également que ces deux URLs n’emploient pas de slash en fin de chemin.
- Mettre en place les fichiers .htaccess à la racine du site et dans le dossier wp-admin. Normalement, seul le fichier situé à la racine du site était employé en version locale et ne devrait pas recevoir de modification. Cependant pour des raisons de sécurité, et en fonction de la protection que vous avez choisi, il faudra ajouter les commandes nécessaires. Voir à ce sujet l’article Créer une protection de base et minimale.
- Penser à réactiver la prise en compte du référencement par les moteurs de recherche depuis le menu wp_admin > Réglages > Lecture > Visibilité pour les moteurs de recherche.
- En fonction de votre thème, il est également important de vérifier que l’ensemble des menus soit bien réimplémenter, que les widgets soient correctement définis et que les éventuels sliders piochent toujours correctement leur images.
- Enfin, il peut parfois éventuellement être nécessaire de régénérer les thumbnails. Pour cela n’hésitez pas à installer un plugin à cet effet, Regenerate Thumbnails.
Voilà, après l’ensemble de ces étapes réalisées, votre site local devrait être basculé en toute simplicité vers sa version de production en ligne.