A basic Ubuntu 12.04 Vagrant setup with Laravel4 and PHP 5.4.
- VirtualBox - Free virtualization software Downloads
- Vagrant - Tool for working with virtualbox images Vagrant Home, click on 'download now link'
- Git - Source Control Management Downloads
- Clone this repository
git clone http://github.com/bryannielsen/Laravel4-Vagrant.git
- run
vagrant up
inside the newly created directory - (the first time you run vagrant it will need to fetch the virtual box image which is ~300mb so depending on your download speed this could take some time)
- Vagrant will then use puppet to provision the base virtual box with our LAMP stack (this could take a few minutes) also note that composer will need to fetch all of the packages defined in the app's composer.json which will add some more time to the first provisioning run
- You can verify that everything was successful by opening http://localhost:8888 in a browser
Note: You may have to change permissions on the www/app/storage folder to 777 under the host OS
For example: chmod -R 777 www/app/storage/
Some basic information on interacting with the vagrant box
- 8888 - Apache
- 8889 - MySQL
- 5433 - PostgreSQL
- User: root
- Password: root
- DB Name: database
XDebug is included in the build but disabled by default because of the effect it can have on performance.
To enable XDebug:
- Set the variable
$use_xdebug = "1"
at the beginning ofpuppet/manifests/phpbase.pp
- Then you will need to provision the box either with
vagrant up
or by running the commandvagrant provision
if the box is already up - Now you can connect to XDebug on port 9001
XDebug Tools
- SublimeXDebug - Free, SublimeText plugin
- MacGDBP - Free, Mac OSX
- Codebug - Paid, Mac OSX
Note: All XDebug settings can be configured in the php.ini template at puppet/modules/php/templates/php.ini.erb
Vagrant is very well documented but here are a few common commands:
vagrant up
starts the virtual machine and provisions itvagrant suspend
will essentially put the machine to 'sleep' withvagrant resume
waking it back upvagrant halt
attempts a graceful shutdown of the machine and will need to be brought back withvagrant up
vagrant ssh
gives you shell access to the virtual machine
- OS - Ubuntu 12.04
- Apache - 2.2.22
- PHP - 5.4.15
- MySQL - 5.5.24
- PostgreSQL - 9.1
- Beanstalkd - 1.4.6
- Redis - 2.2.12
- Memcached - 1.4.13