Giter VIP home page Giter VIP logo

phalcon-vagrant's Introduction

#Vagrant + Phalcon

This is a simple vagrant setup to get loaded with core development tools to build a powerful PHP application primary focused on Phalcon Framework.

Overview

We use the default Ubuntu Precise 32-bit ISO from Vagrant for compatibility. If you choose to use a 64-bit ISO you may need to update your BIOS to enable virtualization with AMD-V or Intel VT.

When you provision Vagrant for the first time it's always the longest procedure ($ vagrant up). Vagrant will download the entire Linux OS if you've never used Vagrant or the Precise32 Box. Afterwards, booting time is fast.

By default this setup uses 500MB RAM. You can change this in Vagrantfile and simply run $ vagrant reload. You can also use more than one core if you like, simply uncomment these two lines in the same file:

v.customize ["modifyvm", :id, "--cpus", "2"]
v.customize ["modifyvm", :id, "--ioapic", "on"]

Requirements

  • Operating System: Windows, Linux, or OSX.
  • Virtualbox version 4.3.*
  • Vagrant version 1.4.*

Automatically Installs

Installation Instructions

First clone this repository locally.

$ git clone https://github.com/phalcon/vagrant.git

For newer versions of Vagrant and VirtualBox you may need guest additions, so install the plugin:

# For Linux/OSX
$ vagrant plugin install vagrant-vbguest

# For Windows
$ vagrant plugin install vagrant-windows

Now you are ready to provision with:

$ vagrant up

The init.sh script will provision the system with everything needed. Take a look inside if you want to change any default settings. Once provisioned, to access the box, simply type:

$ vagrant ssh

# To exit type:
$ exit

If you want to change your bound address (192.168.5.0 is the default), edit the Vagrantfile and run:

$ vagrant reload

If you want to point your Guest Machine (Vagrant OS) to a friendly URL, you could modify your etc/hosts file and add the following:

192.168.5.0  your-server-name

Default Credentials

These are credentials setup by default:

  • Host Address: 192.168.5.0
  • SSH: vagrant / vagrant
  • MySQL: root / (none)
  • Redis: No Password

Getting Start with PhalconDev Tools

To create your Phalcon project, head over to the default working directory:

$ cd /vagrant/www

Then run the following command to see your options:

$ phalcon

To create a project type the following, I'll create one called superstar for this example:

$ phalcon project superstar

This will create a folder called superstar with all your Phalcon files. At this point you have a folder at /vagrant/www/superstar and your VirtualHost will need to point to /vagrant/www/superstar/public

Create a VirtualHost for a new Phalcon Project:

You can have multiple Phalcon projects in subfolders. Make sure to keep your base VirtualHost enabled, in our case it's the vagrant.conf enabled by default. Then follow the instructions below and take note, you must include the ServerPath /project/ in your VirtualHost's.

Do not include a ServerPath for the base vagrant.conf VirtualHost.

$ touch superstar.conf

Then include the following data (Notice the two directory paths with superstar)

<VirtualHost *:80>
    DocumentRoot /vagrant/www/superstar/public
    ServerPath /superstar
</VirtualHost>

<Directory "/vagrant/www/superstar/public">
    Options Indexes Followsymlinks
    AllowOverride All
    Require all granted
</Directory>

Next move your VirtualHost configuration file to sites-available in Apache:

$ sudo mv superstar.conf /etc/apache2/sites-available

Lastly, you must enable your configuration file and restart apache

$ sudo a2ensite superstar
$ sudo service apache2 reload

If you wanted to disable a site:

$ sudo a2dissite superstar
$ sudo service apache2 reload

You should be able to access the following URL's:

http://192.168.5.0/
http://192.168.5.0/superstar

Work on your Projects Locally

Simply go to your Host computer and open any file explorer or IDE you use, and open any folder in /www/, this is mounted to the Virtual Machine and you'll have realtime changes.

Software Suggestions

If you are using Linux you can use the built in Terminal to do everything. The same goes with OSX.

For Windows, you can use Git SCM and Bash.

phalcon-vagrant's People

Contributors

codezues avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.