为什么不建议homestead
发布网友
发布时间:2022-05-25 00:15
我来回答
共1个回答
热心网友
时间:2023-11-17 21:22
Homestead安装与配置
安装 VirtualBox / VMWare 与 Vagrant
在启动你的 Homestead 环境之前,你必须先安装 VirtualBox 和 Vagrant. 两套软件在各平台都有提供易用的可视化安装程序。
VMware
除了 VirtualBox 之外, Homestead 也支持 VMware. 如果使用 VMware 作为provider, 你需要购买 VMware Fusion / Desktop 以及 VMware Vagrant plug-in. VMware 提供了更快、性能更好的共享文件夹。
增加 Vagrant 封装包
当 VirtualBox / VMware 和 Vagrant 安装完成后,你可以在终端机以下列命令将laravel/homestead封装包安装进你的 Vagrant 安装程序中。下载封装包会花你一点时间,时间长短将依据你的网络速度决定:
vagrant box add laravel/homestead
如果这个命令失败了, 你可能安装的是一个老版本的 Vagrant 需要指定一个完整的URL:
vagrant box add laravel/homestead
安装 Homestead
手动通过 Git 安装(本地端没有 PHP)
如果你不希望在你的本机上安装 PHP ,你可以简单地通过手动复制资源库的方式来安装 Homestead。将资源库复制至你的home目录中的 Homestead 文件夹,如此一来 Homestead 封装包将能提供主机服务给你所有的 Laravel(及 PHP)应用:
git clone Homestead
一旦你安装完Homestead CLI工具,即可执行bash init.sh命令来创建Homestead.yaml配置文件:
bash init.sh
此Homestead.yaml文件,将会被放置在你的~/.homestead目录中。
通过 Composer + PHP 工具
一旦封装包已经安装进你的 Vagrant 安装程序,你就可以准备通过Composer global命令来安装Homestead CLI工具:
composer global require "laravel/homestead=~2.0"
请务必确认 homestead 有被放置在目录~/.composer/vendor/bin之中,如此一来你才能在终端机中顺利执行 homestead 命令。
一旦你安装完 Homestead CLI 工具,即可执行init命令来创建Homestead.yaml配置文件:
homestead init
此Homestead.yaml将会被放置在你的~/.homestead文件夹中。如果你是使用 Mac 或 Linux,你可以直接在终端机执行homestead edit命令来编辑Homestead.yaml:
homestead edit
配置你的 Provider
在Homestead.yaml文件中的provider键表明需要使用的 Vagrant prodiver:virtualbox或者vmware_fusion,你可以根据自己的喜好设定 provider 。
provider: virtualbox
配置你的 SSH 密钥
然后你需要编辑Homestead.yaml。可以在文件中配置你的 SSH 公开密钥,以及主要机器与 Homestead 虚拟机之间的共享目录。
如果没有 SSH 密钥的话, 在 Mac 和 Linux 下,你可以利用下面的命令来创建一个 SSH 密钥组:
ssh-keygen -t rsa -C "you@homestead"
在 Windows 下,你需要安装 Git 并且使用包含在 Git 里的Git Bash来执行上述的命令。另外你也可以使用 PuTTY 和 PuTTYgen。
一旦你创建了一个 SSH 密钥,记得在你的Homestead.yaml文件中的authorize属性指明密钥路径。
配置你的共享文件夹
Homestead.yaml文件中的folders属性列出了所有你想在 Homestead 环境共享的文件夹列表。这些文件夹中的文件若有变动,他们将会同步在你的本机与 Homestead 环境里。你可以将你需要的共享文件夹都配置进去。
如果要开启 NFS,只需要在folders中加入一个标识:
folders:
- map: ~/Code
to: /home/vagrant/Code
type: "nfs"
配置你的 Nginx 站点
对 Nginx 不熟悉?没关系。sites属性允许你简单的对应一个域名到一个 homestead 环境中的目录。一个例子的站点被配置在Homestead.yaml文件中。同样的,你可以加任何你需要的站点到你的 Homestead 环境中。Homestead 可以为你每个进行中的 Laravel 应用提供方便的虚拟化环境。
你可以通过配置hhvm属性为true来让虚拟站点支持 HHVM:
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
hhvm: true
Bash Aliases
如果要增加 Bash aliases 到你的 Homestead 封装包中,只要将内容添加到~/.homestead目录最上层的aliases文件中即可。
启动 Vagrant 封装包
当你根据你的喜好编辑完Homestead.yaml后,在终端机里进入你的 Homestead 文件夹并执行homestead up命令。
Vagrant 会将虚拟机开机,并且自动配置你的共享目录和 Nginx 站点。如果要移除虚拟机,可以使用vagrant destroy --force命令。
为了你的 Nginx 站点,别忘记在你的机器的hosts文件将「域名」加进去。hosts文件会将你的本地域名的站点请求指向你的 Homestead 环境中。在 Mac 和 Linux,该文件放在/etc/hosts。在 Windows 环境中,它被放置在C:\Windows\System32\drivers\etc\hosts。你要加进去的内容类似如下:
192.168.10.10 homestead.app
务必确认 IP 地址与你的Homestead.yaml文件中的相同。一旦你将域名加进你的hosts文件中,你就可以通过网页浏览器访问到你的站点。
继续读下去,你会学到如何连接到数据库!
Homestead常见用法
通过 SSH 连接
要通过 SSH 连接上您的 Homestead 环境,在终端机里进入你的 Homestead 目录并执行vagrant ssh命令。
因为你可能会经常需要通过 SSH 进入你的 Homestead 虚拟机,可以考虑在你的主要机器上创建一个别名:
alias vm="ssh vagrant@127.0.0.1 -p 2222"
一旦你创建了这个别名,无论你在主要机器的哪个目录,都可以简单地使用vm命令来通过 SSH 进入你的 Homestead 虚拟机。
连接数据库
在 Homestead 封装包中,已经预了 MySQL 与 Postgres 两种数据库。为了更简便,Laravel 的local数据库配置已经默认将其配置完成。
如果想要从本机上通过 Navicat 或者 Sequel Pro 连接 MySQL 或者 Postgres 数据库,你可以连接127.0.0.1的端口33060(MySQL) 或5432(Postgres)。而帐号密码分别是homestead / secret。
附注: 从本机端你应该只能使用这些非标准的连接端口来连接数据库。因为当 Laravel 运行在虚拟机时,在 Laravel 的数据库配置文件中依然是配置使用默认的3306及5432连接端口。
增加更多的站点
在 Homestead 环境上架且运行后,你可能会需要为 Laravel 应用程序增加更多的 Nginx 站点。你可以在单一个 Homestead 环境中运行非常多 Laravel 安装程序。有两种方式可以达成:第一种,在Homestead.yaml文件中增加站点然后执行homestead provision或者vagrant provision。
另外,也可以使用存放在 Homestead 环境中的serve命令文件。要使用serve命令文件,请先 SSH 进入 Homestead 环境中,并执行下列命令:
serve domain.app /home/vagrant/Code/path/to/public/directory
附注: 在执行serve命令过后,别忘记将新的站点加进本机的hosts文件中。
Homestead 连接端口
以下的端口将会被转发至 Homestead 环境:
SSH:2222 → Forwards To 22
HTTP:8000 → Forwards To 80
MySQL:33060 → Forwards To 3306
Postgres:54320 → Forwards To 5432
增加额外端口
你也可以自定义转发额外的端口至 Vagrant box,只需要指定协议:
ports:
- send: 93000
to: 9300
- send: 7777
to: 777
protocol: udp
Blackfire Profiler 工具
Blackfire Profiler 是由 SensioLabs 创建的一个分析工具,它会自动的收集代码执行期间的相关数据,比如 RAM, CPU time, 和 disk I/O. 如果你使用 Homestead ,那么使用这个分析工具会变得非常简单。
blackfire 所需的包已经安装在 Homestead box 中,你只需要在Homestead.yaml文件中设置Server ID和token:
blackfire:
- id: your-id
token: your-token
当你设定完 Blackfire 的凭证信息,使用homestead provision或者vagrant provision令配置生效。当然,你也需要通过阅读Blackfire 文档 来学习如何在你的浏览器中安装 Blackfire 扩展。