Detailed Instructions
- Visit PuPHPet.com to build your Vagrantfile.
Configure your Shared Folder Pairs. This is under "Deploy Target > Locally".
Let's assume this directory structure on your OS/X machine:
/Users/unrivaled/Documents/laravel-project (project files go here)
/Users/unrivaled/Documents/laravel-project/public (the web root files)
Folder Source represents the location on your main computer (the "host" operating system), where your source files reside; for example: /Users/unrivaled/Documents/laravel-project
The Folder Source must be on your OS/X machine, exactly where your Laravel files are.
Folder Target represents the location on your virtual computer (the "guest" operating system), where you want Vagrant to make them visible to the web server; for example: /var/www/lab
The Folder Target can be anywhere that Apache or Nginx, in the virtual machine, can reach it.
Folder Source (local machine) == Folder Target (virtual machine)
/Users/unrivaled/Documents/laravel-project (local machine) == /var/www/lab (virtual machine)
Configure your web server. Your Server Name can be anything you want; in this example, let's use "lab.dev". Configure your Server Alias; in this case, use "www.lab.dev." Your Server Name (or an alias) must match your entry in your /etc/hosts
file; see below. Configure your Document Root. This is the folder on your virtual machine where your website files will go and the files that will be served by Nginx or Apache. This value must be at, or below, the Folder Target defined from Step 4; for example, /var/www/lab/public
.
Notice in the example how we are giving the web server access to /var/www/lab/public? This actually refers to /Users/unrivaled/Documents/laravel-project/public on your local OS/X system, thanks to the "Shared Folder Pairs" configured in Step 2., above.
Generally, configure everything else in PuPHPet as you see fit.
- Run
vagrant up
to get your virtual machine up and running. If it doesn't work at this stage, you need to resolve any problems before going on.
- Determine your virtual machine's IP address. Use
vagrant ssh
to log into the virtual machine, and then ifconfig
should work for this. Do not rely on the IP address defined in PuPHPet. Your virtual machine provider will likely override this value, and you need to know the actual, in-fact IP address.
- On your main host computer (not the virtual machine), edit your
/etc/hosts
file: sudo nano /etc/hosts
, adding the server's IP address, followed by the Server Name (or a Server Alias) defined in Step 5, above.
How It Works
Once you have a working web server using the settings in this example, you can view your website by going to lab.dev. Your browser in OS/X will resolve lab.dev to the proper IP address of your server by way of the /etc/hosts file. It then requests your web page from that IP address, where the server matches the requested resource, "lab.dev," to the appropriate Server Name or Server Alias that matches. The files in the Document Root for that server name (/var/www/lab/public
) will be processed by the web server.
In summary, your server's IP address in the local /etc/hosts
file matches your server's IP address in the virtual machine; your server's name in the local /etc/hosts
file matches your Server Name (or Server Alias) in the web server on the virtual machine; the path name to your project source files on your local computer (Folder Source) maps to the Target Directory on the virtual machine; and finally, a subdirectory of that target directory (public
) corresponds to the Document Root for the web server.
vagrant ssh
? – lozadaOmr