使用 Laravel Homestead: “未指定输入文件”

我是使用 Laravel 和 Homestead 的新手,希望得到任何帮助,或者在正确的方向上找到一个点。我已经成功地能够到达“你已经到达”屏幕时,我运行“ php 工匠服务”,但是当我试图做同样的事情通过流浪汉,我得到“没有输入文件指定”。我的 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

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

/Users/me/code/Homestead
/Users/me/code/exampleproject //this is the directory created with composer

在我的流浪者盒子里,不知为什么,我有两个目录,分别是“代码”和“代码”:

/home/vagrant/code/exampleproject
/home/vagrant/Code

我已经检查,我可以看到对我的计算机示例项目文件的更改反映在流浪箱文件。

我真的不知道该如何解决这个问题! ! 我真的很感激任何可能的帮助:)

115797 次浏览

注意,linux 是区分大小写的,这可能就是为什么你会看到一个“ Code”和一个“ Code”目录。

我会做的是重新做的流浪设置,如果你想保持简单,并匹配什么家园框作为一个默认使你的目录在你的主机“代码”大写。

您也可以在“文件夹”部分只是映射到您的“代码”文件夹在您的机器,以防您决定添加更多的网站到您的宅地设置后。这样,在/home/squrant/Code/下面,你就可以看到你所有的网站项目,并且你可以看到更多的网站指向它们的“公共”目录。

而不是重新安装 try

vagrant up --provision

或者

homestead up --provision

给出我的回应,以防有人在这个问题上纠结。

  1. 您可能需要验证“/etc/ngnx/site-able/domain”中的 server.root 配置是否与“ Homestead.yaml”中的 sites.to 配置相匹配。

  2. 如果它不匹配,然后改变它,并重新启动“ sudo service nginx start”

  3. 然而,事情仍然不工作,然后允许“ YOURSITE/app/Storage”文件夹的写权限为“ chmod-R 777 app/Storage”

我也有同样的问题,我假设 Laravel 是安装“开箱即用”,但似乎并非如此。我走到机器前,运行下面的命令:

cd Code
sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist

一切照旧。

这很容易修复,因为您已经将文件夹名称更改为: 例子计划

所以 SSH 对你的流浪汉说:

ssh vagrant@127.0.0.1 -p 2222

然后更改 nginx 配置:

Sudo vi/etc/nginx/sites- 启用/homestead.app

编辑 正确的 URI到第3行的根目录到这个 使用新的文件夹名:

root "/Users/MYUSERNAME/Code/exampleproject/public";

重新启动 Nginx

sudo service nginx reload

重新加载网页浏览器,现在应该可以工作了

我也有同样的问题,通过使用 Larachat 找到了解决办法。

下面介绍如何修复它,您需要正确设置 homestead.yaml 文件。如果你想知道它是如何做的,请遵循杰弗里路家园2.0 https://laracasts.com/lessons/say-hello-to-laravel-homestead-two教程。

现在修复 Input not specified的问题,你需要 ssh 到宅地框和类型

这将为 nginx 生成一个服务脚本。每次切换项目时都需要这样做。

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

这个问题发生在我编辑了 Homestead.yaml 之后

homestead destroy
homestead up

重新开始你的家园。为我工作。

homestead destroy
homestead up

这可能是因为 nginx Web 服务器是指向正确路径的 没有

有两个键值得注意: folders下的 map键和 sites下的 to键。folders键将本地机器上的文件夹映射到流浪 VM。sites键用于在 nginx 上创建一个虚拟主机,其值为 to

您需要确保的是 sites下的 to指向到 public的正确路径。

问题是我用 composer create laravel/laravel创建了我的 Laravel 项目。这在我的工作目录中创建了一个名为 laravel的文件夹。然后,在不改变目录的情况下,我使用 composer require laravel/homestead --dev安装了宅地助手。

在运行 php vendor/bin/homestead makevagrant up之后,我的目录结构如下:

$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile

我的家园。 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路径将被挂载到流浪 VM 上。这是错误的目录,因为它应该指向应用程序目录所在的 laravel 项目根目录。这里发生的事情是,当我是 在项目根目录中的时候,我应该需要家园帮手。

