blue elephant figurine on macbook pro

DDEV is an open source tool that allows setting up local sites using docker, quickly. You don’t need to know complex concepts about docker to be able to have your local WorpPress or Drupal sites working. You can check their official documentation here https://ddev.com/get-started/ and here https://ddev.readthedocs.io/en/stable/

The steps/commands listed below are the ones that I have needed the most, so I am moving this note to the web as a reference for myself, in the future, or to help others who may needed.

How to install DDEV

  1. Install homebrew, following the steps at: https://brew.sh/
  2. Install ddev (MAC): brew install drud/ddev/ddev
  3. You need to run ddev config once per project to set it up, and it will ask you three questions:
    1. What’s site name?
    2. What’s the location of the docroot?
    3. What type of project is it? Such as Drupal, PHP, WordPress, etc.
  4. You need to run ddev start to have the project up and running. You can run the command from outside of the folder if you remember the project name.
  5. Want to import a database? You can run ddev import-db –src=dumpfile.sql.gz from the project directory. It will drop the database for you before importing the new database backup.
  6. What about if you need to run composer, drush or wp-cli commands? You should run ddev ssh
  7. Are you having an error and need to see the logs? You should run: ddev logs -f
  8. I have needed to run this command before I was able to run drush on some of my Drupal projects: ddev composer require drush/drush
  9. Need to get the URL of the sites, the port or check if the services are active? ddev describe will give you that info.
  10. If you need to have your local sites using with https, you should run: mkcert -install
  11. Need to debug PHP code with xdebug? You will need to run ddev xdebug to enable it. ddev xdebug off will turn it off again.
  12. You are on mac, and your local sites are super slow, you should run ddev config global –mutagen-enabled and it will enabled mutagen globally. You will notice the difference immediately.
  13. If you followed the step 12, and need to update a lot of files (maybe updating plugins or modules?), mutagen may be slow to pick the updated files, so you may need to run ddev mutagen sync to accelerate the sync process.
  14. Need to test your site with a different PHP version, so you can use ddev config –php-version 8.0 8.0 can be any PHP version that you need.
  15. To install memcached:
    1. Create a file docker-compose.memcached.yaml in the .ddev folder of your project with the following content and run ddev restart afterward:
# DDEV-Local memcached recipe file.
#
# To use this in your own project:
# 1. Copy this file to your project's ".ddev" directory.
# 2. Launch "ddev start".
# 3. Configure the project to look for memcached at hostname "memcached" and
#    port 11211.
# 4. Optional: adjust the 'command' line below to change CLI flags sent to
#    memcached.

version: '3.6'

services:
  # This is the service name used when running ddev commands accepting the
  # --service flag.
  memcached:
    # This is the name of the container. It is recommended to follow the same
    # name convention used in the main docker-compose.yml file.
    container_name: ddev-${DDEV_SITENAME}-memcached
    image: memcached:1.5
    restart: "no"
    # memcached is available at this port inside the container.
    expose:
      - 11211
    # These labels ensure this service is discoverable by ddev.
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}

    # Arguments passed to the memcached binary.
    command: ["-m", "128"]

    volumes:
    - ".:/mnt/ddev_config"
  web:
    links:
    - memcached:memcached