Skip to content

Get a local instance of Drupal up and running fast with DDEV

A quickstart guide to getting a brand new instance of Drupal running on your Mac, with minimal fuss and stress (hopefully, anyway).

This is the quickest way I’ve found to get a local instance of Drupal up and running on macOS. Deployment — a whole other subject — isn’t covered in this post.

Requirements permalink

If you have not already done so, install the following tools:

  1. Docker Desktop
  2. Homebrew: /bin/bash -c "$(curl -fsSL"
  3. Composer: brew install composer
  4. Node/npm: brew install node
  5. DDEV: brew tap drud/ddev && brew install ddev
  6. mkcert: mkcert -install

Installation permalink

I initially followed this Digital Ocean guide and distilled the key steps into the below sequence. (The Digital Ocean tutorial also covers Linux.)

  1. mkdir <project-name>
  2. cd <project-name>
  3. ddev config --project-type=drupal9 --docroot=web --create-docroot
  4. ddev start
  5. ddev composer create "drupal/recommended-project"
  6. ddev composer require "drush/drush"
    • If you get a PHP version error running this command:
      1. Update php_version in .ddev/config.yaml
      2. ddev restart
      3. Run step 6 again
  7. ddev exec drush site:install --account-name=admin --account-pass=admin (or replace admin with a more secure username and password)
  8. Modify the path for the config files in the DDEV settings file: sed -i '' "s|^# \\\$settings\['config_sync_directory'\].*|\$settings['config_sync_directory'] = '../config/sync';|" web/sites/default/settings.php
  9. ddev launch

The new Drupal site, with the URL https://<project-name>, should now open in your browser.

That’s it permalink

You might like to install Bootstrap5 as a starter theme: composer require 'drupal/bootstrap5'. And these modules:

  1. Simple XML sitemap: composer require 'drupal/simple_sitemap' && ddev drush pm:enable simple_sitemap
  2. Admin Toolbar: composer require 'drupal/admin_toolbar' && ddev drush pm:enable admin_toolbar
  3. Pathauto: composer require 'drupal/pathauto' && ddev drush pm:enable pathauto

At this point you might commit the code to a git repo, then get on with developing your site.

If you have any corrections or optimisations, please comment below.