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 相关文章推荐
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
php中实现获取随机数组列表的自定义函数
Apr 02 PHP
PHP Reflection API详解
May 12 PHP
php如何连接sql server
Oct 16 PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 PHP
PHP实现的简单适配器模式示例
Jun 22 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
PHP重载基础知识回顾
Sep 10 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
PHP的引用详解
2015/02/22 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
浅谈python新式类和旧式类区别
2019/04/26 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
行政人员岗位职责
2013/12/08 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
小摄影师教学反思
2014/04/27 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
企业宣传工作方案
2014/06/02 职场文书
倡议书格式
2014/08/30 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
CSS3实现指纹特效代码
2022/03/17 HTML / CSS