I have been using XAMPP for quite a time, and after discovering Laravel and finding out, that I quite like it, I also wanted to use Homestead. The problem I'm having is, that I can't seem to be able to run multiple sites.
I have tried various things, but the main problem currently is, that one project works, while all the others are getting a connection timeout, when trying to access their webpage.
These are the steps I've taken to use Homestead
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git Homestead
Homestead
directory with the bash init.sh
scriptlaravel new projectA
composer require laravel/homestead
php vendor/bin/homestead make
laravel new projectB
composer require laravel/homestead
php vendor/bin/homestead make
sudo nano /etc/hosts
=> xxx.xx.xx.10 projecta.app
& xxx.xx.xx.11 projectb.app
vagrant up
Now, I'm having the problem, that only one of the projects is reachable. It's always the one from where I called vagrant up
. So if I call vagrant up
from Project A I can access http://projecta.app
and http://projectb.app
times out. The same the other way around, sadly.
This is my vagrant global-status
id name provider state directory
------------------------------------------------------------------------
fc6fadb default virtualbox running /Users/mknb/work/projectA
I thought I would just do another vagrant up
from the projectB
directory but that doesn't work of course.
I don't want to use the global Homestead, because Laravel said, that it is possible to have a per project
installation, so how do I achieve it? Do you need more information?
I didn't modify the Homestead.yaml
except of the IP and the domainname homestead.app
=> projecta.app
It seems like a global installation is fairly easy with Homestead, since I would just have to add more sites to the Homestead.yaml, but as I said I'd like to have a per project installation. Can anybody help?
Starting vagrant from the Homestead directory doesn't work of course.
By using Homestead in your way, you create a virtual machine for each projects. Therefore, the VirtualBox cannot forward the HTTP request from your host machine for all of virtual machine. You can only run one machine (so, one project) each time.
To run multiple projects with Homestead, you can do as follow:
git clone https://github.com/laravel/homestead.git Homestead
Homestead
folder, run bash init.sh
Edit the folders
property of ~/.homestead/Homestead.yaml
to share your code of both projects with VM:
folders:
- map: ~/pj1
to: /path/to/project1
- map: ~/pj2
to: /path/to/project2
Edit the sites
property of ~/.homestead/Homestead.yaml
to make Nginx enable the domain of both site:
sites:
- map: project1.local
to: /home/vagrant/pj1/public
- map: project2.local
to: /home/vagrant/pj2/public
Edit your hosts
file to forward these domain fo localhost
127.0.0.1 project1.local
127.0.0.1 project2.local
vagrant up
at the folder that you cloned the Homestead code inside it (which contains the init.sh
file).Now, you can run as many project as you want with just one Homestead virtual machine.