DEV Community

Russell Jones
Russell Jones

Posted on • Originally published at jonesrussell.github.io on

Use DDEV to locally develop with Drupal

I’ve been developing with Drupal for over 10 years. It’s never been known to be quick and easy to install, but with the rise of containers it’s now as easy as executing a few commands in a terminal.

Prerequisites

Installing the prerequisites is beyond the scope of this post but here is a linked list of what you need installed on your system:

Download & Install Drupal

composer has become the de-facto standard package manager of PHP projects and the Drupal recommended way to manage a Drupal installation:

# use composer to download Drupal
composer create-project drupal/recommended-project my-drupal-site \
    && cd $_ # $_ will contain 'my-drupal-site'

Enter fullscreen mode Exit fullscreen mode

DDEV is a wrapper for Docker Compose that spins up containers configured to serve PHP projects with an SQL database:

# create a ddev config and settings.php for Drupal
ddev config --docroot web --project-name $_ --project-type drupal8

Enter fullscreen mode Exit fullscreen mode

Start the containers:

ddev start

Enter fullscreen mode Exit fullscreen mode

Once the containers successfully start a link will be displayed to visit your site:

Successfully started my-drupal-site
Project can be reached at http://my-drupal-site.ddev.site http://127.0.0.1:32780

Enter fullscreen mode Exit fullscreen mode

Before Drupal is usable it must be installed. You can click through the install wizard or use drush, a command-line utility for Drupal, that comes installed with DDEV:

ddev exec drush site-install -y --account-name=admin --account-pass=my-password

Enter fullscreen mode Exit fullscreen mode

That’s it! Drupal is installed and running at http://my-drupal-site.ddev.site.

Login

You can login with the following credentials:

username: admin
password: my-password

Enter fullscreen mode Exit fullscreen mode

Further Reading

Documentation: https://ddev.readthedocs.io/en/latest/

DDEV includes some handy functionality, like running composer and drush within the web container to download and install new modules.

You can easily import/export your database, or tap into ngrok to share a browse-able link to your project accessible from the internet.

Happy developing! Gabekana.

Top comments (0)