107 lines
2.9 KiB
Markdown
107 lines
2.9 KiB
Markdown
While Drupal VM caters specifically to Drupal, and support for and compatibility with other PHP applications isn't guaranteed, Drupal VM is flexible enough to work with PHP applications besides Drupal.
|
|
|
|
## Wordpress
|
|
|
|
To integrate Drupal VM with an existing Wordpress project such as [bedrock](https://github.com/roots/bedrock), follow the documentation on using [Drupal VM as a Composer dependency](http://docs.drupalvm.com/en/latest/deployment/composer-dependency/).
|
|
|
|
Begin by forking/cloning `bedrock` as a boilerplate for your application, and require Drupal VM as a development dependency.
|
|
|
|
```yaml
|
|
composer require --dev geerlingguy/drupal-vm
|
|
```
|
|
|
|
Configure the VM by creating a `config/config.yml`:
|
|
|
|
```yaml
|
|
vagrant_hostname: bedrock.dev
|
|
vagrant_machine_name: bedrock
|
|
|
|
vagrant_synced_folders:
|
|
- local_path: .
|
|
destination: /var/www/wordpress
|
|
type: nfs
|
|
create: true
|
|
|
|
# Needs to match with what we have in .env and vagrant_synced_folders.
|
|
drupal_core_path: "/var/www/wordpress/web"
|
|
drupal_domain: "{{ vagrant_hostname }}"
|
|
drupal_db_user: wordpress
|
|
drupal_db_password: wordpress
|
|
drupal_db_name: wordpress
|
|
|
|
# Disable Drupal specific features.
|
|
drupal_build_composer_project: false
|
|
drupal_install_site: false
|
|
configure_drush_aliases: false
|
|
|
|
# Remove some Drupal extras such as `drupalconsole` and `drush`
|
|
installed_extras:
|
|
- adminer
|
|
- mailhog
|
|
- pimpmylog
|
|
|
|
# Add wp-cli
|
|
composer_global_packages:
|
|
- { name: hirak/prestissimo, release: '^0.3' }
|
|
- { name: wp-cli/wp-cli, release: '^1.0.0' }
|
|
```
|
|
|
|
Create the delegating `Vagrantfile` in the root of the project:
|
|
|
|
```rb
|
|
# The absolute path to the root directory of the project. Both Drupal VM and
|
|
# the config file need to be contained within this path.
|
|
ENV['DRUPALVM_PROJECT_ROOT'] = "#{__dir__}"
|
|
# The relative path from the project root to the config directory where you
|
|
# placed your config.yml file.
|
|
ENV['DRUPALVM_CONFIG_DIR'] = "config"
|
|
# The relative path from the project root to the directory where Drupal VM is located.
|
|
ENV['DRUPALVM_DIR'] = "vendor/geerlingguy/drupal-vm"
|
|
|
|
# Load the real Vagrantfile
|
|
load "#{__dir__}/#{ENV['DRUPALVM_DIR']}/Vagrantfile"
|
|
```
|
|
|
|
Edit your `.env` file to match the values you set in `config/config.yml`:
|
|
|
|
```
|
|
DB_NAME=wordpress
|
|
DB_USER=wordpress
|
|
DB_PASSWORD=wordpress
|
|
DB_HOST=localhost
|
|
|
|
WP_ENV=development
|
|
WP_HOME=http://bedrock.dev
|
|
WP_SITEURL=${WP_HOME}/wp
|
|
```
|
|
|
|
Ignore local Drupal VM configuration files by adding the following to your `.gitignore`:
|
|
|
|
```
|
|
Vagrantfile.local
|
|
config/local.config.yml
|
|
```
|
|
|
|
Add a wp-cli `@dev` alias that points to the VM by editing the `wp-cli.yml` file:
|
|
|
|
```yaml
|
|
path: web/wp
|
|
|
|
@dev:
|
|
ssh: vagrant@bedrock.dev/var/www/wordpress/web/wp
|
|
url: bedrock.dev
|
|
```
|
|
|
|
For passwordless login with `wp-cli` add the following to your SSH config `~/.ssh/config`:
|
|
|
|
```
|
|
Host bedrock.dev
|
|
StrictHostKeyChecking no
|
|
IdentityFile ~/.vagrant.d/insecure_private_key
|
|
```
|
|
|
|
Provision the VM and import your database.
|
|
|
|
```sh
|
|
vagrant up
|
|
```
|