Monter un site de test WordPress

1. Préambule

Dans ce tutoriel, je vais vous expliquer comment monter un site de test wordpress qui sera la réplique quasi exacte de votre site principal afin de pouvoir tester les mises à jour sur ce site plutôt que directement sur votre site principal. En « jargon » d’informaticien on appelle ça un environnement de pré-production. L’environnement de pré-production, dans les systèmes informatiques professionnels, c’est une copie de l’environnement « public » (appelé « production »), dans ce cas votre site wordpress. Cette pré-production, permet de valider tout changement avant de le passer sur le site de production. C’est une démarche un peu lourde (et encore, je vous épargne les autres environnements existants avant!), mais indispensable pour ne pas « casser » la production lors de la mise en place d’une modification. Cette pré-production doit principalement vous permettre de valider toutes les mises à jour faites sur le site en terme de plugins et de version de wordpress (ou autre modification). Ainsi, en cas de problème (comme celui que j’ai eu avec la mise à jour wordpress 3.5), vous n’impactez pas votre site puisque vous avez détecté le problème sur la pré-production, ce qui vous laisse le loisir de chercher tranquillement une solution et de la valider. Une bonne manière de s’économiser du stress!

La deuxième idée, c’est également de pouvoir valider sur ce site des modifications que vous souhaitez apporter en terme de plugin ou de code. Fini les modifications à la sauvage réalisées en « live » (je parle pour moi)! Cela permet de valider et de réaliser des modifications sur le CSS, sur le modèle de pages php, bref tout ce que vous souhaitez! De quoi travailler de manière un peu plus « pro » et plus sereine quand même!

Au départ, j’avais prévu de faire cela en local avec une copie de mon site dans une machine virtuelle avec XAMPP. Mais ce n’est pas la meilleure solution puisque dans ce cas, votre environnement de pré-production ne sera pas « iso-prod » (c’est à dire identique à celui du site). Dans ce contexte, le risque, c’est de détecter des problèmes qui ne seront pas forcément reproduits sur votre hébergement ou pire de ne pas détecter des problèmes qui ne surviendront que sur la version en ligne. Pas d’alternative, il faut impérativement que votre site de pré-production soit également sur votre hébergement de votre site. Il va donc s’agir de faire une copie de votre site (fichiers + base) afin de monter une « vraie » pré-production dans un sous-répertoire.

Avant de me lancer, j’ai recherché des tutoriels sur le net, mais à ma grande surprise, je n’ai rien trouvé! Certes, vous me direz que pour un site non professionnel, avoir des problèmes sur son site, voir même une indisponibilité, ce n’est pas très grave. On est d’accord, mais ça la fout mal quand même! Après, c’est une question de gestion du risque! Comme je vous le disais, je me suis lancé que parce que j’ai eu un gros problème (heureusement non visible pour mes visiteurs). A vous de voir donc si le jeu en vaut la chandelle, si cela vous intéresse, suivez le guide!

Avant de démarrer…

Mon hébergeur met à ma disposition pour l’administration de mon espace le CPanel. C’est un outil utilisé par un grand nombre d’hébergeurs, et je base une partie de mes explications dessus. Si vous n’avez pas de CPanel sur votre hébergement (ou si la version est différente), les écrans ne seront pas les mêmes. Pour autant la logique reste la même. Pas besoin non plus de connaissances spécifiques, si vous avez déjà installé un site wordpress, vous devriez vous en sortir. Même pour la partie SQL, je détaille les commandes à lancer, donc pas besoin d’être un expert SQL (même si un petit vernis permet de se sentir plus à l’aise). Au pire vous casserez une copie de votre base, ce qui n’est pas très grave!

Je pense que le tout est réalisable en moins d’une heure, ce qui n’est pas énorme. Plus aucune raison d’hésiter !

[member]
Le tutoriel au format pdf :mini_pdf_sitetest

[/member]
[visitor]
Inscrivez-vous pour télécharger le tutoriel au format pdf!
[/visitor]

VN:F [1.9.22_1171]
Evaluez l'article :
Note : 3.9/5 (8 votes)

Publié par

Mat

Webmaster de Chez Mat, trentenaire passionné d'informatique et de séries. Je partage avec vous mes tutos et astuces informatiques : matériels, logiciels et aussi du wordpress! Grand fan de culture Japonaise, je parle également de mes passions sur mon autre site (Séries, Mangas, Animés, Musique et de temps en temps, un peu de cinéma et de livres!)

