Vagrant 盒子上的应用程序 运行 Laravel Homestead 仅在全新安装 Laravel 应用程序时显示 'It Works'

App on a Vagrant box running Laravel Homestead only displays 'It Works' upon fresh install of Laravel App

我使用 laravel new blog 终端命令将新的 Laravel 应用程序安装到名为 'blog' 的 /sites 文件夹中。

站点构建良好,终端没有错误。

然后我使用subl /etc/hosts命令在Sublime Text 3中打开hosts文件。这是该文件的内容。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
127.0.0.1   laraveltest.app
127.0.0.1   makoto.app
127.0.0.1   modelawiki.app
127.0.0.1   fresher.app
127.0.0.1   blog.app

现在让我们关注blog.app。

然后我使用 subl Homestead.yaml 命令打开和编辑 Homestead.yaml 文件并更新地图。这是该文件的内容。

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/www/sites
      to: /home/vagrant/sites

sites:
    - map: blog.app
      to: /home/vagrant/sites/blog/public
    - map: laraveltest.app
      to: /home/vagrant/sites/laravelTest/public
    - map: makoto.app
      to: /home/vagrant/sites/Makoto
    - map: modelawiki.app
      to: /home/vagrant/sites/modelawiki
    - map: fresher.app
      to: /home/vagrant/sites/fresher/public


databases:
    - homestead

然后我 运行 homestead provision 命令是 vagrant provision 的别名来更新所有内容并启动站点并 运行ning.

现在,在 运行 执行 vagrant provision 命令之前,所有其他站点(laraveltest.app:8000、makoto.app:8000 等)工作正常,或者显示默认 Laravel 初始屏幕 (laraveltest.app:8000)。

访问 homestead.yaml 文件中映射的任何站点时,我得到的只是显示以下页面...

http://imgur.com/a/6IIkD

这是 HTML 输出。

<html><body><h1>It works!</h1></body></html>

我对自己做错了什么感到困惑。我是新用户,正在阅读 LaraCasts 上的 Laravel 教程。我在 YouTube 上观看了 CodeCourses 视频,以帮助我将 Vagrant Box 安装到我的机器上。

我也试着看看网上有什么关于这个问题的,我能找到的就是这篇关于 laravel valet 的文章......但似乎这这不是我需要的教程。

https://laracasts.com/discuss/channels/laravel/valet-v112-update-just-keep-getting-the-it-works

编辑:我目前正在卸载 vagrant box 运行ning laravel/homestead。我执行了 vagrant destroy <id> 命令和 vargrant box remove。然后我编辑了 /etc/hosts 文件并删除了所有编辑过的自定义应用程序名称。然后我还删除了包含 homestead.yaml 文件的 Homestead 文件夹。我希望很快能在这里开始全新安装。

您是否配置了可用站点?在虚拟机中尝试这一行(在命令 vagrant ssh 之后):

serve blog.app ~/sites/blog/public

看来您已经解决了问题,因为您对原始问题进行了编辑并链接到一个新问题。但是,我注意到可能导致您出现问题的一件事是 /etc/hosts 文件中的 IP 与 Homestead.yaml 文件中的 IP 不匹配。当我使用 Laravel Homestead 时,我确保我的 /etc/hostsHomestead.yaml 文件具有相同的 IP。执行此操作时,我总是会看到 Laravel 初始页面。希望这对未来的 Vagrant 盒子有用。

(代表 OP 发布答案).

我重新安装了所有东西,包括 Vagrant box 和 Homestead。一切正常运行。不知道发生了什么。然而,我可以连接到我的站点的唯一方法是在 URL 中实际键入端口。即 blog.app:8000。如果我自己访问 blog.app,那么 "It Works!" header 会恢复,laravel 站点会消失。

我认为这可能是 nginx 和端口转发的问题?既然是这种情况,并且我自己已经回答了原始问题,我将提出一个关于端口转发和 Laravel homestead.

的新问题