使用Laravel Homestead:&x27;未指定输入文件';
我是一个新的使用拉威尔,和家园,并将感谢任何帮助或在正确的方向上的一点。当我运行“php artisan serve”时,我成功地进入了“You have Arrival”屏幕,但当我试图通过Vagrant执行相同的操作时,我得到了“未指定输入文件”。我的homestad.yaml文件如下所示:使用Laravel Homestead:&x27;未指定输入文件';,laravel,laravel-4,vagrant,Laravel,Laravel 4,Vagrant,我是一个新的使用拉威尔,和家园,并将感谢任何帮助或在正确的方向上的一点。当我运行“php artisan serve”时,我成功地进入了“You have Arrival”屏幕,但当我试图通过Vagrant执行相同的操作时,我得到了“未指定输入文件”。我的homestad.yaml文件如下所示: authorize: /Users/me/.ssh/id_rsa.pub keys: - /Users/me/.ssh/id_rsa folders: - map: /Users/m
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
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
在我的计算机上,我有以下目录:
/Users/me/code/Homestead
/Users/me/code/exampleproject //this is the directory created with composer
出于某种原因,在我的流浪者信箱上有两个名为“code”和“code”的目录:
我已经检查过了,我可以看到对我的计算机所做的更改示例项目文件反映在vagrant box文件中
我真的不知道该怎么解决这个问题!!我非常感谢您的帮助:)请注意,linux是区分大小写的。这可能就是为什么您会看到一个“Code”和一个“Code”目录 我要做的是再次重做vagrant设置,如果你想保持它的简单性并匹配Homestead框的默认设置,请将主机中的目录“Code”改为大写
您也可以在“文件夹”部分映射到您机器中的“代码”文件夹,以防您以后决定将更多站点添加到您的宅地设置中。这样,在/home/vagrant/Code/下,您将看到所有的站点项目,您可以访问更多指向其“公共”目录的站点。而不是重新安装
vagrant up --provision
或
如果有人在这个问题上挣扎,我会给出我的回应
我也有同样的问题,我假设Laravel是“开箱即用”安装的,但似乎不是。我通过SSH连接到机器并运行以下命令:
cd Code
sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist
sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache
一切正常运行。这很容易修复,因为您已将文件夹名称更改为:exampleproject 对你的流浪汉说:
ssh vagrant@127.0.0.1 -p 2222
然后更改nginx配置:
sudo vi/etc/nginx/sites enabled/homestad.app
使用新文件夹名编辑第3行的根目录的正确URI:
root "/Users/MYUSERNAME/Code/exampleproject/public";
重新启动Nginx
sudo service nginx reload
重新加载web浏览器,它现在应该可以工作了我遇到了同样的问题,并通过使用larachat找到了解决方案 以下是修复方法,您需要正确设置homestead.yaml文件。如果你想知道它是如何完成的,请遵循Jeffery Way homestead 2.0教程 现在要解决输入未指定的问题,您需要ssh到homestead框中并键入
service domain.app/home/vagrant/code/path/to/public/directory
这将为nginx生成一个服务脚本。每次切换项目时都需要这样做
他还讨论了我在本系列中解释的内容这一问题是在编辑Homestead.yaml之后发生的。我通过协商解决了这个问题
homestead destroy
homestead up
重新开始你的家园。为我工作
homestead destroy
homestead up
这可能是因为nginx web服务器未指向正确的路径 您应该查看两个键:
folders
下的map
键和sites
下的to
键。文件夹
键将本地计算机上的文件夹映射到vagrant VM。sites
键用于在nginx上创建一个虚拟主机,其值为至
您要确保的是sites
下的to
指向public
的正确路径
问题是我用composer create laravel/laravel
创建了我的laravel项目。这在我当前的目录中创建了一个名为laravel
的文件夹。然后,在不更改目录的情况下,我用composer require laravel/homestead--dev
安装了homestead助手
运行php vendor/bin/homestead make
和vagrant up
后,我的目录结构如下所示:
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
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
我的家园yml看起来像这样:
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
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
如果仔细观察,会将/Users/USER/Sites/sandbox/php/laravel51
路径装载到vagrant VM上。这是错误的目录,因为它应该指向应用程序目录所在的laravel项目根目录。这里发生的事情是,当我在项目根中时,我应该需要宅地帮手
现在的问题是我该怎么做?您有两个选择:摆脱当前的homestead VM并重新开始,但这次是从项目根或挽救您已经拥有的
如果你想挽救你所拥有的,你必须将几个文件和一个文件夹移动到你的laravel项目根目录下
以下是您需要移动的工件:
.vagrant
Homestead.yml
Vagrantfile
不需要composer.json
,因为您以后需要它
将这些文件移动到laravel项目根目录,并将当前工作目录更改为该目录(cd laravel
)。此时,只需更新文件夹下的映射
,并确保它指向项目根。还要确保站点
下的to
键是文件夹
下的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
,以便将homestead助手插入当前项目的composer.json文件并安装
运行Wagrant reload--provision
,您应该已经准备好了。在Laravel 5中,我必须通过ssh连接到我的homestead服务器并运行以下命令:
cd Code
sudo composer self-update #not necessary, but I did it anyways
composer create-project laravel/laravel Laravel --prefer-dist
sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache
这是我的解决方案
---
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
vagrant reload --provision
folders:
- map: ~/Code
to: /home/vagrant/Code
#type: "nfs"
sites:
- map: homestead.test
to: /home/vagrant/Code/public