This is the quickest way I’ve found to get a local instance of Drupal up and running on macOS. (Deploying to a remote server isn’t covered in this post.)
Requirements
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 install ddev/ddev/ddev - mkcert:
mkcert -install
Installation
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=drupal11 --docroot=web --create-docrootddev startddev composer create-project "drupal/recommended-project"- This will install the latest stable version of Drupal. To choose an older version, say v10, run
ddev composer create-project "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 compatibility error running this command:
- Update
php_versionin.ddev/config.yaml. ddev restart- Run step 6 again.
- Update
- If you get a PHP version compatibility error running this command:
ddev exec drush site:install --account-name=admin --account-pass=admin(or replaceadminwith a more secure username and password.)ddev launch
Bish, bash, bosh: a new Drupal site, with the URL https://__project_name__.ddev.site/, should now open in your browser. Nae bother.
That’s it
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.
Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.