I got a php project which is already done and for starters I have to put it up on a server (planning to use Heroku). I am new to PHP virtual boxes, Laravel, etc. The person who made the project recommended to use Laravel so I started to get things going that way. I am running on Windows 10 and using cmder as my terminal.
- I downloaded VirtualBox & Vagrant.
Then using commander I added the Laravel/Homestead box by doing:
vagrant box add laravel/homestead
in the folder c:\Users\Jacky\vagrant\ubuntu (At least I think that is where I added it)
- Afterwards I believe I did
vagrant init
or
vagrant init laravel/homestead
- whatever I did afterwards I was able to run vagrant ssh and get into the system. There I was able to check and I had php and composer installed.
- I then followed laravels instructions and created a homestead folder at c:\Jack\Homestead
- ran git checkout for v7.19.2
- ran init.bat
- and configured the Homestead.yaml file
I made the following folder map
- map: C:\Jack\myapp\public
to: /home/vagrant/myapp
and the following site map
- map: myapp.test
to: /home/vagrant/myapp/public
I am a bit confused with the directory structure of this whole thing and not sure if I was supposed to put the myapp directory inside c:\Jack\Homestead\myapp or if just doing it like i did in c:\Jack\myapp is fine.
Anyways that still worked and I could see it in my web browser. So far all was good.
Then the project instructions told me to do the following
- run composer install
- There was an env.example file I had to change to .env and change some setting
- run php artisan key:generate
- run php artisan migrate --seed
- run php artisan passport:install
- run php artisan storage:link
At this point I got an error that the Symlink could not be created, so I googled and found in Stack Overflow to restart as admin. I ran cmder as admin and have been having a heart attack for the last 30 minutes since it told me I had to vagrant up and when I did so it couldnt find my box and even doing vagrant box list
I would get no results and it wanted to redownload which takes over 3 hours. I just restarted without admin and I do find that my Laravel/Homestead box is listed so I assume it was installed for my user and not admin so I guess I cant run cmder as admin.
So now I am trying to connect again, I am not sure in which folder I should be running the vagrant commands but I only seem to have a VagrantFile in my C:\Jack\Homestead folder so if I run a vagrant command anywhere else it gives me an error that a vagrant environment is required, etc.
So I tried the following inside my homestead folder:
vagrant ssh
- I get:VM must be running to open SSH connection. Run `vagrant up to start the virtual machine.
(In my VirtualBox Manager i see my homestead-7 VM running though)
vagrant up
- I get:Bringing machine 'homestead-7' up with 'virtualbox' provider... ==> homestead-7: Importing base box 'laravel/homestead'... ==> homestead-7: Matching MAC address for NAT networking... ==> homestead-7: Checking if box 'laravel/homestead' is up to date... A VirtualBox machine with the name 'homestead-7' already exists. Please use another name or delete the machine with the existing name, and try again.
vagrant ssh 'homestead-7'
I also getVM must be running to open SSH connection. Run
vagrant up
to start the virtual machine.
And the problem is once I do connect I assume I will still have the same problem running:
php artisan storage:link
So my questions are as follows:
- Where should I have my projects myapp folder, should it be where it is at
C:\Jack\myapp
or am I supposed to put it inC:\Jack\Homestead\myapp
- Is the VagrantFile supposed to be only in my Homestead folder and is that where I should be running all my Vagrant commands from? Like
vagrant ssh
andvagrant up
- How do I connect again now that I am getting those errors running
vagrant ssh
andvagrant up
- Once I connect I assume I will get the same error running
php artisan storage:link
since to run as administrator seems to not work what do I do? - I Assume that I should run
git init
andheroku create
inside the myapp folder is this correct?