常见的几种开发环境
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位
也可到官方网站下载最新版: git官方
安装好进行备用。
2.安装虚拟机管理软件
在你启动 Homestead 环境之前,你必须安装 VirtualBox 6.x,VMWare,Parallels 或 Hyper-V 以及 Vagrant。以上所有软件均针对不同的操作系统提供了易于使用的可视化安装包。
我这里使用的是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 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。
下载地址: 下载地址
大小200多MB
4.安装Homestead box 第一种--在线安装 Homestead Vagrant Box(不推荐)
这样安装下载会非常慢,我安装了好多次都失败了,可以使用第二种本地文件安装方式
vagrant box add laravel/homestead
先打开git,然后打开~目录
然后运行上述命令
然后提示你选择paralles还是virtualbox
选择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
创建 Homestead.yaml 配置文件
./init.bat
如果是本地安装的 homestead.box 版本为0,所以需要修改下面步骤生成的配置文件 /Users/xxxx/Homestead/scripts/homestead.rb 以下内容
config.vm.box_version = settings["version"] ''= ">= 0"
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开发环境搭建内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!
laravel开发环境homestead搭建过程详解
- Author -
神兵小将声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@