Provavelmente, o servidor da web nginx não está apontando para o caminho correto.
Há duas chaves que você deve observar: a map
chave abaixo folders
e a to
chave abaixo sites
. A folders
chave mapeia pastas em sua máquina local para a VM vagrant. A sites
chave é usada para criar um host virtual no nginx com o valor em to
.
O que você quer ter a certeza é que to
sob sites
aponta para o caminho certo para public
.
O problema é que criei meu projeto laravel com composer create laravel/laravel
. Isso criou uma pasta em meu diretório atual chamada laravel
. Então, sem alterar os diretórios, instalei o ajudante de propriedade rural com composer require laravel/homestead --dev
.
Depois de executar php vendor/bin/homestead make
e vagrant up
minha estrutura de diretório ficou mais ou menos assim:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
My Homestead.yml era assim:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Se você olhar de perto, o /Users/USER/Sites/sandbox/php/laravel51
caminho será montado na VM vagrant. Este é o diretório errado porque deveria estar apontando para a raiz do projeto laravel onde está o diretório do seu aplicativo. O que aconteceu aqui foi que eu deveria exigir o ajudante da propriedade rural enquanto estava na raiz do projeto .
Portanto, agora a questão é o que eu faço? Você tem duas opções: livrar-se de sua VM de domicílio atual e começar de novo, mas desta vez a partir da raiz do projeto OU recuperar o que você já tem.
Se você quiser recuperar o que possui, terá que mover vários arquivos e uma pasta para a raiz do projeto laravel.
Estes são os artefatos que você precisará mover:
.vagrant
Homestead.yml
Vagrantfile
O composer.json
não será necessário porque você o solicitará mais tarde.
Mova esses arquivos para a raiz do projeto laravel e altere o diretório de trabalho atual para lá ( cd laravel
). Nesse ponto, basta atualizar o map
under folders
e certificar-se de que ele está apontando para a raiz do projeto. Certifique-se também de que a to
chave abaixo sites
é a to
chave folders
com /public
anexado a ela.
Por exemplo:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Agora execute composer require laravel/homestead --dev
para que o ajudante de propriedade familiar seja necessário no arquivo composer.json do seu projeto atual e instalado.
Corra vagrant reload --provision
e você deve estar pronto.
vagrant up --provision
não funcionou para mim, mashomestead up --provision
funcionou