Skip to content

Varying Vagrant Vagrants is an evolving Vagrant configuration focused on WordPress development.

License

Notifications You must be signed in to change notification settings

jubstuff/VVV

 
 

Repository files navigation

Dealerk Varying Vagrant Vagrants

Dealerk Varying Vagrant Vagrants is an open source Vagrant configuration focused on WordPress development. VVV is MIT Licensed.

Overview

How to Use Varying Vagrant Vagrants

Software Requirements

VVV requires recent versions of both Vagrant and VirtualBox to be installed.

Vagrant is a "tool for building and distributing development environments". It works with virtualization software such as VirtualBox to provide a virtual machine sandboxed from your local environment.

VVV as a MAMP/XAMPP Replacement

Once Vagrant and VirtualBox are installed, download or clone VVV and type vagrant up to automatically build a virtualized Ubuntu server on your computer containing everything needed to develop a WordPress theme or plugin. See our section on The First Vagrant Up for detailed instructions.

The First Vagrant Up

  1. Start with any local operating system such as Mac OS X, Linux, or Windows.
  2. Install VirtualBox 4.3.x
  3. Install Vagrant 1.6.x
    • vagrant will now be available as a command in your terminal, try it out.
    • Note: If Vagrant is already installed, use vagrant -v to check the version. You may want to consider upgrading if a much older version is in use.
  4. Install the vagrant-hostsupdater plugin with vagrant plugin install vagrant-hostsupdater
    • Note: This step is not a requirement, though it does make the process of starting up a virtual machine nicer by automating the entries needed in your local machine's hosts file to access the provisioned VVV domains in your browser.
    • If you choose not to install this plugin, a manual entry should be added to your local hosts file that looks like this: 192.168.50.4 vvv.dev local.wordpress.dev local.wordpress-trunk.dev src.wordpress-develop.dev build.wordpress-develop.dev
  5. Install the vagrant-triggers plugin with vagrant plugin install vagrant-triggers
    • Note: This step is not a requirement. When installed, it allows for various scripts to fire when issuing commands such as vagrant halt and vagrant destroy.
    • By default, if vagrant-triggers is installed, a db_backup script will run on halt, suspend, and destroy that backs up each database to a dbname.sql file in the {vvv}/database/backups/ directory. These will then be imported automatically if starting from scratch. Custom scripts can be added to override this default behavior.
    • If vagrant-triggers is not installed, VVV will not provide automated database backups.
  6. Clone or extract the Varying Vagrant Vagrants project into a local directory
  7. In a command prompt, change into the new directory with cd dkvagrant
  8. Start the Vagrant environment with vagrant up
    • Be patient as the magic happens. This could take a while on the first run as your local machine downloads the required files.
    • Watch as the script ends, as an administrator or su password may be required to properly modify the hosts file on your local machine.
  9. Visit any of the following default sites in your browser:

Fancy, yeah?

What Did That Do?

The first time you run vagrant up, a packaged box containing a basic virtual machine is downloaded to your local machine and cached for future use. The file used by Varying Vagrant Vagrants contains an installation of Ubuntu 14.04 and is about 332MB.

After this box is downloaded, it begins to boot as a sandboxed virtual machine using VirtualBox. Once booted, it runs the provisioning script included with VVV. This initiates the download and installation of around 100MB of packages on the new virtual machine.

The time for all of this to happen depends a lot on the speed of your Internet connection. If you are on a fast cable connection, it will likely only take several minutes.

On future runs of vagrant up, the packaged box will be cached on your local machine and Vagrant will only need to apply the requested provisioning.

  • Preferred: If the virtual machine has been powered off with vagrant halt, vagrant up will quickly power on the machine without provisioning.
  • Rare: If you would like to reapply the provisioning scripts with vagrant up --provision or vagrant provision, some time will be taken to check for updates and packages that have not been installed.
  • Very Rare: If the virtual machine has been destroyed with vagrant destroy, it will need to download the full 100MB of package data on the next vagrant up.

Now What?

Now that you're up and running, start poking around and modifying things.

  1. Access the server via the command line with vagrant ssh from your dkvagrant directory. You can do almost anything you would do with a standard Ubuntu installation on a full server.
    • MS Windows users: An SSH client is generally not distributed with Windows PCs by default. However, a terminal emulator such as PuTTY will provide access immediately.
  2. Power off the box with vagrant halt and turn it back on with vagrant up.
  3. Suspend the box's state in memory with vagrant suspend and bring it right back with vagrant resume.
  4. Reapply provisioning to a running box with vagrant provision.
  5. Destroy the box with vagrant destroy. Files added in the www directory will persist on the next vagrant up.

Caveats

VVV relies on the stability of both Vagrant and Virtualbox. These caveats are common to Vagrant environments and are worth noting:

  • If the directory VVV is inside of is moved once provisioned (vagrant-local), it may break.
    • If vagrant destroy is used before moving, this should be fine.
  • If Virtualbox is uninstalled, VVV will break.
  • If Vagrant is uninstalled, VVV will break.

The default memory allotment for the VVV virtual machine is 1024MB.

Credentials and Such

All database usernames and passwords for WordPress installations included by default are wp and wp.

MySQL Root

What do you get?

A bunch of stuff!

  1. Ubuntu 14.04 LTS (Trusty Tahr)
  2. WordPress Develop
  3. WordPress Stable
  4. WordPress Trunk
  5. WP-CLI
  6. nginx 1.6.x
  7. mysql 5.5.x
  8. php-fpm 5.5.x
  9. memcached 1.4.13
  10. PHP memcache extension 3.0.8
  11. PHP xdebug extension 2.2.5
  12. PHP imagick extension 3.1.2
  13. PHPUnit 4.0.x
  14. ack-grep 2.04
  15. git 1.9.x
  16. subversion 1.8.x
  17. ngrep
  18. dos2unix
  19. Composer
  20. phpMemcachedAdmin
  21. phpMyAdmin 4.1.14 (multi-language)
  22. Opcache Status
  23. Webgrind
  24. NodeJs Current Stable Version
  25. grunt-cli Current Stable Version

About

Varying Vagrant Vagrants is an evolving Vagrant configuration focused on WordPress development.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 44.6%
  • ApacheConf 41.0%
  • PHP 8.6%
  • Nginx 4.6%
  • Vim Script 1.2%