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.
This is the quickest way I’ve found to get a local instance of Drupal up and running on macOS. Deployment to a server isn’t covered in this post.
Requirements permalink
If you have not already done so, install the following tools:
- Docker Desktop
- Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - Composer:
brew install composer - Node/npm:
brew install node - DDEV:
brew tap drud/ddev && brew install ddev - 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.)
mkdir <project-name>cd <project-name>ddev config --project-type=drupal9 --docroot=web --create-docrootddev startddev composer create "drupal/recommended-project"- This will install the latest stable version of Drupal. To choose an older version, say v10, run
ddev composer create "drupal/recommended-project:^10"
- This will install the latest stable version of Drupal. To choose an older version, say v10, run
ddev composer require "drush/drush"- If you get a PHP version error running this command:
- Update
php_versionin.ddev/config.yaml ddev restart- Run step 6 again
- Update
- If you get a PHP version error running this command:
ddev exec drush site:install --account-name=admin --account-pass=admin(or replaceadminwith a more secure username and password)- 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 ddev launch
The new Drupal site, with the URL https://<project-name>.ddev.site/, 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:
- Simple XML sitemap:
composer require drupal/simple_sitemap && ddev drush pm:enable simple_sitemap - Admin Toolbar:
composer require drupal/admin_toolbar && ddev drush pm:enable admin_toolbar admin_toolbar_tools admin_toolbar_search - 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.