laravel开发环境homestead搭建过程详解


Posted in PHP onJuly 03, 2020

常见的几种开发环境

Laravel的开发环境其实很多,因为它本身就是PHP,所以只要满足版本的情况下,任何pHP环境他都能跑起来,比如说常见的wamp/mamp/phpstudy等集成化环境都是可以的,但是,为了更好的减少错误,更多的兼容,以后的上线环境,官方推荐了两种开发环境,一种是homestead,另一种是Valet。第1种呢,Windows系统和mac系统,都可以支持,第2种的专门就是为mac系统的用户所提供的,总体感觉两种环境都非常非常好用,今天我们就着重说一下第1种环境的搭建。

homestead环境for windows

Laravel 致力于让整个 PHP 开发体验变的更愉快,包括你的本地开发环境。 Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟主机。

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

Homestead 可以运行在任何 Windows、Mac、或 Linux 系统, 它包括了 Nginx web 服务器,PHP7.4、PHP 7.3、PHP 7.2、PHP 7.1、MySQL、PostgreSQL、Redis、Memcached、Node 以及你开发 Laravel 所需要的东西。

1. 安装git

下载地址:这里附上2.25.1版本下载

git for windows 32位

git for windows 64位

laravel开发环境homestead搭建过程详解

也可到官方网站下载最新版: git官方

安装好进行备用。

2.安装虚拟机管理软件

在你启动 Homestead 环境之前,你必须安装 VirtualBox 6.x,VMWare,Parallels 或 Hyper-V 以及 Vagrant。以上所有软件均针对不同的操作系统提供了易于使用的可视化安装包。

laravel开发环境homestead搭建过程详解

我这里使用的是VirtualBox软件, https://www.virtualbox.org/wiki/Downloads  是 Oracle 公司的开源虚拟机软件。VirtualBox 号称是最强的免费虚拟机软件,它不仅功能齐全,而且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac, Windows, Linux 等。

下载地址: 下载地址

选择window hosts即可下载,大小位100多MB,安装完毕备用。

3. 安装Vagrant(管理虚拟机的工具)

Vagrant by HashiCorp Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。

laravel开发环境homestead搭建过程详解

下载地址: 下载地址

大小200多MB

4.安装Homestead box 第一种--在线安装 Homestead Vagrant Box(不推荐)

这样安装下载会非常慢,我安装了好多次都失败了,可以使用第二种本地文件安装方式

vagrant box add laravel/homestead

先打开git,然后打开~目录

然后运行上述命令

然后提示你选择paralles还是virtualbox

laravel开发环境homestead搭建过程详解

选择2,然后就会进行在线安装

第二种--本地文件安装(推荐使用)

先下载离线 homestead.box ,大小1.25GB左右,这里附上下载地址:官方下载,官方页面homestead,官方页面,然后执行如下命令

下载地址:下载地址

官方网址: 官方网址

下载完成后放到本地目录,这里我放到g盘homestead目录下。

然后在git中运行命令:

vagrant box add laravel/homestead g:/homestead.box

注意更改路径。

等待安装完毕,显示如上图则已安装成功。

5. 安装 Homestead 管理脚本

首先clone管理脚本

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

laravel开发环境homestead搭建过程详解 

创建 Homestead.yaml 配置文件

./init.bat

如果是本地安装的 homestead.box 版本为0,所以需要修改下面步骤生成的配置文件 /Users/xxxx/Homestead/scripts/homestead.rb 以下内容

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

laravel开发环境homestead搭建过程详解

6.配置同步文件夹

在~/Homestead目录下Homestead.yaml文件进行配置

folders:
 - map: ~/code/code1
  to: /home/vagrant/code1

 - map: ~/code/code2
  to: /home/vagrant/code2

这里就是把本地的文件同步到虚拟机,这样就能把源码放到本地,然后运行虚拟机就能看到效果,非常的方便。

注意:

这里有误区,有的人会直接配置如下:

