使用Laravel Homestead:'没有指定输入文件'

bry*_*ant 94 vagrant laravel laravel-4

我是使用Laravel和Homestead的新手,并且非常感谢任何帮助或正确的方向.当我运行"php artisan serve"时,我已经成功地进入了"你已经到达"屏幕但是当我尝试通过Vagrant做同样的事情时,我得到"没有指定输入文件".我的Homestead.yaml文件如下所示:

authorize: /Users/me/.ssh/id_rsa.pub

keys:
    - /Users/me/.ssh/id_rsa

folders:
    - map: /Users/me/code/exampleproject
      to: /home/vagrant/code/exampleproject

sites:
    - map: exampleproject.app
      to: /home/vagrant/code/exampleproject/public

variables:
    - key: APP_ENV
      value: local
Run Code Online (Sandbox Code Playgroud)

在我的电脑上,我有以下目录:

/Users/me/code/Homestead
/Users/me/code/exampleproject //this is the directory created with composer
Run Code Online (Sandbox Code Playgroud)

在我的Vagrant Box上我出于某种原因有两个名为"code"和"Code"的目录:

/home/vagrant/code/exampleproject 
/home/vagrant/Code
Run Code Online (Sandbox Code Playgroud)

我已经检查过,我可以看到对我的计算机exampleproject文件所做的更改反映在vagrant box文件中.

不太确定如何解决这个问题!我真的很感激任何可能的帮助:)

小智 143

而不是重新安装尝试

vagrant up --provision
Run Code Online (Sandbox Code Playgroud)

要么

homestead up --provision
Run Code Online (Sandbox Code Playgroud)

  • 或者如果它已经上升,只是"流浪汉提供" (26认同)
  • 只需执行`vagrant reload --proivision`。 (4认同)

Rud*_*sop 44

我有同样的问题,通过使用larachat找到了解决方案.

以下是如何修复它你需要正确的homestead.yaml文件设置.如果你想知道它是如何完成的,请遵循关于homestead 2.0的Jeffery Way教程https://laracasts.com/lessons/say-hello-to-laravel-homestead-two.

现在要解决Input not specified问题,你需要ssh到宅基地盒和类型

serve domain.app /home/vagrant/Code/path/to/public/directory这将为nginx生成一个服务脚本.每次切换项目时都需要这样做.

他还讨论了我在本系列中解释的内容https://laracasts.com/series/laravel-5-fundamentals/

  • 这正是我所寻找的.谢谢鲁迪! (2认同)

Tru*_*ruc 28

这很容易修复,因为您已将文件夹名称更改为:exampleproject

所以SSH到你的流浪汉:

ssh vagrant@127.0.0.1 -p 2222
Run Code Online (Sandbox Code Playgroud)

然后更改你的nginx配置:

sudo vi /etc/nginx/sites-enabled/homestead.app

使用新文件夹名称编辑 3行根目录的正确URI:

root "/Users/MYUSERNAME/Code/exampleproject/public";
Run Code Online (Sandbox Code Playgroud)

重启Nginx

sudo service nginx reload
Run Code Online (Sandbox Code Playgroud)

重新加载Web浏览器,现在应该可以正常工作


Dav*_*ers 19

对我来说,以下工作:

vagrant reload --provision


Sen*_*hil 8

给出我的回复以防万一有人在努力解决这个问题.

  1. 您可能需要验证"/ etc/ngnx/sites-available/domain"中的server.root配置是否与您在"Homestead.yaml"中的sites.to config匹配.

  2. 如果它不匹配则更改它并使用"sudo service nginx restart"重新启动web服务器

  3. 然而事情仍然没有工作,然后允许"YOURSITE/app/storage"文件夹的写权限为"chmod -R 777 app/storage"


Ard*_*rda 7

我也有同样的问题,我曾认为Laravel是"开箱即用"安装的,但似乎不是.我通过SSH连接到机器并运行这些命令:

cd Code
sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist
Run Code Online (Sandbox Code Playgroud)

一切都像往常一样运行.


小智 5

编辑Homestead.yaml后,我遇到此问题.我解决了这个问题

homestead destroy
homestead up
Run Code Online (Sandbox Code Playgroud)


lig*_*tup 5

我有同样的问题

但是忘了规范说配置文件将位于

~/.homestead/Homestead.yaml 并且正在更新 ~/Homestead/src/stubs/Homestead.yaml

所以 FIX 是更新位于这里的 Homestead.yaml

~/.homestead/Homestead.yaml

sites: - map: homestead.app to: /home/vagrant/Laravel/public

sites: - map: homestead.app to: /home/vagrant/Code/mysitename/public

然后我跑了
vagrant up --provision

希望这对其他人有用。


小智 5

对我来说同样的问题。

两者vagrant provision都不homestead up --provision适合我,但下面的内容确实如此 - 可能是因为当我修改 yml 文件时 homestead 已经在运行

vagrant reload --provision