现在的问题是我该怎么做?您有两个选择: 摆脱当前的宅基 VM 并重新开始,但是这一次从项目根 或者中挽救您已经拥有的。

如果你想挽救你所拥有的,你必须移动几个文件和一个文件夹到你的 Laravel 项目根目录。

这些是你需要移动的艺术品:

.vagrant
Homestead.yml
Vagrantfile

composer.json将不再需要,因为您稍后将需要它。

将这些文件移动到 laravel 项目的根目录,并将当前工作目录更改为该根目录(cd laravel)。此时,只需更新 folders下的 map,并确保它指向项目根目录。还要确保 sites下面的 to键是 folders下面的 to键,后面还有 /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,这样就需要在当前项目的 poser.json 文件中安装 Homestead 助手。

运行 vagrant reload --provision,应该就可以了。

在 Laravel 5中,我必须通过 ssh 进入我的宅地服务器并运行以下命令:

sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache

我的解决办法是:

这是一个文件路径问题,所以下面是我的文件夹和网站路径。还有,我不得不用“流浪汉毁灭”因为补给不起作用。

enter image description here

这通常发生在编辑 Homestead Yaml文件时。

如果你像我一样尝试 homestead up --provision,但没有工作! 然后试试这个(对我有效) :

  • homestead destroy
  • homestead up

我的问题出在域的配置文件中:

我的项目的公共文件夹是在/home/vasrant/Code/demo/public 中创建的

域的配置文件(对我来说是/etc/nginx/site-able/demo.app)已经配置为: “/home/vasrant/Code/Laravel/public”而不是“/home/vasrant/Code/demo/public”。

现在一切正常。

我在新家园也遇到过类似的问题,只是提供盒子对我来说很有效。所以你应该试试这个:

vagrant provision

