Copier un blog Dotclear sur un serveur local de test

prod-local.jpg

L'autre jour en testant la mise à jour de ma boutique sur mon serveur local (pour vérifier que ça n'apporte pas de bugs fonctionnels avant de la faire en production) je me suis dit qu'il faudrait que je refasse ma copie sur un conteneur LXC pour en comparer les performances par rapport à ma machine virtuelle KVM, afin de voir ce qui est le mieux.

Il faut savoir que ma boutique est faite à l'aide du cms Prestashop qui se déplace d'un point A à un point B très facilement. En effet, après avoir copié les fichiers et la base de données, il faut juste modifier les infos d'accès à la base de données dans le fichier qui va bien et changer l'url dans la table dédiée pour que ça fonctionne.

De là je me suis demandée si ce serait aussi simple avec Dotclear, le cms qui propulse mon blog.

En route pour les tests !

 

Test 1 : je copie mes fichiers dans une arborescence identique.

C'est à dire que si les fichiers de mon blog "en production" sont situés à la racine du serveur (représentée par /www sur le schéma suivant), je les copie également à la racine (soit dans /www ou son équivalent) sur mon serveur local. Pour imager (très) grossièrement, c'est comme si on changeait d'adresse sans changer de maison ni ce qu'elle contient, on déplace seulement la maison sur un autre terrain.

    /www
        |__ /pouet
        |__ /bidule

Si les fichiers se trouvent dans un répertoire /pouet situé à 1 niveau sous la racine, alors je les copie dans un répertoire pouet situé pareillement à 1 niveau sous la racine.

Dans le fichier /inc/config.php je modifie les informations de connexion à la base de données ainsi que la nouvelle url de l'administration du blog.

Ensuite je crée et importe la copie de la base de donnée via PhpMyAdmin puis modifie l'url dans la table dc_blog.

J'ouvre mon navigateur internet et me rend sur l'url de mon serveur local (localhost ou ip selon configuration) pour voir ce qui s'affiche.

Tadaaaam ! Ça juste marche, mon blog est là, copié à l'identique. :)

 

Test 2 : je copie mes fichiers à un emplacement différent dans l'arborescence.

Exemple mon blog en prod est situé à la racine (/www) du serveur et je le copie dans un répertoire qui se trouve à un niveau en dessous de la racine (/bidule par exemple). Pour imager (toujours très) grossièrement, cette fois on change d'adresse et de maison, on garde juste les mêmes meubles.

Je refais les mêmes manipulations que précédemment ...

Ça presque marche : mon blog est là mais il manque les images et la mise en forme. Les images sont également absentes dans la médiathèque côté administration.

Je m'en doutais un peu : le fait de changer l'emplacement dans l'arborescence change le chemin d'accès de ces derniers. Il faut donc se rendre dans l'admin du blog pour modifier les paramètres de public_url et themes_url. On ne touche pas aux «path» qui eux ne changent pas.
À lire : Path et Url sont dans un bateau.
Côté admin cela permet de retrouver les images dans la médiathèque, côté blog on retrouve la mise en forme liée au thème mais pas les images.

C'est dû au fait que dans la base de donnée, les liens des images contenues dans les billets sont toujours présents sous la forme de l'ancienne arborescence (soit /public/ma-super-image.jpg). Pour retrouver les images sur le blog il va falloir aller remplacer tous ces anciens chemins par les nouveaux (soit /bidule/public/ma-super-image.jpg).

La méthode qui me semble la plus simple est d'utiliser un éditeur de texte doté d'une fonction Rechercher et Remplacer pour modifier la copie de la base de données avant de l'importer sur le serveur local. Toujours en suivant mon exemple, on cherchera /public/ que l'on remplacera par /bidule/public/ dans tout le document. Notez que ça doit être faisable à l'aide de PhpMyAdmin si on sait construire les requêtes qui vont bien, ce qui n'est pas mon cas.

 

Conclusion :

Si on copie son Dotclear à l'identique (arborescence du serveur comprise), ça se déplace «fingers-in-ze-nose» comme un Prestashop. Si on change l'arborescence c'est un peu plus long, mais ça se fait encore bien.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Ajouter un rétrolien

URL de rétrolien : https://www.lafilacroche.com/trackback/448