folders:
 - map: ~/code
  to: /home/vagrant

这样是无法同步成功的。

不能直接同步到vagrant里,要同步到vagrant的子目录中。

7.配置SSH 秘钥登录

用于实现 SSH 免密码登录 修改 Homestead.yaml 文件以下内容:

keys:
 - ~/.ssh/id_rsa
 - ~/.ssh/id_rsa.pub

生成 key

使用命令

ssh-keygen -t rsa -C "xxxxxx@qq.com"
#后面一真按enter键,设置密码

8.连接数据库

homestead 默认已经在虚拟机中为 MySQL 和 PostgreSQL 数据库做好了配置。要从主机的数据库客户端连接到 MySQL 或 PostgreSQL ,应该连接到 127.0.0.1 ,端口 33060 (MySQL) 或 54320 (PostgreSQL)。用户名和密码分别是 homestead / secret 。

注意:只有从本地连接 Homestead 的数据库时才能使用这些非标准的端口。而 Laravel 在虚拟机中 运行时还是应该使用默认的 3306 和 5432 端口进行数据库连接。

##9.配置临时站点(域名)

一旦你的 Homestead 环境已配置并运行,你可以为你的 Laravel 应用添加额外的 Nginx 站点。你可能希望在单个 Homestead 环境运行多个 Laravel 安装。要添加额外的站点,到 Homestead.yaml 文件中添加站点:

sites:
 - map: homestead.test
  to: /home/vagrant/code1/public
 - map: homestead2.test
  to: /home/vagrant/code2/public

这时候,还需要你把本机的hosts文件添加如下两条

192.168.10.10  homestead.test
192.168.10.10  homestead2.test

10.配置全局命令

Git for Windows环境中使用

如果我们想在任何目录都可以执行 vagrant 命令,需要进行以下设置 修改 ~/.bash_profile 文件内容,这种设置只在 git for windows 软件中使用

function homestead() {
 ( cd ~/Homestead && vagrant $* )
}

这样我们就可以使用 homestead up 等方式执行了。

11.常用命令

以下这些都是常用命令,如果已经配置全局,命令,可以不进入homestead文件夹内操作,所有命令vagrant换成homestead即可。

启动

cd ~/Homestead && vagrant up

改动配置,重载配置

vagrant reload --provision

关闭

vagrant halt

通过 SSH 登录 vagrant(需要先启动 vagrant)

vagrant ssh

查看目前安装的box列表

vagrant box list

删除box镜像

vagrant box remove laravel/homestead

删除指定版本

vagrant box remove laravel/homestead --box-version 6.4.0

查看当前 Homestead 虚拟机的状态。

vagrant status

完成以上操作,基本满足开发需求,更多内容,请前往官网自行探求。

到此这篇关于laravel开发环境homestead搭建详解的文章就介绍到这了,更多相关laravel开发环境搭建内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
也谈 PHP 和 MYSQL
Oct 09 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
PHP排序算法类实例
Jun 17 PHP
php实现网站顶踩功能的完整前端代码
Jul 19 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
Oct 22 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
PHP调用全国天气预报数据接口查询天气示例
Feb 20 PHP
PHP与SQL语句写一句话木马总结
Oct 11 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 #PHP
PHP 超级全局变量相关总结
Jun 30 #PHP
详细分析PHP 命名空间(namespace)
Jun 30 #PHP
浅析PHP echo 和 print 语句
Jun 30 #PHP
PHP实现抽奖功能实例代码
Jun 30 #PHP
七种PHP开发环境搭建工具
Jun 28 #PHP
如何在PHP中使用AES加密算法加密数据
Jun 24 #PHP
You might like
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
wxPython实现画图板
2020/08/27 Python
Python实现汇率转换操作
2020/05/03 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
医院护士见习期自我鉴定
2014/04/10 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
机器人瓦力观后感
2015/06/12 职场文书
六一儿童节致辞
2015/07/31 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript