Это, вероятно , потому , что Nginx веб - сервер не указывает на правильный путь.
Вам следует посмотреть на два ключа: map
нижний folders
и to
нижний sites
. folders
Ключ отображает папки на локальном компьютере в бродячей VM. sites
Ключ используется для создания виртуального хоста на Nginx со значением в to
.
Вы хотите убедиться, что to
под sites
указывает правильный путь к public
.
Проблема заключалась в том, что я создал свой проект laravel с помощью composer create laravel/laravel
. Это создало папку в моем текущем каталоге с именем laravel
. Затем, не меняя каталоги, я установил помощник по усадьбе composer require laravel/homestead --dev
.
После запуска php vendor/bin/homestead make
и vagrant up
моя структура каталогов выглядела примерно так:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Мой Homestead.yml выглядел так:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Если вы присмотритесь, /Users/USER/Sites/sandbox/php/laravel51
путь будет установлен на бродячую виртуальную машину. Это неправильный каталог, потому что он должен указывать на корень проекта laravel, где находится каталог вашего приложения. Здесь произошло то, что я должен был потребовать помощника по дому, пока я был в корне проекта .
Итак, теперь вопрос в том, что мне делать? У вас есть два варианта: избавиться от текущей домашней виртуальной машины и начать заново, но на этот раз из корня проекта ИЛИ спасти то, что у вас уже есть.
Если вы хотите спасти то, что у вас есть, вам придется переместить несколько файлов и папку в корень вашего проекта laravel.
Вот артефакты, которые вам нужно переместить:
.vagrant
Homestead.yml
Vagrantfile
Он composer.json
не понадобится, так как он понадобится вам позже.
Переместите эти файлы в корень вашего проекта laravel и измените туда свой текущий рабочий каталог ( cd laravel
). На этом этапе просто обновите map
нижнюю часть folders
и убедитесь, что она указывает на корень проекта. Также убедитесь, что to
нижний ключ sites
- это to
нижний ключ folders
с /public
добавленным к нему.
Например:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Теперь запустите, composer require laravel/homestead --dev
чтобы помощник homestead был необходим в файле composer.json вашего текущего проекта и был установлен.
Беги, vagrant reload --provision
и все должно быть готово.
vagrant up --provision
не работает для меня, ноhomestead up --provision
ничего