By default each Lando Drupal recipe will also ship with helpful dev utilities.
This means you can use things like
php via Lando. This helps avoid mucking up your actual computer because you dont have to manage
php versions, global
composer dependencies and other less than savory things.
lando composer Runs composer commands lando db-export [file] Exports database from a service into a file lando db-import <file> Imports a dump file into database service lando drush Runs drush commands lando mysql Drops into a MySQL shell on a database service lando php Runs php commands
Make sure you install Drush
If you are running
Drupal 8.4+ then you will need a site-local install of Drush. Check out Using Drush below for more info.
# Doing a drush site install lando drush si --db-url=mysql://drupal9:drupal9@database/drupal9 -y # Run composer tests lando composer test # Drop into a mysql shell lando mysql # Check the app's installed php extensions lando php -m
You can also run
lando from inside your app directory for a complete list of commands which is always advisable as your list of commands may not 100% be the same as the above. For example if you set
database: postgres you will get
lando psql instead of
As of Drupal 8.4+ it is preferred you use a site-local install of Drush. For that reason Lando will not globall install a version of Drush for Drupal 9 sites.
You can site-local install drush by requiring it in your projects
lando composer require drush/drush
Once you do, Lando will be able to use
drush is listed in your
composer.json it is also recommended to configure a build step to automatically install Drush before your app starts up. This ensures
drush is available after
lando start and during any other build steps or events.
Automatically composer install before my app starts
recipe: drupal9 services: appserver: build: - composer install
If you find that Lando is not using your
drush as expected, which can happen if you've modified
composer to install in a different directory than its normal
vendor you can take advantage of Lando's tooling overrides and specify an absolute path to your Drush.
tooling: drush: cmd: /path/to/my/drush
Default URL Setup
You may see
http://default show up in many
drush commands you run.
lando drush uli // http://default/user/reset/1/1548025070/Px6PbLyJ_2laXqoDe6OukHXaX-cXExo4ErfrKbkqsE4/login
This happens because it is actually a difficult problem for Lando to 100% know the canonical URL or service that is serving your application. However you can set up your environment so that commands like
lando drush uli return the proper URL.
tooling: drush: service: appserver env: DRUSH_OPTIONS_URI: "https://mysite.lndo.site"
This is just a passthrough option to the xdebug setting that exists on all our php services. The
xdebug: true enables and configures the php xdebug extension and
xdebug: false disables it.
recipe: drupal9 config: xdebug: true|false
However, for more information we recommend you consult the php service documentation.
Importing Your Database
Once you've started up your Drupal 9 site you will need to pull in your database and files before you can really start to dev all the dev. Pulling your files is as easy as downloading an archive and extracting it to the correct location. Importing a database can be done using our helpful
lando db-import command.
# Grab your database dump curl -fsSL -o database.sql.gz "https://url.to.my.db/database.sql.gz" # Import the database # NOTE: db-import can handle uncompressed, gzipped or zipped files # Due to restrictions in how Docker handles file sharing your database # dump MUST exist somewhere inside of your app directory. lando db-import database.sql.gz
You can learn more about the
db-import command over here