Laravel Homestead PHP:在计算机的 IP 地址上运行项目

Posted

技术标签:

【中文标题】Laravel Homestead PHP:在计算机的 IP 地址上运行项目【英文标题】:Laravel Homestead PHP: Running projects on computer's IP Address 【发布时间】:2015-01-09 17:04:08 【问题描述】:

我的计算机上运行着 Laravel Homestead,在我的网络浏览器中使用 'localhost:8000' 本地运行项目的地方很好。现在我想使用我的计算机的 IP 地址运行项目,但我在完成此任务时遇到了问题。我尝试了几种不同的方法,例如使用 XAMPP,但我也遇到了麻烦。

以下是我已经启动并与正在使用的应用程序一起运行的内容:

    使用 VirtualBox、Vagrant 和 Composer 的 Laravel Homestead。 我使用 'cmd' 分别使用 'Vagrant Status' 和 'Vagrant Up' 来启动 VirtualBox。 PuTTY 用于使用“vagrant”作为登录名和密码连接到我的 VirtualBox。 使用 PuTTY 成功登录后,我使用“composer”命令创建项目,并使用相应的 Laravel php 命令执行迁移“php artisan migrate”、“php artisan dump-autoload”等。

这是我的 Homestead.yaml 配置:

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

authorize: C:/Users/Jeff/.ssh/id_rsa.pub

keys:
   - C:/Users/Jeff/.ssh/id_rsa

folders:
   - map: C:/Users/Jeff/Desktop/Code
    to: /home/vagrant/Code

 sites:
   - map: homestead.app
    to: /home/vagrant/Code/laravel-photo-gallery-build3/public


 variables:
  - key: APP_ENV
    value: local 

有没有一种简单的方法可以使用我计算机的 IP 地址映射我的 Laravel Homestead 项目?任何帮助将不胜感激!

【问题讨论】:

您是否有理由要使用 IP 地址而不是映射到特定站点域名?喜欢myprojectname.app? ***.com/a/38714136/470749 帮助了我。 【参考方案1】:

您可能出于某种特定原因想要使用我们计算机的 IP 地址,但我不知道,但如果仅仅是因为您过去的开发方式,我建议您不要这样做。除非您的计算机有一个静态 IP 地址,否则您的 IP 地址最终会改变,这会破坏您的设置。

我建议在 Homestead 文件中使用您的域映射。

sites:
   - map: homestead.app
     to: /home/vagrant/Code/laravel-photo-gallery-build3/public

这里发生的是 yaml 文件告诉虚拟机“嘿,每当你看到域 homestead.app 时,重定向到这个特定的文件夹”。

添加该映射后,您可以修改主机文件,以将浏览器对homestead.app 的请求指向您的本地计算机(而不是我们在网络上的)。在您的主机文件中,在底部添加以下行:

127.0.0.1 homestead.app

我不太熟悉 windows 将所有文件放在哪里,但看起来您可以在以下位置找到 hosts 文件:

C:\Windows\System32\Drivers\etc\hosts

修改完 hosts 文件和 yaml 文件后,重启 vagrant 机器并强制配置:

vagrant reload --provision

之后,您应该可以打开浏览器并转到网址查看您的网站:

homestead.app:8000

此外,您可以将homestead.app 部分重命名为您希望将网站显示为的任何域。请确保您不要将其命名为与在线实际站点相同的名称,否则您将永远无法访问在线版本(因为您的计算机将始终重定向到您的本地计算机:P)

我还要注意,你可以在同一个虚拟机中拥有多个项目,可以通过添加来添加新项目:

新的主机/虚拟机文件夹映射 新的域/文件夹映射 新的 hosts 文件条目

HomesteadYAML 示例:

ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: C:/Users/Jeff/.ssh/id_rsa.pub

keys:
   - C:/Users/Jeff/.ssh/id_rsa

folders:
   - map: C:/Users/Jeff/Desktop/Code
     to: /home/vagrant/Code
   - map: C:/Users/Jeff/Dev/NewProject
     to: /home/vagrant/Dev/NewProject

 sites:
   - map: homestead.app
     to: /home/vagrant/Code/laravel-photo-gallery-build3/public
   - map: newproject.dev
     to: /home/vagrant/Dev/NewProject/public


 variables:
  - key: APP_ENV
    value: local 

hosts 文件添加示例:

...
127.0.0.1 homestead.app
127.0.0.1 newproject.dev

【讨论】:

您的回答很有帮助。非常感谢! 没问题。 Homestead 是一个很棒的工具。一旦您创建了几个项目并开始更多地使用它,它将成为第二天性和不可或缺的! 我还应该补充一点,Homested 不仅仅是 laravel,它只是 laravel 用于 VM 项目托管的首选配置。如果您将非 laravel 项目添加到您的配置中,它仍然可以工作。 是的,我非常喜欢 Laravel。它与使用 Ruby on Rails 非常相似,因为它是一个 MVC。感谢您的信息!

以上是关于Laravel Homestead PHP:在计算机的 IP 地址上运行项目的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Homestead Box 0.4.2使用php5.6而不是php7

PHP Laravel:用户'homestead'@'localhost'的访问被拒绝(使用密码:YES)

有没有人让 memcached 在 Laravel Homestead php7 盒子上工作?

有没有人让 memcached 在 Laravel Homestead php7 盒子上工作?

Laravel Homestead 中 PHP 错误日志的位置

laravel开发环境homestead搭建详解