For security reasons the $base_url used in Drupal 7 has been removed in Drupal 8. $base_url was used to set the absolute URL for the installation which is then used to generate links. One such link is the one-time login link generated by the Drush command:
user:login.
Without $base_url the user:login command has no knowledge of the domain. A similar effect to setting the $base_url in D7 can be achieved in D8 by setting the Drush 'uri' option. This can be set in a number of places, drushrc.php or the drush.yml file (Drush 9 only). The reference link below is a great article on using drushrc.php. I will discuss using drush.yml.
Using drush.yml to set Drush Options 'uri'
The drush.yml file allows for valid statements for a Drush run time configuration. Drush started using yml files for configuration in version 9; earlier versions of Drush will never attempt to load a drush.yml file. It is also possible # to limit the version of Drush that will load a configuration file by placing the Drush major version number in the filename, e.g.
drush9.yml.
The reference link below points to example.drush.yml on Gitlab.
For the Drush user:login command to output a login link that includes the site URL we need to set the options 'uri' value in a drush.yml file. To test the value of Site URI run the command:
drush status
If Site URI has not been set the output will be:
Site URI : http://default
Running drush user:login will output something like:
http://default/user/reset/1/1561444r845/hp33d5678a...1L64zdmfnRcf8/login
Set up the drush.yml file
Create a drush.yml file and place it in one of the following directories:
-
Drupal site folder (e.g. sites/{default|example.com}/drush.yml).
-
Drupal /drush and sites/all/drush folders, or the /drush folder in the directory above the Drupal root.
-
In any location, as specified by the --config (-c) option.
-
User's .drush folder (i.e. ~/.drush/drush.yml).
-
System wide configuration folder (e.g. /etc/drush/drush.yml or C:\ProgramData\Drush\drush.yml).
Edit and include in drush.yml file the following:
# # A Drush configuration file # # Docs at https://github.com/drush-ops/drush/blob/master/examples/example.drush.yml # # Edit or remove this file as needed. # This section is for setting global options. options: # Specify the base_url that should be used when generating links. # Not recommended if you have more than one Drupal site on your system. uri: 'https://yourdomain.com'
Clear the Drush cache:
drush cc drush drush cr
Run drush status and the Site URI value should now be:
Site URI : https://yourdomain.com
Run drush user:login now and the output will include the installation URL:
https://yourdomain.com/user/reset/1/1561470845/hp...jLi2rH2m1L64zdmfnRcf8/login
Add new comment