【问题标题】:vagrant share with laravel homestead与 laravel 宅基地的流浪者分享
【发布时间】:2014-11-05 17:18:26
【问题描述】:

我在让 vagrant share 与 laravel homestead vagrant box 一起工作时遇到了问题。我的 homestead.yaml 文件如下所示:

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

authorize: /Users/me/.ssh/id_rsa.pub

keys:
    - /Users/me/.ssh/id_rsa

folders:
    - map: /Users/me/Projects/laravel
      to: /home/vagrant/laravel

sites:
    - map: laravel.app
      to: /home/vagrant/laravel/public

variables:
    - key: APP_ENV
      value: local

当我点击http://laravel.app:8000 - 一切正常。当我启动 vagrant share 时,生成的 URL 返回错误 No input file specified.

我被难住了。在 Google 上搜索了几个小时并没有找到解决方案。我确信这只是一些基本的配置,我没有把这些点连起来。任何指针将不胜感激。谢谢!

【问题讨论】:

    标签: laravel vagrant


    【解决方案1】:

    有一个解决方案,无需在您的宅基地 VM 上执行任何操作。

    您可以安装一个名为ngrok 的程序,它与vagrant share 执行类似的操作,但更适用于 Homestead 使用的多个站点。您需要注册一个帐户,但基本使用是免费的。

    运行:ngrok http -host-header=rewrite your-local-site.app:80

    (其中 your-local-site.app 是 Homestead.yaml 文件中用于 map 指令的内容)

    然后,您的网站将在 ngrok 提供给您的 url 上全球可用。

    【讨论】:

      【解决方案2】:

      @sanaco 的回答对我来说错过了一些步骤。这是创建共享的完整命令(登录后)

      vagrant share --http 80 --name silly-sausage
      

      完成后,该命令将输出应该如下所示的共享 URL

      http://silly-sausage.vagrantshare.com
      

      共享完成后,您需要使用 ssh 进入 vagrant box

       vagrant ssh
      

      然后运行

      serve silly-sausage.vagrantshare.com ~/Code/project/path/public 
      

      如果没有 http 标志,vagrant 会将 443 分配给 http,这使得 nginx 抱怨 HTTPS 端口被用于 HTTP 连接。

      通过指定名称,您只需第一次执行 serve 命令。

      【讨论】:

      • Mike 你能看看我在这个线程中的问题吗:stackoverflow.com/questions/55108320/…
      • @padawanTony 使用 Ngrok 并将 --host-header 设置为您的 laravel 应用程序的名称,例如 myproject.dev。更容易设置和继续工作
      • 感谢迈克的回答。您可以在我的线程中发布完整的答案(逐步)吗?我以前从未使用过 ngrok。谢谢。
      【解决方案3】:

      第一步是为Vagrant Cloud 创建一个帐户(如果您还没有)。

      完成此操作后,在您的终端(登录 Homestead 机器)运行 vagrant login 并使用您的详细信息登录。

      然后运行vagrant global-status 查找正在运行 Homestead 的 vagrant 机器的 ID。

      运行vagrant share 123a4(其中123a4 是机器ID),您的机器将被共享!

      请注意,您可能需要设置 Nginx 配置以侦听已为您生成的 URL,以便它指向计算机上的正确站点。

      【讨论】:

      • 哇。谢谢你。我一直在努力解决这个问题。
      • 你能解释一下最后一段吗?您如何“收听 URL”?
      • 您需要将 URL 映射到 vagrant 机器上的目录。因此,使用 Homestead,您可以运行 serve url-to-vagrant-cloud.com ~/path/to/your/code/public,这将为您完成。
      • @Sacha 你能看看我在这个线程中的问题吗:stackoverflow.com/questions/55108320/…
      【解决方案4】:

      在你的 homestead 目录中试试这个命令:vagrant provision

      要获取共享 URL,请使用以下命令: vagrant share

      有时它不适用于 Windows。 采用 vagrant share --http 8000

      8000 是端口,因为homestead 使用端口转发8000 -> 80

      注意:要使用 vagrant 共享,您必须安装 ngrok

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-08
        • 2018-08-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多