Drupal on Pantheon
Get started with Drupal on the Pantheon WebOps Platform.
Drupal 10 is available to all new sites, and is available as an upgrade path for Drupal 9 sites. Refer to Drupal 10 on Pantheon for more information.
Drupal 9 is similarly available on Pantheon to all new sites, and as an upgrade path for Drupal 8+ sites.
Since Drupal itself is in active development and each new version brings a number of significant changes from previous versions, this doc outlines the biggest changes and answers frequently asked questions.
About Drupal
Drupal includes many of the features and layout that Drupal users are familiar with, and it removes deprecated code to help improve future Drupal development.
The latest version of Drupal updates Drupal’s underlying dependencies like Symfony and Twig, removes several deprecated API functions in favor of better options, and allows everyone running Drupal 8.8+ an easy upgrade path to Drupal and beyond.
Drupal With Integrated Composer
On the Pantheon Platform, Drupal sites use Integrated Composer, letting you deploy your site on Pantheon with one-click updates for both upstream commits and Composer dependencies, while still receiving upstream updates.
Site Structure
The upstream has the following directory structure:
code/
├─ .gitignore
├─ composer.json
└─ pantheon.upstream.yml
├─ README.md
└─ upstream-configuration/ or upstream-config/ for WordPress
└─ composer.json
└─ web/
└─ sites/ for Drupal
└─ wp-content/ for WordPress
.gitignore
: Prevents build artifacts generated by Composer from being committed to the upstream or site code repositories. Note that changing the tracking status of Composer-managed files and directories can result in build failures or lead to unexpected errors.composer.json
: The two differentcomposer.json
files allows you to customize individual sites without inherent merge conflicts and enables one-click updates.- Root-level: Site-level customizations.
- Drupal:
upstream-configuration/
or WordPress:upstream-config/
:composer.json
: Composer automatically updatescomposer.json
with customizations for the upstream. Avoid manually modifying this file.
pantheon.upstream.yml
: Thebuild_step: true
directive inpantheon.upstream.yml
enables the build step.
When a site is created, Pantheon runs composer install
, generates a composer.lock
file, and commits it back to the site’s code repository. To avoid potential merge conflicts after applying an upstream update, do not commit the composer.lock
file from your upstream root to the upstream repository.
The composer.lock
file should not be listed in your .gitignore
file because it must be committed for individual sites created from your custom upstream. Use the command below to avoid accidentally committing a composer.lock
file when working directly with your custom upstream.
echo /composer.lock >> .git/info/exclude
The command has the same effect as ignoring the file in the top-level .gitignore
file, except that the exclude
file is not saved in the repository when you push changes back to the remote origin. You must re-run this command every time you make a new local clone of your upstream if you would like to protect against inadvertently committing a composer.lock
file.
Build artifacts are stored in a Git tag like pantheon_build_artifacts_$BRANCHNAME
, where $BRANCHNAME
is the name of the environment or Multidev feature branch.
It is a requirement that all build artifacts should be ignored in the .gitignore
file. Ensure you add entries to the .gitignore
any time you modify the build to move installation files to a new locations.
Managing Dependencies with Composer
Learn more about working with upstream and site dependencies in the Integrated Composer documentation.
Before You Begin
Log in to your Pantheon account. If you don't have one, create one first and familiarize yourself with Workspaces before you create a new site.
Set up SSH Keys on your local computer and Pantheon account.
Install and configure Git and Composer on your local computer.
Mac users can use Homebrew to install both Git, Composer, and Terminus along with their required dependencies:
brew install git composer pantheon-systems/external/terminus
Create a New Drupal Site with Integrated Composer
Create a new Drupal site from the Dashboard as you would with any new site. Integrated Composer is built in and ready to use.
Upgrade or Migrate to Drupal
To upgrade or migrate an existing Drupal site to Drupal with Integrated Composer, see the Drupal Migration Guide.
To check an existing site's compatibility to upgrade, visit the appropriate Drupal Migration Guide.
Troubleshooting and Support
See the appropriate Drupal Migration Guide for help troubleshooting common issues with Drupal with Integrated Composer.
Where can I report an issue?
Contact support to report any issues that you encounter.
Can I Use Lando or Localdev for Drupal?
Some users have reported success using Lando with Drupal, but it relies on a workaround and requires extra configuration. Check the status of the Lando repo's issue before you continue.
Manually update the landofile in the project folder, and set drupal9
as the framework:
# Lando issue 2831 workaround for D9
framework: drupal9
When you create a project with Lando from the Pantheon recipe, the framework
will default to drupal8
for a Drupal site.
If you created new project with Lando, change the value for framework
to drupal8
, then run lando rebuild
.
Site-local Drush Is Required for Drupal Sites
Do not remove drush/drush
from composer.json
. If it's removed, terminus drush
commands will fail with errors related to Twig.