Using Vagrant to get a new Laravel project running
In my last post I looked at creating custom Vagrant base box that has a working Nginx, PHP and MySQL setup all ready to go, making it easy to get started on new PHP projects with minimal configuration. Let's give that a try now by using our custom base box as the basis of a new Laravel project. We'll only need to write (or indeed clone) a few lines of Vagrant config code to get started!
Create a new Laravel project
Assuming you've already installed the
laravel binary file on your machine, make a new project:
Now inside your new
laravel_test project you should see a load of files - a brand new project you just created. Move into that and then let's clone some Vagrant config files into Laravel's
app/config directory. I've put these on GitHub so you can get them like this:
There's really not very much in what you just cloned – that's the beauty of using a custom base box. As usual there's a
bootstrap.sh file, contained in which are the shell commands to run when first setting up the Vagrant box. Because most of the required software is installed already, all that's needed is to:
- Install the php5-mcrypt extension, required by Laravel.
- Move a custom Nginx configuration file into place, which has a few tweaks specific to a Laravel setup: namely that the root directory of the website will be the
publicdirectory of the Laravel project.
- Restart Nginx etc. for good measure to ensure the above configuration changes have taken effect.
Vagrant expects to find a file called
Vagrantfile in the root directory. This was included in the files we just cloned, but we need to symlink it into place:
Now we can fire up the virtual machine and see what happens:
That's about it! Do note though that if you want to use a database, you'll need to enter the default database credentials into your Laravel project's