Here is a Guide For WordPress Local Development with Vagrant. Vagrant is Better than MAMP, WAMP or XAMPP for localhost development and is related to Virtual Appliance. Usually, we used to install WAMP or XAMPP, which gradually got backdated with the advent of Virtual Appliances. Now, WordPress Local Development with Vagrant, is almost as the most advanced setup.
WordPress Local Development with Vagrant : Brief Introduction
MAMP, WAMP or XAMPP are basically LAMP stacks. But, now most commonly, for better setup; we run Nginx on Cloud Server, not Apache2. MAMP, WAMP or XAMPP, has no optimization for WordPress on localhost and is not identical to the production environment, chance to fail to work on the production server is huge. For WordPress running Nginx, MySQL, PHP-FPM and any Object Cache, we basically need the exact combination.
So, the minimum need is a Virtualization Capable Processors. Usually, a 15″ MacBook Pro is taken as standard as OS X is UNIX, the technical specifications demands to know only the year of manufacturing.
---
With Vagrant, we can easily recreate the same environment on development machine. Micro & Soft Win Dozzz is only useful for checking IE compatibility for frontend designing. Even Micro & Soft is talking about loving Linux now. It is better to use any Linux as Host Operating System instead of fighting with Cygwin. Most importantly, the Retina display, iOS devices can not be emulated on any other hardware. Micro & Soft Lumia (not Nokia Lumia, now) is not required to be separately tested as Android phones work fine. Most of the designers historically use Mac, so the whole thing is actually accepted by the most developers. iOS, Android, OS X – all basically UNIX or UNIX Like. Commands are closer. Vagrant is a system for creating local kind of web servers in portable, highly-configurable virtual machines which basically can run on Linux, Win dozzz and Mac. There are lot of different types of Vagrant setups :
1 | https://github.com/wpscholar/wp-vagrant-project-reference |
You’ll require VirtualBox, as you can understand. Most commonly, example is given with VVV – Varying Vagrant Vagrants.
WordPress Local Development with Vagrant : Vagrant Resources
Apart from VVV, there are other comprehensive configuration for developing WordPress with Vagrant are available, here is a list :
1 2 3 4 5 6 7 8 9 | 1. VCCW (Vagrant + Chef + WordPress) : http://vccw.cc 2. Vagrantpress : http://vagrantpress.org 3. Theme Review : https://github.com/aubreypwd/wordpress-themereview-vvv 4. Chassis : http://chassis.github.io 5. WP Vagrant : https://github.com/tierra/wp-vagrant 6. WordPress Kickstart (Digital Ocean Like Environment) : https://github.com/jnettome/wordpress_kickstart 7. WordPress VIP : https://github.com/Automattic/vip-quickstart 8. PuPHPet (Digital Ocean, Rackspace and Amazon Like Environments) : https://puphpet.com 9. Nginx, HHVM, and MariaDB (My Goodness!) : https://github.com/keichan34/wp-nginx-hhvm-mariadb |
Our guide is for Mac for VVV. Linux users will obviously have no problem. We have no support for Micro & Soft Win dozzz.
WordPress Local Development with Vagrant : Steps
VirtualBox is known, right? Install if not installed. Then go here :
1 | https://www.vagrantup.com/downloads |
and install it. Has iTerm2 plus Homebrew plus zsh ? If not, configure it for cosmetic reasons
. Open iTerm2 (you should be normally at $HOME
) and run this command :
1 2 3 | vagrant plugin install vagrant-hostsupdater vagrant plugin install vagrant-triggers # see https://github.com/Varying-Vagrant-Vagrants/VVV |
You need to have git
installed. Check by running which git
command. Now git clone
this repo and change directory :
1 2 3 4 5 | git clone git://github.com/Varying-Vagrant-Vagrants/VVV.git vagrant-local && ls # check the name cd vagrant-local # start vagrant vagrant up |
These will be your default URLs for localhost :
1 2 3 4 5 6 7 8 9 10 11 12 | # dashboard http://vvv.dev/ # you'll use it unless you know the others http://local.wordpress.dev # trunk http://local.wordpress-trunk.dev # for core http://src.wordpress-develop.dev # dev via Grunt http://build.wordpress-develop.dev ## Wiki documentation (must read) https://github.com/Varying-Vagrant-Vagrants/VVV/wiki |
Actually the hosts file :
1 | nano /etc/hosts |
get changed, that is why you get the .dev
urls. If does not get changed plus you are getting 404 type of error on the above urls, then add this line :
1 | 192.168.50.4 vvv.dev local.wordpress.dev local.wordpress-trunk.dev src.wordpress-develop.dev build.wordpress-develop.dev |
That vagrant plugin install vagrant-hostsupdater
command actually did the automated work. Now if you want to use https://puphpet.com
, then the git clone
will not be git://github.com/Varying-Vagrant-Vagrants/VVV.git
, otherwise the steps are kind of same. PuPHPet is better but we gave an example with VVV
, which usually people uses.