FG Virtual Environment

After botching my local Homebrew development environment by following command-line output advice (I knew as I was typing chown -R that it was probably a bad idea), I decided to create a virtual instance to facilitate FG development. This way, no matter what crazy things I might decide to do on my Mac in the future, nothing would affect my ability to contribute to the project. And if (when) I screwed up my virtual environment again, I could quickly recover it. I The sequence is shown below:

  1. Configure vagrant and spin up the VM
  2. Add port forwarding
  3. Update/install packages
  4. Append host file
  5. Enable proxy writing
  6. Configure Apache
  7. Setup the database
  8. Vagrant port forwarding (host)
  9. Provide server admin scripts
  10. Install node
  11. Install/enable APC
  12. Migrate from apache to nginx (it’s actually easier to setup apache, then convert)
  13. Hook up a DB GUI by configuring vagrant ssh
  14. Configure local PhpStorm IDE
  15. Configure Xdebug
  16. Downgrade PHP (production runs an older version – this is much harder to do than it sounds)
  17. Install PDFlib
  18. Install Composer (and all other libraries)
  19. Add a bunch of troubleshooting

In the end, my documentation provided a template for the steps required to build a local environment programmatically using Ansible so that current and future developers have only to clone the software repo, download VirtualBox and vagrant, and vagrant up to begin coding.