身为一个 PHP 程序员, 你知道 Homstead 吗?
工欲善其事, 必先利其器
作为一个 PHPer, 搭建配置 PHP 开发环境是每一个 PHP 程序员的基本操作, 而我觉得 Homestead 作为 Laravel 框架官方指定的开发环境, 几乎是 PHPer 最好的选择之一.
先期准备
需要禁用 Windows自带的虚拟机, 禁用Hyper-V的命令.(需要重启)
1
bcdedit /set hypervisorlaunchtype off
确保你的电脑主板支持 (VT-x) 功能, 并且需要开启这个功能 (进入BIOS界面开启, 没有开启的可以根据自己的主板型号百度下开启的方法自行开启)
需要预先下载的三个软件
全部安装完成后打开
git bash
这个应用, 运行以下生成密钥.1
ssh-keygen -t rsa -C "berrx@outlook.com"
从 github 上拉取 Homestead 文件.
1
> git clone https://github.com/laravel/homestead.git
进入刚刚克隆的文件, 双击 init.sh 文件, 此时目录里生成了几个必要的文件, 我们来配置一下
配置虚拟机
使用编辑器或记事本打开 homestead 目录下的 Homestead.yaml 文件. 我们此时还需要修改配置文件来用于配置我们的虚拟机.
添加自己的密钥, 当你在虚拟机中使用 git 等工具时, 你使用的还是本机电脑的密钥.
1
2
3keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub修改映射目录, 虚拟机里的目录会同步到你本地, map 为本地 , to 为虚拟机目录
1
2
3folders:
- map: D:/code
to: /home/vagrant/code配置你的站点地址, map 为站点地址, to 为虚拟机站点目录, type为站点类型, 支持
Thinkphp
,symfony
,yii
等, 具体可以去 \scripts\site-types 目录去看一下1
2
3
4sites:
- map: laravel.test
to: /home/vagrant/code/Laravel/public
type: laravel如果你想在虚拟机初始化时添加一些其他应用, 可以先去手册里找一下, 然后添加到下面
1
2
3
4
5
6features:
- mysql: true
- mariadb: false
- postgresql: false
- ohmyzsh: false
- webdriver: false
修改完配置后, 就可以运行命令创建我们的虚拟机了
1
vagrant up
一般运行完上面的语句会出现下面的这些信息 (随着版本更新内容可能不同), 我们此时主要是要用到信息中的那条链接, 复制这条链接用于本地下载.
1
2
3
4
5
6
7
8Bringing machine 'homestead' up with 'virtualbox' provider...
==> homestead: Box 'laravel/homestead' could not be found. Attempting to find and install...
homestead: Box Provider: virtualbox
homestead: Box Version: >= 11.0.0, < 12.0.0
==> homestead: Loading metadata for box 'laravel/homestead'
homestead: URL: https://vagrantcloud.com/laravel/homestead
==> homestead: Adding box 'laravel/homestead' (v11.1.0) for provider: virtualbox
homestead: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/11.1.0/providers/virtualbox.box
本地安装
首先复制命令中的链接到浏览器或下载工具进行下载, 我的链接是这个 (随着版本更新内容可能不同).
1
https://vagrantcloud.com/laravel/boxes/homestead/versions/11.1.0/providers/virtualbox.box
下载完成后, box文件的文件名大概是这样: 4c526667-0956-45df-92ff-78ba76cb1148, 然后可以把它重命名为 virtualbox.box.
将下载好的文件, 添加到 vagrant 里面.(将我的目录改为自己的目录)
1
vagrant box add laravel/homestead C:/Users/berrx/Downloads/virtualbox.box
找到安装的目录添加一个名为 metadata_url 的文件, 用记事本代开文件, 将这个链接复制到文件里:
c:/users/你的用户名/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead
1
https://atlas.hashicorp.com/laravel/homestead
目录下有一个 0 文件, 将其改为自己的版本号, 我下载的是 11.1.0 这个版本, 所以我需要将文件名修改为 11.1.0
进入虚拟机
进入你的 homestead 文件夹.
1
cd D:/homestead
运行命令创建虚拟机.
1
vagrant up
耐心等待一段事件之后就可以看到虚拟机创建完成 , 完成后运行命令进入虚拟机命令行操作界面
1
vagrant ssh
虚拟机连接成功后, 就可以进行自己的开发了
1
2
3
4Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-72-generic x86_64)
Last login: Thu Apr 22 15:25:05 2021 from 10.0.2.2
常用命令
关机命令
1
vagrant halt
重启虚拟机
1
vagrant reload
重新加载配置
1
vagrant provision
销毁虚拟机
1
vagrant destroy
使用代理
安装插件
1
vagrant plugin install vagrant-proxyconf
在homestead目录下的 Vagrantfile 文件中添加如下代码, 将端口修改为自己的代理端口.
1
2
3
4
5if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.http = "http://10.0.2.2:1080/"
config.proxy.https = "http://10.0.2.2:1080/"
config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
end
运行命令后
1
2
3vagrant provision #应用配置
vagrant reload # 重启
结语
其实我觉得 homestead 最大的缺点就是在于他的安装十分复杂, 而且由于咱们的网络环境不是太好, 有可能因为各种原因导致失败. 这对于一个动辄需要几个小时安装环境的人是一个不小的考验, 但装完成后你会发现 Homestead 的功能是那么的强大, 最终你会觉得一切都是值得的!
最后如果你有无法解决的问题的话, 我给你推荐一个网站, 该站是 Laravel 的一个学习网站, 我许多知识都是从这个网站学到的, 如果你有不太懂的问题也可以从这个网站上面提问.
身为一个 PHP 程序员, 你知道 Homstead 吗?
http://berrx.com/%E5%AE%89%E8%A3%85homestead%E6%95%99%E7%A8%8B/