Définissez l’url de base de votre site Drupal 8 pour Drush

Définissez l’url de base de votre site Drupal 8 pour Drush

13 Feb 2018 |  Drupal

Lorsque l’on développe des sites en Drupal on ne peut pas se passer de Drush pour l’administrer en ligne de commande. Parmi toutes les fonctions proposées, Il en existe une vraiment utile afin de se connecter à un site pour un compte utilisateur spécifique sans avoir le mot de passe associé. Cette fonctionnalité qui génère un lien de connexion à usage unique est assurée par la commande user-login (uli).

Alors que cette fonctionnalité était opérationnelle de base avec Drupal 7, ce n’est plus le cas avec Drupal 8 et vous vous retrouvez avec le lien de connexion suivant http://default à la place de la bonne url.

$ drush uli
default does not appear to be a resolvable hostname or IP, not starting browser. You may need to use the --uri option in your command or site alias to indicate the      [warning]
correct URL of this site.
http://default/user/reset/1/1512037474/K13S4x2WT3k1flXVqUobOWGNY_IkOfeSXEUnIDbwltY/login

Afin de résoudre ce problème, deux solutions s’offrent à vous:

  • Précisez l’adresse de votre site en tant qu’argument dans la commande Drush
$ drush uli --uri=example.com
http://example.com/user/reset/1/1512037818/XdHvwbyi3MCnLaeXt9gsbKexZXFCtXYPER7dwU7uMHE/login
  • Créer un fichier drushrc.php dans le répertoire sites/default avec le contenu suivant
<?php
/**
 * @file
 * drushrc.php file
 * Provides drush configuration to example.com.
 */
$options['uri'] = 'http://example.com';

A noter que ce fichier drushrc.php est un fichier .php, vous pouvez ajouter votre code et faire quelque chose de compatible avec les différents environnements de votre site.

 <?php
/**
 * @file
 * drushrc.php file
 *
 * Tells Drush about environment configuration.
 */
# Defines Drupal's url based on env variables.
if (isset($_ENV['SITE_ENVIRONMENT'])) {
  switch ($_ENV['SITE_ENVIRONMENT']) {
    case 'prod':
      $options['uri'] = 'example.com';
      break;

    case 'qa':
      $options['uri'] = 'qa.example.com';
      break;

    case 'dev':
      $options['uri'] = 'dev.example.com';
      break;
  }
}
else {
  $options['uri'] = 'example.local';
}
Julien Dubreuil

Vous avez une idée, un projet web à réaliser ?

Ensemble, mettons en oeuvre sa réussite. Je vous accompagne dans vos projets, depuis l'élaboration du cahier des charges jusqu'à la mise en production. Pour plus d'information n'hésitez pas à me contacter.

Contactez-moi