2. Objectives
• What is a development environment?
• What tools exist for creating and configuring a
WordPress development environment?
• What tools exist to help us deploy our code?
17. What tools exist to help us set
up our local development
environment?
18. –Terry Pratchett
“If you don't know where you are, then you don't
know where you're going, and if you don't know
where you're going, you're probably going wrong.”
19. Things to Consider
• Will I be working on a team?
• Will I be developing a theme or plugin, or working on
WordPress core?
• How do I plan on deploying my code?
30. Linux / Mac
• Create an image for your team that has all of the
necessary configuration for your stack
• Leverage scripting for creating new projects and
deploying your code
• Create a custom build of WordPress that you keep in
a git repository which uses composer to track your
plugin dependencies
31. Linux / Mac
• https://github.com/kiriaze/mac-dev-env
• https://gist.github.com/joshcummingsdesign/0f291b3
f73f1e3113227
• https://wpackagist.org/
32. Native Stack - Pros
• Lightweight
• Quickly create new projects
• Works really well when your remote servers always
run a similar configuration
• Fast deploys that you can automate
33. Native Stack - Cons
• More dependencies to manage
• Harder to hand your code over to another developer
unless they have the same build
36. VM - Pros
• Easily create a configure a new server
• Reproduce any environment
• Completely destructible
• Completely decoupled
• Passes the 6 month & “works on mine” tests
38. Vagrant
• Cross-platform
• Create a single file for your project to describe the
type of machine you want (provisioning file)
• One command to spin up an environment
• One command to deploy an environment
39. VVV
• Varying Vagrant Vagrants
• Focused on WordPress development.
• Ideal for developing themes and plugins as well as
for contributing to WordPress core.
41. Trellis
• Developed by the Roots team
• Vagrant LEMP stack for WordPress with modern
development in mind
• Uses the power of Ansible to provision servers and
deploy with a single command
44. Docker containers wrap up a piece of software in a complete
filesystem that contains everything it needs to run: code,
runtime, system tools, system libraries – anything you can
install on a server. This guarantees that it will always run the
same, regardless of the environment it is running in.
45.
46. Docker
• Docker file
• Builds docker image
• Image sits on top of your machine
• Self-contained processes (microservices)
• Docker Hub
48. Docker
• Modular
• VM-like features with less overhead
• Deploy very quickly because it only updates the new
information (like Git)
49. Docker for WordPress
• Define the project (YAML)
• Curl WordPress tarball
• Create a wp-config.php
• Run docker-compose up
• Codeship for deployment