54 réflexions au sujet de « Monter un site de test WordPress »

  1. Du très bon et du grand art. Chapeau, j’ai encore une fois appris pas de chose. Ce que je ne comprends toujours pas c’est : « ou trouve-t-il le temps de faire tout ça ? ».
    Sacrès Mat.

    Très bon tuto, on dépasse même le cadre du tuto, ça mériterait de devenir une doc à part entière déposée sur les serveurs ou le lectorat adapté pourrait se trouver. WordPress France par exemple ?

    1. Salut Pat,

      Arrêtes, je vais rougir!! Par contre, tu as raison, je vais faire un format pdf, et le mettre à dispo. J’ai déjà mis un lien sur le forum wordpress-fr.net
      Mon secret, je te le dirais demain quand on se verra!

  2. Excellent tuto, jusqu’à ce jour j’avais l’habitude de travailler en local, mais c’est vrai que l’environnement n’étant pas identique il m’est arrivé parfois de rencontrer des problèmes en local alors que la même installation fonctionnait très bien sur le serveur distant et vise-versa.

    Merci Mat, je vais me coucher moins bête ce soir grâce à toi !

  3. Très bon article ! Il s’agit effectivement d’un très bon moyen de tester des plugins et des modifications sans affecter le site principal.

    Merci pour ce tuto !

  4. Tuto très intéressant, merci!
    Malheureusement je ne peux pas l’appliquer car j’ai un hébergement de base chez 1&1, avec une seule base de données.
    Existe-t-il un moyen simple de faire une copier/coller des tables wp_xxxxx vers de nouvelles tables wp_preprod_xxxxx ?
    Après, dans le wp-config.php, je remplacerai $table_prefix = 'wp_'; par $table_prefix = 'wp_preprod';.

    1. Merci!

      Je vois ce que tu veux dire, mais je ne suis pas sur que cela soit possible..Cela reviendrais à faire du mutisite, ce que sait faire wordpress, mais le faire une fois installé, je ne sait pas si c’est envisageable ou pas. J’avoue ne pas connaitre assez le multisite pour pouvoir t’en dire plus..
      D’ou la question de bien étudier son hébergeur en fonction de ses besoins!!

  5. Hello Mat,
    Je rejoins tout le monde : excellent tuto !
    J’ai deux questions : tu différencies « environnement de test » et « environnement de préproduction » ? L’idée pour moi, serait de faire une bascule du jour au lendemain de ce que j’aurai développé dans le test sur le site principal ; ai-je juste à faire le chemin inverse avec un glissé-déposé

    1. Salut Jude,

      Merci pour ton retour!
      Dans le cadre d’un blog « perso », il n’y a pour moi qu’un seul environnement en plus de celui de production : préprod, recette, quelque soit son nom..
      Ce qui n’est pas le cas pour des sites pro ou il y a en général deux à trois environnements « anté-prod ». Mais le contexte est bien différent.
      Pour la bascule test -> prod, tout dépends des cas! Si c’est du code modifié dans des fichiers, c’est effectivement de l’ordre du « glissé-déposé ». Si c’est des images, du paramétrage d’un thème, c’est plus « manuel ».
      Quoiqu’il en soit, il faut bien noter et tracer ce que tu fais en recette pour ne rien oublier le jour ou tu met en production (avec toujours un backup base & fichiers pour pouvoir retourner à l’état initial au besoin).
      Bref, de l’exploitation informatique!!

  6. Hello Mat,
    Merci pour ta réponse. Je voulais également apporté mon retour d’expérience car j’ai un peu(beaucoup) galéré à installer mon preprod. En fait, mon preprod.site.fr redirigeait automatiquement vers mon site.fr. Je suis en multisite et en tâtonnant, j’ai fini par découvrir que dans le fichier config pour « define( ‘MULTISITE’, true ); », il faut remplacer « true » en « false ». Cas un peu particulier mais bon à savoir ;)

    1. Donc si je comprend bien, tu as fait le site normal + plus le site de test en multisite? Je savais pas si c’était possible, me voila fixé!
      Moi, j’ai préféré séparé les deux avec deux bases différentes, c’est plus propre et plus sur!

      1. Bonjour,

        Je suis connectée mais dès que j’arrive sur cette page pour télécharger le tuto je ne suis plus connectée et du coup je n’ai pas accès au PDF…. Y a t’il une autre solution ?

        Merci.

  7. Bonjour Mat,

    Je suis tombé sur ton article en cherchant des infos sur comment procéder au mieux pour gérer la préprod avec WordPress.

    Ce que tu expliques est la base de la mise en place de la préprod, mais je n’arrive pas à trouver de réponse quand à une solution simple et efficace pour envoyer les changements effectués et validés en préprod vers la prod.

    J’ai l’impression qu’avec WordPress, ts les webmasters font le travail 2 fois: une fois en prépod, et une fois que tt est validé, faut tt refaire en prod.

    Logiquement, les modifs en preprod validés, on « commite » les modifs et on les pousse en prod. Le truc classique qd on utilise git par ex: dev => preprod => prod.

    Comme WordPress stocke bcp de trucs en base, je sais pas trop s’il existe une solution propre pour faire ce genre de chose.

    Merci d’avance pour un retour :)
    bonne journée

    1. Bonjour Bastien,

      Travaillant moi même dans une production informatique, je suis en phase avec la problématique que tu soulèves!
      D’expérience, je vais te dire que cela dépend! Une grande partie des modifs sont exportables facilement d’un environnement à un autre. C’est le cas quand tu modifie le code de certaines pages php. Ou lorsque qu’il s’agit de requêtes sql qu’il s’agit de lancer sur chaque environnement (en adaptant au besoin). Là ou j’ai par exemple galéré, c’est sur mon autre site quand j’ai fait des grosses modifs de paramétrage de mon thème, j’ai du effectivement tout refaire deux fois. Mais cela oblige à bien tracer ce que tu fais, c’est un mal pour un bien!
      Après effectivement, pour qui maîtrise WordPress (et mysql), on doit pouvoir quasi tout extraire et transférer via la base, mais je ne possède pas ce type de compétences pointues!
      Mais clairement, l’orientation blog de wordpress (même si de gros sites utilisent le CMS) fait que cela n’a pas été vraiment prévu. Déjà, rien que le fait de monter une préprod est assez peu décrit sur le net, c’est pour ça que j’ai mis ce tuto en ligne!
      Bon courage et si tu trouves des moyens d’industrialiser les passages d’environnements, fais-moi signe!

  8. Bonjour,
    j’ai suivis la procédure en installant mon site sur un autre serveur (pas un sous domaine) pour un faire un site de prod, tout vas bien, je met a jour les table avec la nouvelle url etc, j’arrive à accéder a ma page d’accueil, mais mes autres pages (monsite.fr/page1/) me renvoient une erreur 404 : Not Found

    The requested URL /index.php was not found on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

    Que se passe-t-il à votre avis ?

    De plus, les lien à l’intérieur des price-tables de ma page d’accueil n’ont pas été modifiés malgré que j’ai bien exécuté les modif sql indiquées dans le tuto :-/

    Je te donne l’adresse du site test :

    http://fabcris.o2switch.net/isathyfinance-test/

    1. Bonjour,

      En général, les erreurs 404 se résolvent en mettant à jour les permaliens.
      Pour les liens, normalement, ils doivent tous être changés si les (3) scripts ont bien été passés..

  9. Ha bien joué pour les percalines ^^
    Quel idiot de pas y avoir pensé >.<

    Par contre pour les liens des boutons dans les table price et dans mon slider ils n'ont pas été changé malgré la mise a jour sql.. bizar, bon c'est pas grave je vais le faire a la main il ny en a pas beaucoup, mais quand meme c'est bizarre que les liens n'ai pas été pris en compte non ?

    1. Pas de soucis, c’est du vécu! Pour les liens, c’est peut-être une spécificité du thème. Faudrait regarder si il y a pas des tables MySQL a part pour le thème..

  10. *permalinks pas percalines lol correcteur de M**** ! ^^
    Hum oui c’est pas bête, ou des table pour les plug, car le slider est un plug.

    En tout cas merci ton tuto m’a bien aidé :)

      1. Salut,

        Effectivement, mais lors d’une migration, je me suis heurté à des objets et des class sérialsées, essentiellement dans les options du thème. Problème résolut avec Search Replace DB. ;°)

  11. Merci pour ton tuto, très précis :)

    J’en suis au point 4 mais je me heurte à un petit soucis. Mon site de prod ne marche plus avec un wp_config configuré sur l’ancienne base de données… alors qu’il fonctionne avec un wp_config configuré sur la nouvelle base de données préprod. C’est comme s’il ne trouvait plus l’ancienne base… Est-ce que tu sais ce qu’il peut être en train de se passer ? (Sinon, j’appellerai mon hébergeur, il aura peut-être une idée ^^)

    Merci pour ton aide :)

    1. Hello,

      Voir effectivement sur la base de prod est bien présente sur php my admin. Car à moins d’avoir modifié le nom de la base ou l’utilisateur pour se connecter, tu devrais pouvoir y accéder..

  12. Bonjour,
    Merci pour ce tuto très détaillé.
    Une question cependant : sur l’étape 4, vous dites « Il vous reste à lancer la copie de l’install wordpress (dossiers + fichiers à la racine) vers un le sous-répertoire que vous avez crée (sauf le fichier htaccess). Pour cela un simple « glisser-déposer » vers le répertoire « preprod » fera l’affaire : »
    Quels sont les fichiers à déplacer dans le dossier « preprod » ? Si je les déplace tous (sauf htaccess), le site en production va être indisponible le temps que les manips soient terminées non ?

    1. Bonjour Loic,

      Il s’agit bien de mettre une copie des fichiers, pas de les déplacer. Le glisser-déposer de l’interface que j’avais à l’époque faisait une copie des fichiers.
      La précision est effectivement importante.
      :-)

  13. Bonjour et merci pour ce tuto efficace :)
    Je me demandais s’il existait des petits programmes qui permettraient de remettre tous les URL en place après la copie de l’environnement test vers l’environnement en ligne… afin que cela se fasse rapidement.
    En gros, j’utilise l’espace de test pour améliorer mon site et je le push ensuite vers la version en ligne. Cela m’oblige à avoir des sauvegardes très proches l’un de l’autre et si je dois à chaque fois retravailler les URL j’y mets un temps fou ;)
    Merci pour ton aide :)

    1. Merci Marieke.
      Il y a sûrement moyen d’automatiser le transfert, mais je ne connais pas les outils pour le faire.
      Mais pour moi, le plus propre reste de tracer les modifications pour les remettre sur ta production..

  14. très explicatif ce tuto, J’aimerai bie ncommencer le travail mais j’ai une petite question :
    -là, vous dites qu’on va exporter puis importer la base de donnée. Mais après un certains moment la base du site en production ne sera pas la même, est ce que ça pourra causer des problèmes??

    1. Hello Hamdi,

      Tout dépend de ton besoin. Effectivement si tu veux faire un site de test pour tester des modifs, si entre temps du écris de nouveau articles sur ton site, tu ne pourras pas réimporter ta base du site de test vers le site principal.
      Sur mon autre site, j’ai utilisé le site de test pour modifier le code (thème) et ensuite, j’ai simplement mis les fichiers modifiés sur mon site de production et j’ai ensuite basculé sur le nouveau thème.
      Après tu peux bloquer le site de production pendant que tu modifies ton site de test pour pouvoir réimporter ensuite la base. Mais du coup, tu perds l’intérêt du site de test.

      1. Merci Mat pour ton retour,
        En fait, je suis entrain de réaliser un site des petites annonces ou des utilisteurs s’inscrivent toutes les heures pour déposer des annonces. Donc je veux savoir si par exemple j’ajoute quelques plugins ou j’ajoutes de nouvelle catégories au niveau du site test. comment je pourrai mettre à jour mon site prod avec ses changements et que rien ne soit affecté.
        Merci

  15. Hello Mat,

    merci pour ce super tuto, j’essaye de le mettre en place pour optimiser nos phases de test ^^

    J’ai suivi les différentes étapes jusqu’à la copie des fichiers et la modification du wp_config. J’essaye donc maintenant d’accéder au /preprod mais j’arrive directement sur une page 404.

    Est ce que tu as une idée de ce qui pourrait générer une 404 directement sur le /preprod de mon site ?

    Merci d’avance.

      1. Bonjour Mat,

        j’ai mis en place les étapes suivantes et cela à fonctionner, le problème venait des permaliens et du rewrite d’url qui empêchait l’accès au /preprod. Cependant un fois le sous domaine en place avec la redirection tout fonctionne correctement.

        Merci encore pour ce super tuto !

  16. Bonjour Mat, et merci pour ce tuto. Je t’explique ma situation : j’ai créé un site test avec un sous-domaine sur OVH pour pouvoir modifier la version dupliquée du site de ma cliente sans affecter le version initiale. J’ai galéré, il a fallu exclure des répertoires et utiliser plusieurs extensions mais ça a fini par marcher. Je suis sur le point de livrer ledit site à ma cliente, mais je ne sais pas comment procéder pour remplacer le site actuel par mon site test tout en conservant l’url du site actuel (mo site dupliqué s’appelle test.lespotagersessaimes.com, je souhaiterais en exporter toutes les données pour remplacer le site initial http://www.lespotagersessaimes.com tout en conservant cette url). Aurais-tu un tuto dans ce sens ? merci par avance, je débute sous wwordpress, c’est mon deuxième site seulement

    1. Hello,

      Il faut exporter la base et les fichiers sur ta version de prod. Pour la base, il faut changer les url en base (cf point 5) en adaptant à ton contexte. Et normalement, tu dois être bien..

  17. Bonjour,

    J’ai créer un site web dans un sous domaine OVH (multisite). J’aimerais le copier coller avec ce plugin sur mon « vrai » NDD. Cependant ma base de donnée OVH n’est pas neuve, elle accueille 2 autres site web. Avec duplicator j’ai vu que ça l’écrasait… Est ce que le plugin All in One WP migration épargne ma base de donnée svp ?

    1. Hello,

      Désolé, j’ai mis à jour le captcha, ça devrait aller.
      En cas de problème, merci de passer par le formulaire de contact, je vous enverrais le lien.
      :-)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.