Ciò è probabile perché il server Web nginx non punta al percorso corretto.
Ci sono due chiavi che dovresti guardare: la map
chiave sotto folders
e la to
chiave sotto sites
. La folders
chiave mappa le cartelle sulla tua macchina locale sulla VM vagabonda. La sites
chiave viene utilizzata per creare un host virtuale su nginx con il valore in to
.
Quello che vuoi assicurarti è che to
sotto sites
punti 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 make
e vagrant up
la 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/laravel51
percorso 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.json
non 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' map
under folders
e assicurarsi che stia puntando alla radice del progetto. Assicurati anche che la to
chiave sotto sites
sia la to
chiave sotto folders
con in /public
allegato.
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 --dev
modo che l'helper homestead sia richiesto nel file composer.json del tuo progetto corrente e installato.
Corri vagrant reload --provision
e dovresti essere pronto.
vagrant up --provision
non ha funzionato per me, mahomestead up --provision
ha funzionato