11.8. Mettre en place un site de développement

Last updated on
11 January 2024

Objectif

Mettre en place une copie d’un site qui pourra être utilisée pour développer de nouvelles fonctionnalités et y tester les mises à jour.

Prérequis du site

  • Vous avez un site en production, déjà développé, dont vous voudriez faire une copie à des fins de développement.
  • Si vous voulez utiliser Drush pour certaines des étapes de cette tâche, Drush doit être installé. Consulter Section 3.2, « Concept : outils supplémentaires ».

Étapes

  1. Suivre les étapes dans Section 3.4, « Se préparer à l’installation », de sorte que vous ayez un hébergement prêt pour votre site de développement, que vous sachiez où est sa racine, et que vous ayez une base de données vide avec un compte d’utilisateur de la base de données prêts à être utilisés pour votre site de développement.
  2. La prochaine étape consiste à réaliser une copie brute (dump) de votre base de données, avec le contenu de la base de données de votre site. Ce fichier peut être assez gros, mais il y a deux choses que vous pouvez faire pour en réduire la taille :

    • Compresser le fichier, en utilisant gzip ou un autre utilitaire de compression.
    • Exclure le contenu des tables de la base de données correspondant au système interne de mise en cache, en tronquant ces tables. Leurs données sont temporaires, et vous n’avez besoin que de la structure de la table et non du leur contenu pour faire une copie du site.

      Pour réaliser une copie brute, essayer une des méthodes suivantes :

    • Si vous utilisez Drush, utiliser cette commande, qui inclura seulement la structure et non le contenu de ces tables du cache, et compressera la sortie avec gzip :

      drush sql:dump --gzip --structure-tables-list="cache,cache_*" \
        --result-file='CHEMIN/DE/LA/SAUVEGARDE.sql'
    • Si vous utilisez MySQL et avez accès à la ligne de commande, utiliser cette commande après avoir tronqué le tables du cache (en remplaçant le nom de votre base de données ainsi que l’identifiant et le mot de passe) :

      mysqldump -u'IDENTIFIANT' -p'MOTDEPASSE' NOMDELABASEDEDONNEES | \
        gzip > CHEMIN/DE/LA/SAUVEGARDE.sql.gz
    • Si vous utilisez MySQL comme base de données, et que phpMyAdmin est installé sur le serveur de votre site de production (il est disponible depuis beaucoup de tableaux de bord d’hébergeurs), vous pouvez tronquer les tables du cache en les sélectionnant dans le tableau de phpMyAdmin présentant la structure de la base de données et choisir l’opération Vider en bas de page. Utiliser alors l’onglet Exporter dans phpMyAdmin pour exporter au format SQL, avec compression gzip pour réduire la taille du fichier.
    • Utiliser le module contribué Backup and Migrate depuis votre site en production. Consulter Section 11.3, « Télécharger et installer un module depuis Drupal.org » pour des instructions sur l’installation de modules contribués.

      Vous disposez maintenant d’une copie de la base de données stockée dans le fichier SAUVEGARDE.sql.gz. Pour des raisons de sécurité, éviter de stocker ce fichier sur le serveur de votre hébergement sous la racine de votre site Drupal. Cela empêchera des tiers d’accéder à une copie de votre base de données.

  3. Copier tous les fichiers depuis la racine de votre site en production vers celle de votre site de développement. Vous pourriez souhaiter utiliser Git pour ce faire ; le cas échéant, consulter Section 11.11, « Gérer les révisions des fichiers et de la configuration avec Git ».
  4. Modifier le fichier sites/default/settings.php sous le répertoire racine de votre site avec un éditeur de texte. Trouver les lignes vers la fin contenant les nom, identifiant, mot de passe de la base de données, et les remplacer par ceux de la base de données du site de développement mise en place. Les lignes ressemblent à quelque chose de ce genre (avant modification) :

    $databases['default']['default'] = [
      'database' => 'nom_base_donnees_production',
      'username' => 'identifiant_base_donnees_production',
      'password' => 'mot_de_passe_base_donnees_production',
      …
  5. Vérifier si votre fichier settings.php comporte le paramètre suivant ; si oui, alors il faudra le modifier pour qu’il pointe vers l’URL de votre site de développement au lieu de l’URL de votre site de production :

    $settings['trusted_host_patterns']
  6. Vérifier que votre fichier settings.php comporte le paramètre suivant, et que cette chaîne de caractères prend une valeur aléatoire. Dans le cas contraire, il vous faudra l’ajouter ou le modifier afin d'éviter une erreur fatale :

    $settings['hash_salt'] = 'une_chaine_aleatoire';

    Une manière de produire une chaîne aléatoire pour le salage du hachage consiste à exécuter la commande Drush suivante :

    drush php-eval 'echo
      \Drupal\Component\Utility\Crypt::randomBytesBase64(55) . "\n";'

    Si vous n’utilisez pas Drush, il existe de nombreux sites web et des applications mettant à disposition des générateurs de chaînes aléatoires ; s’assurer de générer une chaîne longue d’au moins 74 caractères.

  7. Importer la copie de la base de données créée dans la base de données du site de développement. Essayer une des méthodes suivantes :

    • Si vous utilisez MySQL comme base de données, et que phpMyAdmin est installé sur le serveur de votre site de production (il est disponible depuis beaucoup de tableaux de bord d’hébergeurs), utiliser l’onglet Importer dans phpMyAdmin. Il se pourrait que vous deviez recommencer l’importation plusieurs fois, si votre base de données était vraiment volumineuse.
    • Si vous utilisez MySQL et avez accès à la ligne de commandes, utiliser cette commande (en remplaçant le nom de votre base de données ainsi que l’identifiant et le mot de passe ; si vous avez créé un fichier de sauvegarde compressé avec gzip, vous devrez aussi le décompresser au préalable) :

      gunzip < CHEMIN/DE/LA/SAUVEGARDE.sql.gz | \
        mysql -u'IDENTIFIANT' -p'MOTDEPASSE' BASEDEDONNEES
    • Si vous préférez utiliser Drush, utiliser cette commande :

      drush sql:query --file='CHEMIN/DE/LA/SAUVEGARDE.sql.gz'
  8. Si vos sites de développement et de production nécessitent des éléments de configuration différents, alors vous devez utiliser des surcharges de configuration dans le fichier settings.php. La variable $config vous aidera à maintenir des valeurs surchargées séparément des données de configuration standard. Par exemple, vous pourriez vouloir que le nom du site soit "Anytown Farmers Market" sur le site de production, mais "Site de développement d’Anytown Farmers Market" sur le site de développement. Pour ce faire, vous pourriez avoir la valeur de production dans la configuration de votre site (dans la base de données), et sur le site de développement, dans le fichier settings.php, vous auriez besoin de rajouter :

    $config['system.site']['name'] =
      "Site de développement d'Anytown Farmers Market";

Pour approfondir

Vidéos (en anglais)

Making a Development Site

 

This page is generated from AsciiDoc source from the User Guide. To propose a change, edit the source and attach the file to a new issue in the User Guide project. PDF and e-book formats are available on the User Guide project page.

Source file: install-dev-making.asciidoc

Help improve this page

Page status: No known problems

You can: