Skip to content

Cloner un site WordPress

Si vous devez cloner un site WordPress, prod -> local, l’idée est d’avoir un environement le plus proche possible de l’environement de prod. Il va donc falloir récupérer :

  • les fichiers du site
  • la base de données
  • les éventuels fichiers de configuration
  • Installer DDEV : https://ddev.com/get-started/ (suivre les instructions)
  • Avoir les accès ssh et phpmyadmin du site à cloner.
  • Avoir la version de PHP et MySQL de la prod.

DDEV vous permet de simuler un serveur local, vous donne accès à des commandes utiles que vous verrez par la suite et permet un set-up rapide des projets.

Terminal window
ddev config --project-type=wordpress
ddev start
ddev wp core download

Accéder à phpmyadmin ou autre et faites un export de la DB.

Terminal window
ddev import-db --file=prod.sql

Pour les petits sites, il est possible de récupérer l’intégralité du dossier wp-content via FileZilla. Pour les sites volumineux, il est recommandé de ne pas télécharger le dossier uploads afin de gagner du temps, de l’espace disque et d’accélérer les clones locaux.

Terminal window
sftp user@server
cd www/wp-content
# Se placer dans le dossier wp-content local
lcd wp-content
# Télécharger l'intégralité du dossier wp-content (pour les petits sites)
get -r wp-content
# Télécharger uniquement les fichiers nécessaires :
get -r plugins
get -r themes
get -r mu-plugins

Une fois la DB importée, il faut effectuer un search-replace (DBSR) pour mettre à jour les liens.

Terminal window
ddev wp search-replace "https://monsite.fr" "https://monsitelocal.ddev.site" --all-tables
# Puis flush des permaliens
ddev wp rewrite flush
Terminal window
# Démarrer un projet DDEV
ddev launch
# Restart un projet DDEV
ddev restart
# Afficher les infos du projet (urls, status des services, version de PHP ...)
ddev describe
# Active le débugger de performances (XHGui)
ddev xhgui on
ddev restart
# Desactiver les debug
ddev config --web-environment-add=WP_DEBUG=false

Si vous changer des configs directement au niveau du wp-config.php, elles seront écrasées lors du prochain ddev start. La source de vérité est donc : .ddev/config.yaml. C’est ce fichier qui est lu par DDEV au démarrage.