Créer son bac à sable pour WordPress
Afin de pouvoir tester et développer certaines fonctionnalités, il est important de ne pas opérer directement en ligne, mais dans un espace souple et protégé. L’idéal peut être sur un serveur de type NAS (comme un Synology par exemple) ou tout simplement sur sa propre machine de travail en prenant soin de configurer un stack web (Xampp, Mamp, Wampserver, EasyPHP, USBWebServer 8…). Vous pouvez vous rapprocher de l’article Installer et configurer un serveur web en local.
Créer un espace dédié
Le serveur local peut avoir plusieurs branches et il est bien d’en dédier une à WordPress. Il suffit donc de créer un alias , wordpress, sur le stack utilisé et d’y placer une version téléchargée (de préférence la dernière) du moteur de CMS. Profitez de créer une base de donnée, wordpress, avec comme utilisateur root et mot de passe une chaîne vide, ce qui est l’utilisateur par défaut de toute installation MySQL. Pas besoin de forcer la dose avec un méga mot de passe, après tout nous sommes en local sur notre propre machine.
Coté wp-config.php, pas besoin de mettre en place une racine de table dédiée, le wp_ par défaut est parfait, il n’est également pas nécessaire d’utiliser un sel de protection, là encore nous sommes en local et une surprotection n’est pas de rigueur. Par contre cela permettra de changer la racine des tables une fois WordPress installé, et de donc justifier l’article adhoc, Changer la racine de ses tables une fois WordPress installé.
Au moment de l’installation, pensez à cocher la case afin de demander à Google de ne pas indexer ce site, et employer la paire admin, admin comme login mot de passe du compte administrateur.
Vrai données ou données factices ?
Par défaut WordPress propose un Bonjour tout le monde! une page d’exemple et un petit commentaire… mais vous pourriez avoir besoin d’un peu plus de matière pour donner du coprs à votre site, sans pour autant devoir tout saisir et valider à la main. Dans ce cas, rapprochez vous du codex, et notamment de l’article Theme Unit Test. Il ne vous reste plus qu’à suivre les étapes proposées, dans le chapitre Test Environment Setupà savoir :
- Télécharger le document XML proposé
- Importer les données depuis wp-admin > Ouytils > Importer > WordPress
- Sélectionner le fichier XML téléchargé à l’étape 1
- Sélectionner Télécharger le fichier et importer
- Valider l’importation des fichiers joints
Puis répétez ces importations jusqu’à obtenir le message « All Done » ou « Terminé », en fonction de votre installation.
Le clonage peut parfois être nécessaire
Si vos tests se concentrent sur un site qui est déjà en ligne et que vos travaux de développement, ou de tests, vont également devoir se baser sur le contenu même, il peut alors être intéressant de cloner l’ensemble du site de production vers le site de test local.
La méthode manuelle
Cela peux bien sûr être une approche assez intéressante, car en fait, il suffit juste de copier l’ensemble des fichiers du dossier racine et d’exporter la base de données d’origine.
Bon, une fois la base de données réimporter dans la base locale, il faut alors redéfinir simplement les deux chemins d’accès locaux aux images. Cette opération s’effectue au sein de la table wp_options, (s’assurer que peut être la racine de cette table peut différer en fonction de la configuration de votre site)… Donc il faut modifier, l’enregistrement option_name=’siteurl’ du coté option_value en remplaçant la valeur courante par le chemin du site en local, et faire de même avec l’enregistrement option_name=’home’. Normalement il devrait s’agir des deux premiers. Attention à n epas mettre de slash à la fin du chemin. Seuls les URLs contenues dans les POSTs resteront paramétrées sur le serveur de production, mais ceci ne devrait pas être génant.
Vous pouvez également employer une simple requête SQL, en ayant pris soin d’adapter les valeurs à votre contexte
UPDATE `votrebase`.`wp_options` SET `option_value` = 'http://localhost/votrealias' WHERE `wp_options`.`option_name` ='siteurl'; UPDATE `votrebase`.`wp_options` SET `option_value` = 'http://localhost/votrealias' WHERE `wp_options`.`option_name` ='home';
Dernière opération, il faut adapter le fichier wp-config.php à la version locale, en prenant soin de respecter simplement le pré-fixage des tables.
La méthode plus intégrée
Là encore un certain nombre de plugin sont à disposition pour réaliser ce type d’opération.
- Duplicator,
- Sandbox, (attention n’a pas été mis à jour depuis 2009)
- WP Staging – DB & File Duplicator & Migration
- All-in-One WP Migration
Enfin il existe également un système applicatif DesktopServer, spécialement étudié pour nous nous permettre en quelques clics d’installer une version de WordPress en local qui peut dans certains cas être très souple à utiliser et qui de surcroît peut fonctionner depuis une clé USB. Deux versions sont accessibles, une version gratuite permettant, certes, le minimum mais de travailler et tester rapidement les configuration à mettre en place ou à développer, ou une version premium, plus élaboré et proposant plus de fonctionnalités et notamment la prise en compte de plusieurs installation en parallèle.
Basculer WordPress en mode de débogage
Tenant compte de son caractère expérimental, nous n’allons exploiter cette plateforme uniquement qu’à des fins de tests et autres phases de développement. Nous pouvons donc activer directement son mode de débogage, rapprochez vous de l’article Passer WordPress en mode Débogage et on peut également adjoindre un certain nombre de plugin allant dans ce sens:
Équiper sa plateforme de thèmes à toute épreuve
Cette plateforme pourra également nous servir d’environnement de développement pour un template personnalisé. Je vous conseille fortement à ce sujet la lecture de l’incontournable article de Francis Chouquet, Créez votre thème WordPress de A à Z. Par ailleurs vous pouvez également avoir besoin vous appuyer sur un thème de démarrage optimisé prenant en compte les bases minimales nécessaires tel que Create your Underscores based theme.
Pour diverses raisons il peut vous être nécessaire de vous rapprocher d’anciennes versions de Thèmes WordPress par défaut… rendez-vous alors sur le github de dépôt pour l’ensemble des versions ayant existé, et surtout, remises à jour et patché, WordPress/themes.
Un thème également qui est très intéressant comme base, ou comme plateforme, il s’agit de celui employé par Puce et Média, Hueman qui est développé par Nicolas Guillaume et maintenu sur presscustomizr/hueman. Vous trouverez également un grand nombre de thème blank ou naked, abondamment commenté permettant à la fois de travailler sur un thème générique de base, ou de l’utiliser comme base de départ pour développer son propre thème.
Réinitialiser régulièrement son installation
Après plusieurs heures, jours, semaines, projets, et autres types de tests passés sur cette installation, il y a de fortes chances que la plateforme soit suffisamment surchargée et parasitée pour être réellement souple et opérationnelle. Le plus simple reste de repartir sur une copie de base et revenir aux premiers instants de l’installation. Diverses méthodes sont alors possibles, de la plus abrupte, on arrache les fils et la lampe s’éteint, à la plus souple gérée au travers de plugin dédiés.
La méthode même pas peur
Il suffit de jeter les fichiers du dossier wp-content>uploads, faire le ménage dans le dossier wp-content>plugin et ne garder que les thèmes de base, voir plus haut. Ensuite, on peut simplement supprimer les tables de la base de données employée, lorsqu’on va essayer d’utiliser WordPress, l’installation de base se remettra alors en place toute seule et on repars ainsi à zéro, par la face nord.
Deux plugins à notre service
De manière plus fine et parfois plus adapté, en ce qui concerne le nettoyage de la base, nous avons deux plugins à disposition afin de prendre en charge une réinitialisation plus ‘propre’. Cependant, il nous incombera quand même de nettoyer le dossier wp-content>uploads.
2 réponses
[…] et la prise en compte des divers scripts abordés au cour de cet article. Je vous propose de mettre en place un bac à sable, accompagné d’un environnement de débogage, et de pouvoir ainsi tester au fur et à mesure […]
[…] autant mettre en cas d’école et d’utilisation le code abordé. Donc une fois encore ouvrez un bac à sable, activez si besoin un plugin de débogage et assistez vous de divers […]