我在跟踪 Laravel 文档(https://laravel.com/docs/5.2/homestead)时遇到了同样的问题

我的问题很简单,我错过了文档中的这一部分:

Yaml 文件将被放置在隐藏的 ~/. homestead 中 目录:

因此,我更新了错误的 Homestead.yaml 文件,因为在运行 bash init.sh 命令时文件被移动了。

经过一番寻找,我才意识到这一点,所以希望这能帮到某些人。

vagrant provision相关的代码对我不起作用,在浪费了一些时间之后,我重新启动了整个系统。现在它工作了... ...-,-”

我根据 这个 Laracast 教程编辑了 homestead.yamlhosts,并使用 vagrant suspendvagrant halt等/vagrant up重新启动了宅基地; 我也尝试了 vagrant provision,但是 no file specified在我完成以上所有操作之后在 重启我的电脑之后才消失(我在 Windows 7 PC 上)。这当然是一个耗时和棘手的错误。

这是我的工作 homestead.yaml看起来像 两个幼鱼项目:

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox


authorize: ~/.ssh/id_rsa.pub


keys:
- ~/.ssh/id_rsa


folders:
- map: D:\Projects
to: /home/vagrant/Projects


sites:
- map: projectone.app
to: /home/vagrant/Projects/ProjectOne/public
- map: projecttwo.app
to: /home/vagrant/Projects/ProjectTwo/public


databases:
- laraveldb

这是我的 hosts档案:

...
127.0.0.1       localhost
192.168.10.10   projectone.app
192.168.10.10   projecttwo.app

注意,在 D:\Projects\ProjectOneD:\Projects\ProjectTwo中有两个独立的幼虫装置

然后通过在浏览器中键入 projectone.app:8000访问第一个项目,并为第二个项目键入 projecttwo.app:8000

另外,我在 Windows 上测试了 Laravel 5.2

我也有同样的问题

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

~/. Homestead/Homestead. yaml 正在更新 ~/Homestead/src/stubs/Homestead.yaml

因此,FIX 将更新位于这里的 Homestead.yaml

~/. Homestead/Homestead. yaml

之前

地点: - 地图: homestead.app 寄往:/home/vasrant/Laravel/public

之后

地点: - 地图: homestead.app 收件人:/home/vasrant/Code/mysitename/public

然后我就跑了
vagrant up --provision

希望这对其他人有用。

这是因为您需要正确配置 nginx 服务器以便为应用程序提供服务。您可以按照本指南进行此操作,从主题 配置 Nginx 和 Web 根开始。

在您的/etc/nginx/sites- 可用和/etc/nginx/sites- 启用之间的正确 配置您的符号链接之后,您需要确保将根变量设置为应用程序的文件夹路径。将您的 nginx 根目录设置为

root /usr/share/nginx/html;

/home/vagrant/Projects/ProjectOne/public

另外,您必须将 index.php 放在 html 文件之前,这样 php 才能在 html 之前提供

index index.html index.htm;

这个

index index.php index.html index.htm;

完成配置后,重新启动 nginx 服务器

sudo service nginx restart

你的申请现在应该送达了。

对我来说,以下方法奏效了:

vagrant reload --provision

早期版本的 Homestead 映射 ~/Code中的文件夹,例如默认的 ~/Code/laravel/public。注意 ~/Code中的大小写。这些是区分大小写的。新版本使用小写字母 ~/code。根据实际目录更新 Homestead.yaml中的这些目录。

;

根据您的实际目录名将 ~/Code更新为 ~/code,反之亦然。

在我重新命名了一些目录之后,我不得不销毁并重新运行流浪者。这里的所有解决方案都不管用。

这对我很有效:

vagrant destroy
vagrant up

我只是在同样的情况下挣扎。下面解决了这个问题:

如果你有这样的目录结构:

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

只需在主机上的 exampleproject 中创建“ public”文件夹。

我使用的是 Windows10,并具有以下 Homestead 配置

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox


authorize: ~/.ssh/id_rsa.pub


keys:
- ~/.ssh/id_rsa
folders:
- map: ~/code               #folder in local computer where codes are stored eg, c:\xampp\htdocs\project1
to: /home/vagrant/code    #folder in the VM where the above code will be mapped


sites:
- map: homestead.local          #fake name of the site (redirect this domain to the above IP ie 192.168.10.10 in hosts file ie, c:\windows\system32\etc\hosts)
to: /home/vagrant/code/public #complete path to index.php file in the local computer to be utilized by homestead.local
databases:
- homestead

我查看了 Homeestead.local 域名,正在获取结果。

但是当我在浏览器中输入 http://homestead.local时,我得到了 “未指定输入文件”错误

我检查了代码/公用文件夹,没有索引文件。我确信系统正在寻找缺失的默认文件。

一旦我创建了一个索引文件,它就开始正常工作了。

更新:

下一次,在 Homestead Yaml文件发生更改之后,我运行 vagrant reload --provision命令,它就工作了。

看来只运行 vagrant reload不会提供流浪箱

我也一样。

vagrant provisionhomestead up --provision都不适合我,但下面的代码适合我——可能是因为当我修改 yml 文件时宅基地已经在运行了

vagrant reload --provision

我有这样的问题。我查看了 Homestead.yaml 文件,所有文件和所有设置都是正确的。经过以下步骤,我的问题解决了。

1-如果你在 流浪者@宅地: ~ $ 命令行,键入 exit命令。

现在你必须在宅地文件夹内。运行这个命令

vagrant reload --provision

3-运行 vagrant ssh

现在,如果你在浏览器中键入相关地址,它应该会显示 Laravel 页面。

试着重新启动你的电脑

本地运行一个正常运行的 Homestead,它在某个时候停止运行,并且会得到“ No input file spected”错误。我追踪不到。

计算机重新启动后,错误消失。

如果重命名包含 Homestead 项目的文件夹,就会得到这个错误。访问您的 Homestead.yaml文件并更新任何引用以指向重命名的文件夹,然后再次执行 vagrant up(等)

如果您使用的是新版本的 larval 7 > = ,那么您可以从主目录 vagrant provision中使用

这个错误只发生在我执行一个新的安装没有正确创建目录,例如“正确”: C:\Users\userxyz\Code\public

尝试删除“ public”目录,将显示错误“ no input file  未指定”

Homestead Yaml

folders:
- map: ~/Code
to: /home/vagrant/Code
#type: "nfs"


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