Does using drush uli in D8 and getting http://default drive you mad?
In Drupal 8, setting your sites domain in settings.php
is no longer possible. In Drupal 7, you could set the base_url
in settings.php
like:
$base_url = 'http://domain.com';
Have you noticed in Drupal 8 that when you use drush uli it returns a url that starts with http://default
! If you are tired of copying and pasting what comes after http://default/
or adding the --uri=http://domain.com
flag along with drush uli I have a solution for you!
Meet the drushrc.php
file. I prefer to put this one level higher than my Drupal root. So…
- Project repo
- webroot (public_html, web, docroot, etc)
- drush/drushrc.php
Lots can go in the drushrc.php
file, but if you simply want to fix the drush uli default issue, it can just have:
<?php
$options['url'] = 'http://domain.com';
If you are using GIT to manage your code base, you could consider a strategy of a drushrc.php
file per environment. Example:
Create drush/drushrc.local.php
That file can contain:
<?php
$options['url'] = 'http://domain.dev';
Your main drushrc.php
now looks like:
<?php
/**
* If there is a local drushrc file, then include it.
*/
$local_drushrc = __DIR__ . "/drushrc.local.php";
if (file_exists($local_drushrc)) {
include $local_drushrc;
}
Now you can place drush/drushrc.local.php
in your .gitignore
file.
If you are using a PaaS like Pantheon, you can take this strategy:
Since Pantheon automatically handles setting the $options[‘url’]
for you, you can simply say...if NOT Pantheon, use my local dev domain.
With the Pantheon approach, your drushrc.php
file can look like:
<?php
if (!isset($_SERVER['PANTHEON_ENVIRONMENT'])) {
$options['url'] = 'http://domain.dev';
}
I believe setting the $options[‘url’]
has always been possible if using drush aliases, so continue on if you’ve always done that.
Now enjoy the infinite bliss when typing drush uli
and having the correct domain returned.