Laravel Homestead
Homestead是用来配置本地环境的另一种工具。
Homestead是建立在vagrant上的一个配置工具,它提供了一个预先配置好的虚拟机镜像,可以完美地用于Laravel开发,并且拥有许多在运行Laravel站点时常见的开发环境。
安装Homestead的依赖
- VirtualBox或者VMWare:一个免费的虚拟机运行软件
- Vagrant:使用简单的命令就能完成虚拟机搭建和管理的工具
- Vagrant box:可以理解为虚拟机安装时候使用的镜像
- Homestead:可以理解为这就是上面提到的简单的命令
- git:版本控制工具
安装步骤
第一步
第二步:安装Homestead Vagrant Box
首先需要下载Vagrant box
使用终端运行:vagrant box add laravel/homestead
服务提供者选择:virtualbox
➜ Homestead git:(master) vagrant box add laravel/homestead
==> box: Loading metadata for box 'laravel/homestead'
box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) parallels
2) virtualbox
3) vmware_desktop
Enter your choice: 2
==> box: Adding box 'laravel/homestead' (v7.0.0) for provider: virtualbox
box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/7.0.0/providers/virtualbox.box
box: Progress: 0% (Rate: 0*/s, Estimated time remaining: --:--:--)
到这里无论你是否科学上网都是没法下载的(国外的同学也许能行),但是我们可以在命令行中看到下载地址:
https://vagrantcloud.com/laravel/boxes/homestead/versions/7.0.0/providers/virtualbox.box
使用迅雷等工具下载,新建任务下载,预计时间很长。
接下来,使用本地方式添加box,在终端运行:
vagrant box add laravel/homestead ~/Downloads/virtualbox.box
注意~/Downloads/virtualbox.box是你下载文件的摆放位置
打开命令行:
➜ Homestead git:(master) cd ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead
➜ laravel-VAGRANTSLASH-homestead ls
0
➜ laravel-VAGRANTSLASH-homestead mv 0 7.0.0
然后,你还需要新建一个名为metadata_url的文件,里面放上如下内容(注意不要有任何空格):
https://atlas.hashicorp.com/laravel/boxes/homestead
第三步:安装Homestead
- git clone https://github.com/laravel/homestead.git Homestead 下载Homestead控制脚本
- cd Homestead && git checkout v7.7.0 使用稳定版本
- bash init.sh 或 init.bat 创建 Homestead.yaml配置文件
会生成一下三个文件
- Homestead.yaml - 主要配置信息文件,我们可以在此文件中配置 Homestead 的站点和数据库等信息;
- after.sh - 每一次 Homestead 盒子重置后(provision)会调用的 shell 脚本文件;
- aliases - 每一次 Homestead 盒子重置后(provision),会被替换至虚拟机的 ~/.bash_aliases 文件中,aliases 里可以放一些快捷命令的定义
修改Homestead.yaml
配置文件
# 虚拟机配置
ip: "192.168.10.11"
memory: 2048
cpus: 1
provider: virtualbox # 指定虚拟机: virtualbox, vmware_fusion, vmware_workstation, parallels
# SSH密钥登陆配置
authorize: ~/.ssh/id_rsa.pub # 主机上的公钥文件, 自动复制到虚拟机的 /home/vagrant/.ssh/authorized_keys文件中, 用于 SSH免密登陆
# 主机的SSH私钥文件, 自动复制到虚拟机的 /home/vagrant/.ssh/ 目录中, 使虚拟机能共享主机上的密钥文件, 具备等同于主机的身份认证(eg. 主机和虚拟机用同一个ssh私钥文件认证github)
# 创建密钥对 ssh-keygen -t rsa -C "xxx@qq.com"
keys:
- ~/.ssh/id_rsa
# 指定共享文件夹, 有多种共享方式: 默认, nfs, rsync 等
folders:
- map: ~/Documents/code
to: /home/vagrant/code
# 配置域名映射, 可同时配置多个域名映射.
# 记得在主机的 hosts 里新增 192.168.10.11 测试域名
sites:
- map: homestead.dev
to: /home/vagrant/code/laravel/public
# 配置数据库
# 访问数据库则连接 127.0.0.1 和端口 33060(mysql) 或 54320(Postgres),
# 账号密码分别是 homestead/secret. 虚拟机中访问仍然使用 默认的 3306 或 5432 端口.
databases:
- homestead
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# zray:
# If you've already freely registered Z-Ray, you can place the token here.
# - email: foo@bar.com
# token: foo
# Don't forget to ensure that you have 'zray: "true"' for your site.
参数修改后若要重新生效需执行vagrant reload --provision
或 vagrant provision && vagrant reload
- (可选)修改对应虚拟机名(创建多个时防止命名冲突)
config.vm.provider "virtualbox" do |vb|
vb.name = "your-specific-project-name"
end
- vagrant up 启动
第一次启动时,Vagrant 会做以下这几件事情:
- 以导入的 Homestead 虚拟机盒子为模板,新建一台虚拟机;
- 并按照 Homestead.yaml 里的配置信息,对这台新建的虚拟机进行配置;
- 配置完成后启动虚拟机。
vagrant destroy --force 可以删除虚拟机
vagrant global-status
可查看当前系统中所有通过vagrant
创建的虚拟机
网友评论