为了解决环境不统一问题,因此要搭建这么个玩意儿php
Laravel对环境有所要求(不使用Homestead状况下),具体参考官网laravel
使用Homestead步骤git
摘要:github
Laravel 致力于让整个 PHP 开发体验变得愉快, 包括你的本地开发环境。 Vagrant 提供了一种简单,优雅的方式来管理和配置虚拟机。 Laravel 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 应用程序所须要的东西。——摘自后盾人向军大叔(网站升级中,后期补连接)web
VirtualBox 是 Oracle 公司的开源虚拟机软件。VirtualBox 号称是最强的免费虚拟机软件,它不只功能齐全,并且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac, Windows, Linux 等。数据库
Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant 的主要做用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你经过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只须要同步 Vagrantfile 文件,就能够保证参与项目的每一个人各自的机器上拥有一致的开发环境。 能够在下面网站上搜索须要的vagrant box https://app.vagrantup.com/boxes/searchbash
Homestead是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其余服务器软件。不用担忧会搞乱你的操做系统!Vagrant boxes 是一次性的。若是出现问题,你能够在几分钟内销毁并建立 Box!内置软件:Ubuntu 16.0四、Git、PHP 7.二、PHP 7.一、Nginx、Apache (Optional)、MySQL ……服务器
白话理解:网络
1. vagrant把带有各类各样内置软件的Laravel/Homestead box(还有其余的Homestead box)打包成一个文件夹成为了一个镜像box来进行管理app
2. 再把这个镜像box安装到VirtualBox这个虚拟主机当中,但由于它有可能有不少(vagrant box list来查看),因此须要对其中的具体的某一个进行标识,因此这就须要进行安装Homestead管理脚本,下载好以后呢,进入Homestead文件夹中,里面的Vagrantfile配置项就是决定着你使用的那个homestead box,可是开发做者呢,将是将这个文件引用另一个文件来进行管理的,因此咱们须要进行一步操做(看下面)
Ⅰ 在线安装 Homestead Vagrant Box,这样安装下载会很是慢(我最快网速15M/S反正是中断啊),可使用第二种本地文件安装方式
vagrant box add laravel/homestead
Ⅱ 本地文件安装 先下载 离线 homestead.box ,而后执行
vagrant box add laravel/homestead d:/code/homestead.box
解释:
依次执行箭头所指:
若是这个盒子不想用,能够进行删除(vagrant box remove laravel/homestead) 其余的homestead box 只须要更名字就好啦~
III 安装Homestead管理脚本
1 # clone管理脚本 2 # 注意 切换到稳定版本,不是master哟(目前是7.18.0) 3 git clone https://github.com/laravel/homestead.git ~/Homestead 4 5 # 进入家目录 6 cd Homestead/ 7 8 # 由于master不稳定因此切到稳定tag 9 git checkout v7.18.0 10 11 # 建立 Homestead.yaml 配置文件(也就是Vagrantfile引用的文件),因此修改这个文件便可 12 ./init.bat 13 14 # 若是是本地安装的 homestead.box 则它的版本为0,因此须要修改下面步骤生成的配置文件 ~Homestead/scripts/homestead.rb 如下内容,否则的话启动homestead的时候会进行更新操做 15 config.vm.box_version = settings["version"] ||= ">= 0"
Ⅳ SSH秘钥登录(把镜像box安装到VirtualBox后,不免要登录到操做系统当中,因此须要这一步)
第一步:修改 Homestead.yaml 文件
keys: - ~/.ssh/id_rsa - ~/.ssh/id_rsa.pub
注意:进入cd .ssh/后这个文件夹中没有id_rsa(私钥) id_rsa.pub(公钥)这两个文件要进行下一步操做
(第二步)执行 ssh-keygen -t rsa -C "XXX@qq.com"(替换本身的邮箱),而后一路回车便可(中间有步骤让设置密码,由于是本地开发不必设置,因此一路回车)
V 文件夹同步配置(咱们不可能每次须要进入虚拟机来进行代码的书写,因此须要将本机和虚拟机进行链接来进行代码书写)
1 # map: 本机文件夹路径 2 # to: 推送到的虚拟主机路径 3 # 这个过程是双向的 4 # ~表明家目录(个人电脑是c:/Users/Dumpling) 5 folders: 6 - map: ~/code 7 to: /home/vagrant/code
VI vagrant命令(此时须要进入Homestead/文件夹)并测试文件同步
启动虚拟机 —— vagrant up(由于在Homestead.yaml文件中的provider: virtualbox因此会安装虚拟机会安装到这个里面)
1 #启动 若是加上 --provision 选项那么添加的新站点会发布到虚拟机上。 2 cd ~/Homestead && vagrant up 3 4 #关闭 5 vagrant halt 6 7 #经过 SSH 登陆 vagrant(须要先启动 vagrant) 8 vagrant ssh 9 10 #查看目前安装的box列表 11 vagrant box list 12 13 #删除box镜像 14 vagrant box remove laravel/homestead 15 16 #查看当前 Homestead 虚拟机的状态。 17 vagrant status
进入虚拟机 —— vagrant ssh(界面以下)
测试文件同步
此时虚拟机的code目录是空的,那么进入到家目录的code中建立一个文件看虚拟机中是否同时生成一个文件
本机建立后,查看虚拟机状况以下
同步成功
VII 使用域名访问到homestead虚拟主机
控制域名的地方在 Homestead.yaml文件中
1 # map:域名 2 # to:域名指向的目录是虚拟机中的这个位置 3 sites: 4 - map: homestead.test 5 to: /home/vagrant/code/public
记得修改本机hosts文件哟(请按照本身的本本自行百度)
Ⅷ homestead连接数据库
就只有端口不同而已~
要从主机的数据库客户端链接到 MySQL,就链接到 127.0.0.1和端口 33060 (MySQL) 。帐号密码分别是 homestead/secret。
PHP代码链接(虚拟机中链接)端口为 3306
Ⅸ 全局命令
Mac/Linux:
若是iTems没有使用风格包zshrc的话,就在家目录下建立bash_profile文件,若有有的话修改修改zshrc文件
# 其实就是建立一个函数把进入Homestead/文件夹的操做,以及vagrant命令进行告终合 # 函数名能够修改成本身的,我这里是为了方便记忆和区分 function homestead(){ ( cd ~/Homestead && vagrant $* ) }
Windows:同上(我反正按照中文手册的操做是不行的~)
至此呢,有关于homestead的配置就完成啦~ 若是有任何不足,请予以指出。
最后呢 感谢一下后盾网~ 贼拉好的PHP学习,你们能够去看看哟
谢谢观赏~