本文在Windows操作系统下搭建环境,其他操作系统请仅作参考
一、下载工具
1.virtualBox
Oracle 公司的虚拟机软件, 能运行在当前大部分流行的系统上
网址:https://www.virtualbox.org/wiki/Downloads
2.vagrant
命令行接口,提供一种命令行接口, 允许自动化安装虚拟机, 并且因为是脚本编写成的 provision 文本文件, 给共享虚拟机配置提供了可能, Homestead 正是构建在 Vagrant 之上
网址:https://www.vagrantup.com/downloads.html
二、安装
1.将vagrant和VirtualBox安装完成后打开Gitbash命令窗口进入本地路径(没有Git请先下载安装Git)
cd ~
2.克隆 homestead 项目
git clone https://github.com/laravel/homestead.gitHomestead
3.在virtualbox虚拟机中加入 homestead box
有两种方法:
(1)执行以下命令添加 box,这种方法下载很慢,容易被墙,我即使开着VPN也下不了,所以我果断用第二种方法
vagrant box add laravel/homestead
(2)命令行下下载速度太慢的话可以利用工具下载以下链接加速,即先将资源下载到本地,再添加到虚拟机中(我用迅雷下载的)
资源地址:
https://atlas.hashicorp.com/laravel/boxes/homestead/versions/2.1.0/providers/virtualbox.box
下载完毕我们得到了一个virtualbox.box文件,将它放在C:根目录下(环境搭建完后可以删除这个文件)
创建一个metadata.json文件放置在本地目录下(C:用户/当前用户/)(很重要)
metadata.json内容:
{
"name": "laravel/homestead",
"versions": [{
"version": "2.1.0",
"providers": [{
"name": "virtualbox",
"url": "file://C:/virtualbox.box"
}]
}]
}
(我的盒子是2.1.0版所以version是2.1.0,virtualbox,vagrant最好都用最新版避免出现兼容和再更新问题)
Gitbash:
cd ~
vagrant box add metadata.json
三、配置
1.生成配置文件
cd homestead
bash init.sh
打开Homestead目录,可以找到Homestead.yaml文件
这时开始修改Homestead.yaml文件(我用的是Sublimt text)
folders表示主机和虚拟机的共享文件
sites表示域名访问虚拟机位置
我的修改如下:
(注意:请在源文件上修改,不要复制代码,yaml文件里多一个空格就可能安装失败!)
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
-~/.ssh/id_rsa
folders:
- map:~/Code/TaskManager
to:/home/vagrant/Code/TaskManager
sites:
- map:taskmanager.app
to:/home/vagrant/Code/TaskManager/public
databases:
- homestead
为了对应共享的文件,在本地目录下新建目录Code,在Code下新建子目录TaskManager
2.域名重定向
修改主机hosts文件添加域重定向
位置:C:\Windows\System32\drivers\etc\hosts
添加一条重定向代码:
192.168.10.10taskmanager.app
(如果保存不了,右键hosts-属性-安全-编辑,给当前用户分配此文件的权限)
3.SSH密钥
在gitbash窗口输入:
ssh-keygen
根据提示输入你要设置的密码(我设置为空,全部enter跳过)
然后打开homestead/scripts/homestead.rb,查看版本限制:
config.vm.box_version = settings["version"]||= ">= 2.0.0"
如果不符则修改
(注意:不要看网上的执行vagrant init laravel/homestead 命令,否则Vagrantfile会被初始化,vagrant up的时候不会执行yaml配置!)
4.安装环境
cd homestead
vagrant up
等待一段时间安装完成
(命令执行后,显示信息第二行如果是import...laravel/homeatead才是正确的)
vagrant ssh
进入虚拟机
ls
看是否有个Code文件,如果有,则yaml配置文件执行成功了
四、Box内部署
1.composer
修改虚拟机内composer下载地址转到中国镜像
composer config -g repo.packagist composerhttps://packagist.phpcomposer.com
下载laravel项目
cd Code
sudo composer create-project laravel/laravelTaskManager
在主机浏览器输入域名:taskmanager.app
访问到Laravel首页则配置成功!
2.修改laravel配置
修改.env文件内数据库名
...
3.安装phpmyadmin
下载安装解压改名为phpMyAdmin放在主机的Code目录下(注意:phpMyAdmin目录下就是doc、examples等子目录)
修改yml文件:
在共享文件后添加
- map: ~/Code/phpMyAdmin
to:/home/vagrant/Code/phpMyAdmin
在域名重定向后添加:
- map: phpmyadmin.app
to:/home/vagrant/Code/phpMyAdmin
在hosts文件添加:
192.168.10.10 phpmyadmin.app
4.重载yaml
登录虚拟机
vagrant up
重新加载配置
vagrant provision
vagrant ssh
主机浏览器url输入phpmyadmin.app,出现phpmyadmin页面,部署完成!