MENU

Vagrant+Hyper-V搭建PHP开发环境

November 27, 2021 • PHP

agMkV.png

准备工作

需要一款windows上的bash工具,比如git-scm

安装hyper-v

hyper-v的安装方式有多种,这里分别介绍通过命令方式以及通过控制面板操作方式。

使用 PowerShell 启用 Hyper-V

  1. 以管理员身份打开 PowerShell 控制台。
  2. 运行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

如果无法找到此命令,请确保你以管理员身份运行 PowerShell。安装完成后,请重启。

通过“设置”启用 Hyper-V 角色

  1. 打开控制面板并选择“程序和功能”。
  2. 选择“启用或关闭 Windows 功能”。
  3. 选择“Hyper-V”,然后单击“确定”。

安装完成后,系统会提示你重新启动计算机。

agJH8.png

配置虚拟交换机

由于默认的hyper-v虚拟网络交换机每次启动都会随机获得一个ip,那么这样以后不方便我们进行开发及绑定本地域名进行访问。所以我们自己新增一个桥接的虚拟网络。

  1. 打开Hyper-v管理器,然后点击最右侧的‘虚拟交换机管理器’
  2. 点击‘新建虚拟网络交换机’->选择‘外部’->‘创建虚拟交换机’按钮
  3. 名称可以使用External Switch,然后选择对应的网卡。(如果是WIFI上网那么当点击确定按钮后我们需要到控制面板\所有控制面板项\网络连接界面去快速的禁用一下网线网卡,然后在启用)

agDfv.png

agHVX.png

安装vagrant

首先通过vagrant官网下载对应平台的vagrant安装程序,完成后直接无脑双击下一步安装。安装完成后会提示重启电脑。重启后打开PowerShell输入vagrant如果出现如下提示证明安装成功

agay8.png

下载Homestead运行脚本

打开git-scm命令行工具,输入:

git clone https://github.com/laravel/homestead.git ~/Homestead
cd Homestead
git checkout release #切换到稳定版本

随后继续执行bash init.sh进行初始化。不出意外,你将在Homestead目录下看见Vagrantfile文件以及Homestead.yaml文件。

ag6xT.png

配置Homestead.yaml

---
#ip: "192.168.56.56" #hyperv默认从dhcp获取ip
memory: 2048
cpus: 2
provider: hyperv #服务载体修改为hyperv

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: E:\workspace\code
      to: /home/vagrant/code
    - map: E:\workspace\go
      to: /home/vagrant/go
      type: "smb"
      smb_username: lepig
      smb_password: l
sites:
    - map: homestead.test
      to: /home/vagrant/code/homestead/public
      php: "7.4"
    - map: my.test
      to: /home/vagrant/code/homestead/public

databases:
    - homestead

features:
    - mysql: true
    - mariadb: false
    - postgresql: false
    - ohmyzsh: false
    - webdriver: false

导入box

vagrant box add laravel/homestead 
vagrant box list #查看导入的box

这一步导入过程可能会因为网络问题下载的比较缓慢,如果有条件可以挂梯子加快下载速度。

最终下载完成后box会存放在C:\Users\yourname\.vagrant.d\boxes\下,比如我的:

agNW1.png

metadata_url中的内容为https://vagrantcloud.com/laravel/homestead

启动homestead

当我们输入vagrant up的时候,命令行界面会需要我们确认选择我们上面建立的‘虚拟交换机’网卡:

agU50.png

这时我们选择我们自己所创建的External Switch也就是输入1。继续等待刷屏...

Hyper-v会从当前局域网路由器获取一个桥接的内网IP。(注意观察屏幕)

ago1U.png

Hyper-v默认通过smb方式进行客户机与主机进行文件共享。所以输入Windows的用户名和密码。

其实也可以通过新建一个新的用户,然后将code目录以及Homestead目录权限中加入这个新用户
安装vagrant-hostmanager可以同步更新host文件