Homestead:映射到错误文档根目录的文件夹

时间:2014-09-11 00:59:56

标签: php laravel vagrant

我将Laravel Homestead用于VM进入我的开发环境。每当我转到/Website/Site/页面时,我最近在Homestead.yaml中创建了一个新的映射(site.app目录),我被重定向到另一个项目中设置的/ tasks页面({ {1}})。 (这会导致错误,因为页面不在那里)。这是我的Homestead.yaml文件:

/Laravel

Laravel包含重定向索引页面的路径,而Website目录是新项目,只是Laravel的全新安装,没有别的。以下是一些服务器/请求数据错误输出:

folders:
   - map: /Users/me/Homestead/Code/Laravel
     to: /home/vagrant/Code/Laravel
   - map: /Users/me/Homestead/Code/Larabook
     to: /home/vagrant/Code/Larabook
   - map: /Users/me/Homestead/Code/Website/Site
     to: /home/vagrant/Code/Website

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
    - map: larabook.app
      to: /home/vagrant/Code/Larabook/public
    - map: site.app
      to: /home/vagrant/Code/Website/public

variables:
   - key: APP_ENV
     value: local

这是Laravel /(即旧项目)项目的route.php

SCRIPT_FILENAME /home/vagrant/Code/Laravel/public/index.php
SCRIPT_NAME     /index.php
REQUEST_URI     /tasks
DOCUMENT_URI    /index.php
DOCUMENT_ROOT   /home/vagrant/Code/Laravel/public

为什么Laravel的全新安装会被另一个目录中的项目重定向?

  1. Route::get('/', function(){ return Redirect::to('tasks'); });
  2. 或更严重

    1. vagrant reload --provision运行~/Homestead然后vagrant destroy

4 个答案:

答案 0 :(得分:19)

我也遇到了这个问题。

据推测,Homestead.yaml文件中的更改被忽略。所以,我决定刷新它。

<强>!经过修改的解决方案,不会破坏您的机器

我的解决方案不合适,因为它会破坏您现有的机器。请先查看此解决方案!

  

配置并运行Homestead环境后,您可能需要为Laravel应用程序添加其他Nginx站点。您可以在单个Homestead环境中运行任意数量的Laravel安装。有两种方法可以做到这一点:首先,您可以将站点添加到Homestead.yaml文件中,然后运行vagrant provision。

     

或者,您可以使用Homestead环境中提供的服务脚本。要使用serve脚本,请在您的Homestead环境中使用SSH并运行以下命令...

http://laravel.com/docs/homestead#daily-usage

根据Laravel.io forum,更好的解决方案是运行vagrant reload --provision

另见

* Vagrant Docs

旧解决方案:使用最后的度假村

尝试以下解决方案:

  1. ~/Homestead运行vagrant reload然后vagrant up
  2. 或更严重

    1. ~/Homestead运行vagrant destroy然后vagrant up
    2. 选项2破坏您的服务器及其数据库

      注意:我采用了第2步。

答案 1 :(得分:9)

您可以运行homestead up --provision强制重新加载Homestead.yaml文件。

答案 2 :(得分:2)

如果您有正在运行的宅基地实例,只需从本地计算机发出命令homestead provision

答案 3 :(得分:1)

我可以使用宅基地盒提供的serve命令解决该问题。 当您连接到VM运行时:

serve personal.local /home/vagrant/projects/personal/personal-site/public

无需重启VM。 我已经尝试了vagrant reload --provision并重新加载了yaml文件,但似乎不是ngnix配置。