homestead是什么玩意? 怎么弄?

问:homestead是什么玩意?

答:Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果出现问题,你可以在几分钟内销毁并创建 Box!

Homestead 可以运行在任何 Windows,Mac,或 Linux 系统,它包括了 Nginx web 服务器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,以及开发 Laravel 应用程序所需要的东西。

 

问:vagrant又是什么东西?

答:Vagrant 是一个用于创建和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。

Vagrant 可以将一整套虚拟环境封装在一个box 内,这样只要所有人都使用这个 box,大家的开发环境就实现统一了!而 Homestead 就是这样一个 Laravel 官方预装的适合 Laravel 开发的 Vagrant box 。

 

问:虚拟机又是什么玩意?

答:VitrualBox 就是一款非常强大的免费虚拟机软件,使用者可以在 VitrualBox 上安装并运行 Linux、Windows、Mac OS X 等操作系统,类似的软件还有 VMware 等。就是在你的原生系统里再装一个系统,但不影响原生系统随时可以删除。

 

问:homestead封装了那么多开发所需的东西,怎么才能选择或者切换到我想用的呢?

答:以php版本为例,homestead中包括7.3,7.2,7.1,5.6等版本,默认是使用7.3版本的,可以在yaml文件中的sites中指定php的版本,但是在虚拟机中查看php仍然是最高版本,想切换系统的php版本时,homestead 中自带了版本管理工具update-alternatives这个命令后面跟着--config php就能对php进行选择切换。

 

问:那homestead怎么安装呢?

答:总共分五步。

第一步:安装virtualBox,就是安装虚拟机,你也可以按别的虚拟机但是有点小区别

第二步:安装vagrant,就是安装部署环境的工具

第三步:将封装好的homestead box添加到vagrant里面,让它去部署。

第四步:安装homestead。

第五步:配置homestead.yaml文件就行了。

 

问:能具体说说这几步吗,还有从哪里下载?

答:virtual Box直接从他的官网上下载就行。https://www.virtualbox.org/wiki/Downloads

安装就不用说了吧,windows下直接下一步就行。

Vagrant 也是直接从官网上下载就行了https://www.vagrantup.com/downloads.html

安装也是,下一步就行。

注意:这里有可能会提示你powershell版本过低问题,去这里下载

Windows6.1-KB2819745-x64-MultiPkg.msu

地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=40855

注意:windows要在bios中开启cpu虚拟技术

然后就是把添加Homestead Vagrant Box 到 Vagrant。这一步有几个注意要点:

第一就是要使用git bash终端来进行操作,这也就意味着你必须安装git这玩意。至于如何安装git,就不说了,自己查资料,日后有机会的话,专门在出一片关于git的资料。接下来就是在git bash中的操作,也就是linux命令行了,进入vagrant的安装目录,当你本地没有box文件的时候你可以这样vagrant box add laravel/homestead,但这样超级慢!我试过了!你可以先把这个box下下来地址是

https://vagrantcloud.com/laravel/boxes/homestead/versions/8.0.0/providers/virtualbox.box,挺快的,我也试了。然后vagrant box add laravel/homestead virtualbox.box,后面这个根据地址来,如果和vagrant在一个目录下,就不用带地址了。然后就能安装了。成功之后就可以查看是否box添加成功。用vagrant box list命令来查看。关于vagrant的其他命令我会单独开一篇博文来讲述。

第二就是克隆 Laravel Homestead 仓库到 D:/vagrant/homestead,

git clone https://github.com/laravel/homestead.git Homestead

执行 init.sh(生成Homestead.yaml文件),配置秘钥,ssh-keygen -t rsa -C "[email protected]配置Homestead.yaml 文件。

具体配置内容:(原)

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: homestead.app

      to: /home/vagrant/Code/Laravel/public

databases:

    - homestead

variables:

    - key: APP_ENV

      value: local

自定义配置后

ip: "192.168.10.10"

memory: 2048

cpus: 1

provider: virtualbox

-------------------------------以上不要动--------------

authorize: ~/.ssh/id_rsa.pub

 

keys:

    - ~/.ssh/id_rsa

---------------------------以上是秘钥的位置,因为要使用ssh链接----------

 

folders:

    - map: D:/Vagrant

      to: /home/vagrant

------------------以上是设置共享文件夹的,方便两个系统同步----------

sites:

    - map: api.homestead.com

      to: /home/vagrant/laravel/public

---这玩意就是虚拟主机头,就是配置域名的,注意要在hosts文件中填写域名和ip,下面会提到此操作

databases:

    - homestead

------这个就是数据库了----------------

 

第三步:打开 C:/Windows/System32/drivers/etc/host 添加

192.168.10.10   api.homestead.com

注意:如果使用本地box文件安装,此时你需要需要找到homestead\scripts\文件夹中,打开homestead.rb文件

config.vm.box_version = settings["version"] ||= ">= 0"

最后进入homestead目录中启动虚拟主机vagrant up

最后测试一下 访问 http://api.homestead.com成功 即安装完成

 

问:感觉第三步有点不明白什么意思,为什么先加个box在下载homestead的,不是说homestead就是一个vagrant box呢?

答:事实上Homestead 包含了两个东西

Homestead 管理脚本

homestead.box 虚拟机盒子

Homestead 管理脚本的作用是根据你在 ~/.homestead/Homestead.yaml 文件中的配置,来完成:

Nginx Site 创建+数据库创建+文件夹挂载等任务。

Homestead 管理脚本 和 homestead.box 虚拟机盒子 的版本是需要互相对应的。

例如说:Homestead 管理脚本 的 3.x 版本,对应盒子是 v0.6.x。

需要对应的原因,是因为 homestead.box 虚拟机盒子是一个完整的、指定的运行环境。里面设定好了版本等,管理脚本完成任务时,有可能参数设定不准确。

 

 

 

 

 

最后补充一下vagrant命令吧

命令 解释

vagrant box list 查看目前已有的box

vagrant box add 新增加一个box

vagrant box remove 删除指定box

vagrant init 初始化配置vagrantfile

vagrant up 启动虚拟机

vagrant ssh ssh登录虚拟机

vagrant suspend 挂起虚拟机

vagrant reload 重启虚拟机

vagrant halt 关闭虚拟机

vagrant status 查看虚拟机状态

vagrant destroy 删除虚拟机

vagrant provision  更新 Homestead.yaml 文件夹后,让新的配置生效

2.登录mysql 密码为secret (查看mysql版本是否为自己想要的)

mysql -u homestead -p

3.查看php版本、nginx版本

php -v

nginx -v

最无奈的一点,我的亲身经历,一切都是好好的,就是安装不上kylekatarnls/update-helper ,或者说有一定几率安装成功,感觉这一点太坑了。有时候vagrant ssh的时候需要登录密码。。。这些小问题,也是无奈了

你可能感兴趣的:(homestead,laravel,homestead)