先安装 virtualbox, 以及 vagrant 。 这两个都是免费软件。默认安装即可。安装 virtualbox 时,记得要运行它的pkg文件。
再来安装 homestead.box。
安装 homestead.box
一种是将 homestead.box 下到本地,然后添加到 virtualbox 中,一种是直接在线安装。如果网络好,就在线安装。
在线安装:
vagrant box add laravel/homestead
1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop
会让选择虚拟机的类型。这里使用的是 virtualbox,于是选 3 回车。
接下来就是一个漫长下载等待安装的过程。
安装完成后,会提示successful。
使用 vagrant box list
可以查看安装的 box。
安装 homestead
建议将homestead下载到用户目录下,这样 homestead.box 就可以作为所有项目的主机了。
cd ~
git clone https://github.com/laravel/homestead.git Homestead
cd Homestead
bash init.sh
使用 bash init.sh
命令来生成 Homesstead.yaml
文件以及after.sh和aliases文件。
映射文件夹,数据库名,域名映射关系等都在这里配置。根据自己的需要配置。
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/code
to: /home/vagrant/code
sites:
- map: larabbs.app
to: /home/vagrant/code/larabbs/public
- map: xishui.app
to: /home/vagrant/code/xishui/public
- map: rhbody.app
to: /home/vagrant/code/rhbody/public
databases:
- homestead
- larabbs
- xishuishop
- rhbody
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
- 配置共享文件夹。
folders:
- map: ~/code
to: /home/vagrant/code
map 对应本地的,to对应虚拟机服务器上的。可以配置多个。
- 站点nginx配置。
sites:
- map: larabbs.app
to: /home/vagrant/code/larabbs/publicå
map 对应的是域名,to对应的是服务器文件位置。因为上边文件夹的映射关系,其实代码在本地就可以了。
- 数据库名。
启动环境
因为有了 virtualbox虚拟机容器,vagrant虚拟机管理工具,homestead.box 系统,以及homestead管理脚本。你就开始启动虚拟机,使用它了。对于box,当然你可以装 linux,windows也是可以的。
homestead.box 包裹了Ubuntu系统以及php,git等软件。
启动:
vagrant up
如果提示 Check your Homestead.yaml file, the path to your private key does not exist.
这个是 ssh 还没生成。
ssh-keygen -t rsa -C "zhoumumu@mlxiu.com"
这里换上你自己的邮箱。回车后,会让你指定密匙名称,回车默认即可。后边要求输入密码,确认密码,同意回车,空密码即可。
然后再启动。
启动如图:
数据库
Homestead 虚拟机里的 MySQL 数据库服务器连接方式为:
Host: 127.0.0.1
Port: 33060
User: homestead
Pass: secret
mac mysql管理工具:navicat
http://www.pc6.com/mac/111878.html
常用命令
# 启动
vagrant up
# 登录ssh
vagrant ssh
### 关闭
vagrant halt
# 修改配置后,重新启动
vagrant provision
vagrant reload