共计 3698 个字符,预计需要花费 10 分钟才能阅读完成。
laravel 开发环境 homestead 搭建详解
常见的几种开发环境
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/wi… 是 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
完成以上操作,基本满足开发需求,更多内容,请前往官网自行探求。
原文地址:https://www.wjcms.net/archives/laravel%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83homestead%E6%90%AD%E5%BB%BA%E8%AF%A6%E8%A7%A3