Install Drupal core
You have a codebase; now you need a site. This page installs Drupal 11 two ways, through the web installer and through the command line, and shows core’s built-in quick-start command for disposable test sites.
An installed, working Drupal 11 site using the Standard profile, with an admin account you control. If you have not created the codebase yet, do Set up your environment first; this page assumes it verbatim. If you inherited an existing project, you do not install at all: import the database instead, as described in the existing-project variation.
Prerequisites
Section titled “Prerequisites”- A Drupal 11 codebase in a running DDEV project, per Set up your environment.
- Drush installed in the project (
ddev composer require drush/drush).
Choose an install profile
Section titled “Choose an install profile”The installer asks for an install profile, which decides what your site starts with. These docs assume Standard, which pre-configures the pieces the rest of this section tours: the Olivero front-end theme, the Claro admin theme, text formats and editors, and (from Drupal 11.4) the Navigation admin sidebar. Added in 11.4 Standard ships no content types: you define your own content model, as Your first hour shows. Minimal starts nearly empty and suits experienced teams who build everything from configuration. Demo: Umami is a showcase site for evaluating Drupal, not a starting point. A packaged alternative to all of these is Drupal CMS, which ships a finished site with smart defaults; see the variation below.
Run the installer
Section titled “Run the installer”-
Open the site in your browser:
Terminal window ddev launch -
Drupal detects there is no installed site and redirects you to the installer at
/core/install.php. -
Choose a language, then choose the Standard installation profile.
-
The database step does not appear: DDEV already provided working credentials in
settings.ddev.php, so the installer skips straight to installing modules. On a stack without DDEV, you enter database credentials here instead. -
On the Configure site form, set the site name, an email address, and the username and password for the first user account. This account (user 1) has all permissions; pick a real password even locally.
-
Select Save and continue. You land on your new site’s front page, logged in.
ddev drush site:install standard \ --site-name="My site" \ --account-name=admin \ --account-pass=admin -ydrush site:install (si) runs the same installer without the browser, reading database credentials from settings.php, which DDEV has already wired up. Omit --account-pass to get a generated password printed to the terminal. When the command finishes, log in with:
ddev drush user:loginInstallation creates the site’s database tables and web/sites/default/files/ for uploads. It reads the database connection from web/sites/default/settings.php, which DDEV created before you started, with its settings.ddev.php include at the bottom. Both settings files are environment-specific; neither belongs in version control with production values.
Quick-start a throwaway site
Section titled “Quick-start a throwaway site”Sometimes you want a Drupal site in one command to test something, with no Docker and no database server. Core ships this itself: the quick-start command installs Drupal into an SQLite database and serves it with PHP’s built-in web server. It runs on your machine, not in DDEV, so it needs PHP 8.3 with the pdo_sqlite extension installed locally. Run it in a separate throwaway checkout, never in your DDEV project: outside the containers it finds no database, and would install an SQLite site into the same sites/default that DDEV manages.
composer create-project drupal/recommended-project qscd qsphp web/core/scripts/drupal quick-start standardThis installs the Standard profile with the SQLite database at sites/default/files/.sqlite, starts a server on 127.0.0.1, and opens a one-time login link for the admin account in your browser. Stop it with Ctrl-C. If a site is already installed, the command leaves it alone and tells you to remove sites/default/files and sites/default/settings.php before reinstalling.
Quick-start also accepts a recipe directory (a composable, apply-once bundle of configuration) instead of a profile name, which is how you try out recipes without committing to them:
php web/core/scripts/drupal quick-start core/recipes/standardThe install and server halves are available separately as the install and server commands (see Drupal\Core\Command\InstallCommand and Drupal\Core\Command\ServerCommand). None of this is meant for production; it exists so that “try Drupal” costs one command.
The dr entry point Added in 11.4
Section titled “The dr entry point ”From Drupal 11.4, core’s CLI has a proper Composer-managed entry point: vendor/bin/dr. It exposes the same commands plus more (see Essential tools):
vendor/bin/dr quick-start standardThe old core/scripts/drupal script still works in 11.4 as a deprecated shim that forwards to dr, and is removed in Drupal 13 (see the change record). On Drupal 11.3 sites, php web/core/scripts/drupal remains the way to run these commands.
Verify
Section titled “Verify”- Visit the site URL. You see the Olivero front page with “No front page content has been created yet.” and, when logged in as admin, the admin UI: the Navigation sidebar on the left (Drupal 11.4 and later), or a toolbar across the top on earlier versions.
- Visit Administer → Reports → Status report
/admin/reports/status. No errors are listed, and the Drupal version reads 11.x. - From the terminal,
ddev drush statusreports the Drupal version, the database connection, andDrupal bootstrap : Successful.
Variations
Section titled “Variations”- Install in another language: pick the language on the installer’s first screen, or pass
--locale=frtodrush site:install. Quick-start takes--langcode fr. - Install from a recipe:
drush site:install, quick-start, anddr installall accept a recipe directory such ascore/recipes/standardin place of a profile name. Recipes are composable starting points that, unlike profiles, do not stay coupled to your site after install; see Recipes and config actions. - Reinstall from scratch:
drush site:installwith-ydrops and reinstalls the existing site’s database tables. For quick-start sites, deletesites/default/filesandsites/default/settings.phpfirst. - Existing project: never install; import the team’s database per Set up your environment.
- Start from Drupal CMS instead: a ready-made site built on Drupal core, with structured content types, an editorial workflow, and browser-installable add-ons out of the box. Follow Install Drupal CMS in its user guide; the module and theme development tracks here apply to it unchanged.
Related
Section titled “Related”- Your first hour, no code tours the site you installed.
- Anatomy of a Drupal project explains the files the installer created.
- Essential tools covers Drush and the core CLI in depth.
- The
CLI commands topicdocuments how the core CLI is put together.
Was this page helpful?
Drupal is a registered trademark of Dries Buytaert.