vagrant&homestead配置
常用的几个vagrant命令
$ vagrant init # 初始化
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # 通过 SSH 登录 vagrant(需要先启动 vagrant)
$ vagrant provision # 重新应用更改 vagrant 配置
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机
#box管理命令
$ vagrant box list # 查看本地box列表
$ vagrant box add # 添加box到列表
$ vagrant box remove # 从box列表移除
Homestead.yaml 配置文件
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
folders:
- map: ~/code
to: /home/vagrant/code
type: "nfs"
sites:
- map: shop.test
to: /home/vagrant/code/laravel/public
databases:
- homestead
- laravel-shop
SSH 秘钥的两个文件:
- id_rsa —— SSH 秘钥的 私钥 (Private Key)
- id_rsa.pub —— SSH 秘钥的 公钥 (Public Key)
共享文件夹配置
我们可以通过 folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。
- map 对应的是我们本机的文件夹,格式例如:E:/Homestead/Code,以开发者实际项目目录为准。
- to 对应的是 Homestead 上的文件夹。
站点配置
站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面 sites 配置所示,将 homestead.test 映射到一个 Laravel 项目的 public 目录上。这一行配置,会命令 Homestead 为我们新建一个 Nginx 站点,并且把 Web Root 配置到指定目录下。Laravel 应用的 Nginx 站点 Web Root 配置,默认就是在根目录下的 public 目录。
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
另外,主机里直接访问虚拟机站点,必须通过绑定 hosts 来实现。接下来我们利用 hosts 文件绑定 homestead.test 到虚拟机 IP 192.168.10.10 上。
数据库配置
我们可以为 Homestead 指定数据库名称,这里使用默认设置即可。
databases:
- homestead
Homestead 虚拟机里的 MySQL 数据库服务器连接方式为:
Host: 127.0.0.1
Port: 33060
User: homestead
Pass: secret
注意此处使用了 VirtualBox 虚拟机的『端口转发』功能,Homestead 脚本默认将本机端口 33060 转发到虚拟机里的 3306 端口。所以,只要我们连接本机的 33060 端口,即可读取虚拟机中的 MySQL 数据库。
升级 Homestead 盒子的问题
之前的版本是 laravel/homestead,
更新后的版本是 lc/homestead,
解决方法:
找到文件 homestead.rb 修改
config.vm.box = settings["box"] ||= "lc/homestead"