使用Laravel Homestead:'没有指定input文件'
我是使用Laravel和Homestead的新手,并且希望得到任何帮助或者正确的方向。 当我运行“php artisan serve”时,我已经成功地到达了“你已经到达”屏幕,但是当我尝试通过Vagrant做同样的事情时,我得到了“没有指定input文件”。 我的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
在我的Vagrant Box中,我有两个名为“code”和“Code”的目录:
/home/vagrant/code/exampleproject /home/vagrant/Code
我已经检查,我可以看到对我的电脑exampleproject文件所做的更改反映在stream浪盒子文件。
不知道如何解决这个问题! 我真的很感激任何可能的帮助:)
而不是重新安装尝试
vagrant up --provision
要么
homestead up --provision
我有同样的确切问题,并通过larachat的使用find了解决scheme。
以下是如何解决它,你需要有你的homestead.yaml文件设置正确。 如果你想知道如何完成按照家园2.0的Jeffery Way教程https://laracasts.com/lessons/say-hello-to-laravel-homestead-two 。
现在要解决Input not specified
问题,你需要ssh到宅基地框和types
serve domain.app /home/vagrant/Code/path/to/public/directory
这将为nginx生成一个脚本。 每次切换项目时都需要这样做。
他还讨论了我在本系列中解释的内容https://laracasts.com/series/laravel-5-fundamentals/
这很容易解决,因为您已经将文件夹名称更改为: exampleproject
所以SSH对你的stream浪者:
ssh vagrant@127.0.0.1 -p 2222
然后改变你的nginxconfiguration:
sudo vi /etc/nginx/sites-enabled/homestead.app
使用新的文件夹名称编辑正确的URI到第3行的根目录 :
root "/Users/MYUSERNAME/Code/exampleproject/public";
重新启动Nginx
sudo service nginx reload
重新加载networking浏览器,它现在应该工作
给我的回应,以防万一有人在这个问题上挣扎。
-
您可能需要validation“/ etc / ngnx / sites-available / domain”中与您的sites.toconfiguration在“Homestead.yaml”中的server.rootconfiguration。
-
如果它不匹配,然后更改它,并重新启动“sudo服务nginx重新启动”的networking服务器
-
仍然不能正常工作,则允许“YOURSITE / app / storage”文件夹的写入权限为“chmod -R 777 app / storage”
我也有同样的问题,我以为Laravel是“开箱即用”安装的,但似乎并不是这样。 我SSH到了机器,并运行这些命令:
cd Code sudo composer self-update #not necessary, but I did it anyways composer create-project laravel/laravel Laravel --prefer-dist
一切都像往常一样运行。
在编辑Homestead.yaml后,我发生了这个问题。 我通过解决这个问题
homestead destroy homestead up
遵循Laravel文档( https://laravel.com/docs/5.2/homestead )时遇到同样的问题
我的问题很简单,我错过了阅读文档中的这一部分:
Homestead.yaml文件将被放置在〜/ .homestead隐藏的目录中:
所以我正在更新错误的Homestead.yaml文件,因为当我运行bash init.sh命令时文件被移动了。
我经过大量的search后才意识到这一点,所以希望这会帮助别人。
我有同样的问题
但忘了规格说configuration文件将位于
〜/ .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
希望这适用于其他人。
谨慎的话,linux是区分大小写的。 这可能是你看到“Code”和“code”目录的原因。
我要做的就是再次重做vagrant安装程序,如果你想保持简单并且与Homestead盒子的默认configuration相匹配,那么你的主机上的目录就是大写的“Code”。
你也可以在“文件夹”部分find你机器上的“代码”文件夹,以防你决定在以后添加更多的网站到你的家园。 这样的方式/ home / vagrant / Code /你会看到所有的网站项目,你可以嘲笑更多的网站指向他们的“公共”目录。
重新启动你的家园。 为我工作。
homestead destroy homestead up
这可能是因为nginx web服务器没有指向正确的path。
有两个键你应该看看: folders
下的map
键和sites
下的键。 folders
键将本地计算机上的folders
映射到stream浪VM。 sites
键用来在nginx上创build一个具有to
的值的虚拟主机。
你想要确保的是,在sites
指向正确的路向public
。
问题是我用composer create laravel/laravel
创build了我的laravel项目。 这在我的当前目录中创build了一个名为laravel
的文件夹。 然后,在没有改变目录的情况下,我安装了composer require laravel/homestead --dev
的家园助手, 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
path将被安装到vagrant虚拟机上。 这是错误的目录,因为它应该指向您的应用程序目录所在的laravel项目根目录。 这里发生的事情是,当我在项目根源的时候,我应该要求宅基地帮手。
所以现在的问题是我该怎么做? 你有两个select:摆脱你目前的宅基地虚拟机,并重新开始,但这次从项目根目录或拯救你已经。
如果你想打捞你所拥有的,你必须将几个文件和一个文件夹移动到你的laravel项目的根目录下。
这些是您需要移动的工件:
.vagrant Homestead.yml Vagrantfile
composer.json
将不会被需要,因为您稍后会要求它。
将这些文件移动到您的laravel项目根目录并将您当前的工作目录更改为( cd laravel
)。 此时只需更新folders
下的map
,并确保它指向项目根目录。 还要确保在sites
下的密钥是/public
后面的folders
下的to
键。
例如:
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
以便宅基地助手需要到您当前项目的composer.json文件中并安装。
运行vagrant reload --provision
,你应该全部设置。
在Laravel 5中,我不得不ssh进入我的家园服务器并运行这些命令:
sudo chmod -R 777 storage sudo chmod -R 777 bootstrap/cache
这是我的解决scheme:
这是一个文件path问题,所以下面是我的文件夹和网站path。 另外,由于拨款不起作用,我不得不使用“stream浪摧毁”。
这通常发生在编辑Homestead.yaml文件时。
如果像我一样,你尝试了homestead up --provision
,没有工作! 然后试试这个(它适用于我):
-
homestead destroy
-
homestead up
我的问题是在域的configuration文件中:
我的项目的公共文件夹是在/ home / vagrant / Code / demo / public中创build的
(/etc/nginx/sites-available/demo.app)的configuration文件configuration了“/ home / vagrant / Code / Laravel / public”而不是“/ home / vagrant / Code / demo / public ”。
现在它正在完善。
我和Homestead有类似的问题,只是为我工作。 所以你应该试试这个:
vagrant provision
vagrant provision
相关的代码没有为我工作,失去了一些时间后,我已经重新启动整个系统。 现在可以… – , – “
我根据这个laracast教程编辑homestead.yaml
和hosts
,并使用vagrant suspend
, vagrant halt
等等/ vagrant up
来重新启动宅基地; 我也尝试了一些vagrant provision
,但是在完成以上所有操作之后,我重新启动计算机 (在Windows 7 PC上)后, no file specified
。 这当然是一个耗时和棘手的错误。
这就是我的工作homestead.yaml
看起来像两个 laravel项目:
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\ProjectOne
和D:\Projects\ProjectTwo
有两个单独的laravel安装
然后通过在浏览器中inputprojectone.app:8000
来访问第一个项目,然后在第二个项目中inputprojecttwo.app:8000
。
PS我在Windows上testing了这个Laravel 5.2
发生这种情况是因为您需要正确configuration您的nginx服务器才能为您的应用程序提供服务。 您可以按照本指南进行操作,从主题Configure Nginx和Web Root开始 。
在你的/ etc / nginx / sites-available和/ etc / nginx / sites-enabled之间正确地configuration你的符号链接后 ,你需要确保你的根variables被设置为你的应用程序的文件夹path。 设置你的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;
完成configuration后,重新启动nginx服务器
sudo service nginx restart
你的申请应该现在送达。
对我来说,以下工作:
vagrant reload --provision
旧版本的Homestead将文件夹映射到~/Code
中,例如默认情况下~/Code/laravel/public
。 注意~/Code
的案例大写。 这些区分大小写。 新版本使用小写~/code
。 根据您的实际目录更新您的Homestead.yaml
这些目录。
TL; DR;
更新~/Code
~/code
,反之亦然取决于你的实际目录名称。
- ()消息重新引导Laravel
- php artisan migrate:make create_mytable失败:“migrate:make”未定义
- Laravel-5如何使用id值和名称值从数据库填充select框
- 如何更改/自定义密码字段名称为Laravel 4和Laravel 5用户身份validation
- 无法打开input文件:工匠
- 迁移:无法在laravel中添加外键约束
- 在Laravel中使用Eloquent ORM来使用LIKE来执行数据库search
- 如何在表单寄存器(laravel generator infyom)中添加一些文本字段?
- 如何在Laravel 5中构build模块化应用程序?