Cloner votre site

Dupliquer un site existant

Cloner votre site

Il existe plusieurs raisons de vouloir cloner un site, parfois il s’agit de créer une version de test ou de créer un nouveau site reprenant la structure d’un site existant avec une url différente.

La méthode dépend du type de votre site, les manipulation ne sont pas toujours les mêmes qu’il s’agisse d’un WordPress, d’un Magento ou d’un Drupal par exemple.
Même si les principales étapes sont communes, ce document nécessitera bien souvent d’être adapté en fonction de la situation rencontrée.

Avertissement: les commandes suivantes sont a réaliser avec précaution et il est conseillé de sauvegarder toutes les données de votre site avant d’effectuer ces manipulations.

Procédure

Préparation

Créer un nouveau site vierge comme expliqué sur la page de création d’un site, si le site d’origine est déjà sur votre hébergement Ethersys, penser à reprendre les configurations spécifiques si nécessaire (version de PHP, paramètres avancés…).
De plus si votre site utilise une base de données, ce qui est généralement le cas, vous devrez aussi créer une nouvelle base de donnée.

Clonage des fichiers

L’utilitaire le plus adapté pour copier vos fichiers est rsync, pour créer une copie d’un site existant vers un nouveau dossier la commande à utiliser est la suivante

rsync -aL dossier_ancien_site/ dossier_nouveau_site

(pour information l’option a permet de créer une archive complète et l’option h indique qu’il faut copier le contenu des liens symbolique au lieu de les suivre)

Il est possible que l’adresse du site soit en dur dans les fichiers du site, pour cela on remplace l’adresse par la nouvelle dans les fichiers avec la commande.

find dossier_nouveau_site -type f -exec sed -i 's/adresse_ancien_site/adresse_nouveau_site/g' {} \;

Penser également à mettre à jour les fichiers de configuration de votre site avec les paramètres de votre nouvelle base de données.
Le fichier à éditer dépend de votre site, app/etc/local/xml pour un Magento, wp-config.php pour un WordPress …

Clonage de la base de donnée

Il vous faut faire une sauvegarde de la base de données du site d’origine avec la commande

mysqldump -u UTILISATEUR_ANCIENNE_BASE -p NOM_ANCIENNE_BASE > sauvegarde_base.sql

Pour pouvoir gérer le changement d’adresse du site, une façon simple est de remplacer l’ancienne adresse par la nouvelle dans le contenu de la sauvegarde de la base. Pour cela on peux utiliser la commande sed, avec la syntaxe suivante

sed -i 's/adresse_ancien_site/adresse_nouveau_site/g' sauvegarde_base.sql

On dispose maintenant d’une base à jour pour le nouveau site que l’on peux charger avec la commande suivante

mysql -u UTILISATEUR_NOUVELLE_BASE -p NOM_NOUVELLE_BASE < sauvegarde_base.sql

Vider le dossier de cache

En fonction du type de site, il est aussi important de vider le dossier de cache (var/cache pour Magento par exemple)

Éviter le référencement

Si votre nouveau site est simplement une démo ou une copie de travail, vous ne désirez probablement pas qu’il soit référencé.
N’oubliez donc pas de placer à la racine du site un fichier robots.txt contenant

User-agent: *
Disallow: /

Astuces diverses

Protéger votre site

Si en plus de la désactivation du référencement, vous souhaitez que votre site ne soit pas du tout accessible et protégé par des identifiant vous pouvez vous ajouter une authentification HTTP

Option MySQL incorrecte

Lors de l’import vous pouvez avoir une erreur MySQL du type

ERROR 1005 (HY000) at line 3854: Can't create table `database`.`table_name` (errno: 140 "Wrong create options")

Si le site était assez ancien, des options MySQL dépréciées peuvent être présentes dans la sauvegarde, pour les supprimer on peux également utiliser sed, par exemple avec la commande

sed -i 's/ROW_FORMAT=FIXED//g' sauvegarde_base.sql

Qui supprimera ce paramètre de toutes les lignes ou il apparaît.