# Installation
# What is Bedrock?
Bedrock is a WordPress boilerplate (opens new window).
# Why use Bedrock?
- Better folder structure
- Dependency management with Composer (opens new window)
- Easy WordPress configuration with environment specific files
- Environment variables with Dotenv (opens new window)
- Autoloader for mu-plugins (use regular plugins as mu-plugins)
- Enhanced security (separated web root and secure passwords with wp-password-bcrypt (opens new window))
# Requirements
- PHP >= 7.4
- Composer (opens new window)
# Installing Bedrock with Composer
Create a new Bedrock project:
$ composer create-project roots/bedrock
# Getting Started
- Update environment variables in the
.env
file:- Database variables
DB_NAME
- Database nameDB_USER
- Database userDB_PASSWORD
- Database passwordDB_HOST
- Database host- Optionally, you can define
DATABASE_URL
for using a DSN instead of using the variables above (e.g.mysql://user:password@127.0.0.1:3306/db_name
)
WP_ENV
- Set to environment (development
,staging
,production
)WP_HOME
- Full URL to WordPress home (https://example.com)WP_SITEURL
- Full URL to WordPress including subdirectory (https://example.com/wp)AUTH_KEY
,SECURE_AUTH_KEY
,LOGGED_IN_KEY
,NONCE_KEY
,AUTH_SALT
,SECURE_AUTH_SALT
,LOGGED_IN_SALT
,NONCE_SALT
- Generate with wp-cli-dotenv-command (opens new window)
- Generate with our WordPress salts generator (opens new window)
- Database variables
- Add theme(s) in
web/app/themes/
as you would for a normal WordPress site - Set the document root on your webserver to Bedrock's
web
folder:/path/to/site/web/
- Access WordPress admin at
https://example.com/wp/wp-admin/
# Multisite
Bedrock is multisite network compatible, but needs the roots/multisite-url-fixer (opens new window) mu-plugin on subdomain installs to make sure admin URLs function properly. This plugin is not needed on subdirectory installs but will work well with them. From your Bedrock directory:
$ composer require roots/multisite-url-fixer
Sponsor us on GitHub to help us grow 🌱