【问题标题】:App on a Vagrant box running Laravel Homestead only displays 'It Works' upon fresh install of Laravel App运行 Laravel Homestead 的 Vagrant box 上的应用程序仅在全新安装 Laravel 应用程序时显示“It Works”
【发布时间】:2018-01-03 22:48:06
【问题描述】:

我使用laravel new blog 终端命令在我的/sites 文件夹“blog”中安装了一个新的Laravel 应用程序。

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

然后我使用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 的别名,以更新所有内容并使网站启动并运行。

现在在运行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>

我对自己做错了什么感到困惑。我是一名新用户,正在浏览 LaraCast 上的 Laravel 教程。我跟着 YouTube 上的 CodeCourses 视频帮助我将 Vagrant Box 安装到我的机器上。

我还尝试查看网上关于这个问题的内容,我能找到的只是关于 laravel valet 的这篇文章......但似乎这不是我需要的教程。

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

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

【问题讨论】:

  • 您的编辑消息表明此问题已解决。您会在下面添加一个自我回答来展示您的解决方案吗? (如果您的 Edit 2 是解决方案,请将其移至答案,以保留问答格式 - 谢谢)。

标签: laravel nginx vagrant virtualbox homestead


【解决方案1】:

(代表 OP 发布答案)

我重新安装了所有东西,包括 Vagrant box 和 Homestead。一切正常运行。不知道发生了什么。但是,我可以连接到我的站点的唯一方法是在 URL 中实际键入端口。即blog.app:8000。如果我自己访问blog.app,那么“它有效!”标头重新出现,laravel 站点消失。

我认为这可能是 nginx 和端口转发的问题?既然是这种情况,并且最初的问题已经由我自己回答,我将提出一个关于端口转发和 Laravel 宅基地的新问题。

【讨论】:

    【解决方案2】:

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

    serve blog.app ~/sites/blog/public
    

    【讨论】:

    • 不起作用。对不起。这是运行命令后显示的输出和内容。 imgur.com/a/C9zvu
    • 你在这个目录中看到了什么? cd /etc/nginx/sites-available/
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      相关资源
      最近更新 更多