/we-share

A web application for pulling images from Instagram for tourism purposes

Primary LanguageHTMLApache License 2.0Apache-2.0

Laravel 4 w/ Vagrant

A basic Ubuntu 12.04 Vagrant setup with Laravel4 and PHP 5.5. PHP 5.4 w/ Apache 2.2 is available on the php54 branch.

Requirements

Setup

  • 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/

Usage

Some basic information on interacting with the vagrant box

Port Forwards

  • 8888 - Apache
  • 8889 - MySQL
  • 5433 - PostgreSQL

Default MySQL/PostgreSQL Database

  • User: root
  • Password: (blank)
  • DB Name: database

PHPmyAdmin

Accessible at http://localhost:8888/phpmyadmin using MySQL access credentials above.

PHP XDebug

XDebug is included in the build but disabled by default because of the effect it can have on performance.

To enable XDebug:

  1. Set the variable $use_xdebug = "1" at the beginning of puppet/manifests/phpbase.pp
  2. Then you will need to provision the box either with vagrant up or by running the command vagrant provision if the box is already up
  3. Now you can connect to XDebug on port 9001

XDebug Tools

Note: All XDebug settings can be configured in the php.ini template at puppet/modules/php/templates/php.ini.erb

Vagrant

Vagrant is very well documented but here are a few common commands:

  • vagrant up starts the virtual machine and provisions it
  • vagrant suspend will essentially put the machine to 'sleep' with vagrant resume waking it back up
  • vagrant halt attempts a graceful shutdown of the machine and will need to be brought back with vagrant up
  • vagrant ssh gives you shell access to the virtual machine

AWS deployment

Easy deployment to the cloud (AWS), via vagrant up --provider=aws. The Vagrantfile contains configuration options for setting your keypair name, the the location of your key and the name of your server.


Virtual Machine Specifications
  • OS - Ubuntu 12.04
  • Apache - 2.4.6
  • PHP - 5.5.4
  • MySQL - 5.5.32
  • PostgreSQL - 9.1
  • Beanstalkd - 1.4.6
  • Redis - 2.2.12
  • Memcached - 1.4.13