Ciò è probabile perché il server Web nginx non punta al percorso corretto.
Ci sono due chiavi che dovresti guardare: la mapchiave sotto folderse la tochiave sotto sites. La folderschiave mappa le cartelle sulla tua macchina locale sulla VM vagabonda. La siteschiave viene utilizzata per creare un host virtuale su nginx con il valore in to.
Quello che vuoi assicurarti è che tosotto sitespunti sulla strada giusta per public.
Il problema era che ho creato il mio progetto Laravel con composer create laravel/laravel. Questo ha creato una cartella nella mia directory corrente denominata laravel. Quindi senza cambiare directory ho installato l'helper Homestead con composer require laravel/homestead --dev.
Dopo l'esecuzione php vendor/bin/homestead makee vagrant upla struttura della mia directory era simile a questa:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Il mio Homestead.yml aveva questo aspetto:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Se guardi da vicino, il /Users/USER/Sites/sandbox/php/laravel51percorso verrà montato sulla VM vagabonda. Questa è la directory sbagliata perché dovrebbe puntare alla radice del progetto laravel dove si trova la directory dell'app. Quello che è successo qui era che avrei dovuto richiedere l'aiutante della fattoria mentre ero nella radice del progetto .
Quindi ora la domanda è cosa devo fare? Hai due opzioni: sbarazzarti della tua attuale VM della fattoria e ricominciare da capo, ma questa volta dalla radice del progetto OPPURE salvare ciò che hai già.
Se vuoi salvare quello che hai, dovrai spostare diversi file e una cartella nella radice del tuo progetto laravel.
Questi sono gli artefatti che dovrai spostare:
.vagrant
Homestead.yml
Vagrantfile
Il composer.jsonnon sarà necessario in quanto sarete richiedendo un secondo momento.
Sposta quei file nella radice del tuo progetto laravel e cambia la tua directory di lavoro corrente in lì ( cd laravel). A quel punto basta aggiornare l' mapunder folderse assicurarsi che stia puntando alla radice del progetto. Assicurati anche che la tochiave sotto sitessia la tochiave sotto folderscon in /publicallegato.
Per esempio:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Ora esegui in composer require laravel/homestead --devmodo che l'helper homestead sia richiesto nel file composer.json del tuo progetto corrente e installato.
Corri vagrant reload --provisione dovresti essere pronto.
vagrant up --provisionnon ha funzionato per me, mahomestead up --provisionha funzionato