基于Vagrant 和 Homestead快速搭建Laravel开发环境

淡淡的烟草味﹌ 2022-05-27 07:30 333阅读 0赞

详细教程参看:http://laravelacademy.org/post/7658.html

简介

Laravel 为开发者提供了一套完善的重量级本地开发环境 —— Laravel Homestead。

Laravel Homestead 实际是一个打包好各种 Laravel 开发所需软件和工具的 Vagrant 盒子(关于 Vagrant 盒子的释义请参考 Vagrant 官方文档),该盒子为我们提供了一个优秀的开发环境,有了它,我们不再需要在本地环境安装 PHP、Composer、Nginx、MySQL、Memcached、Redis、Node 等其它工具软件,我们也完全不用再担心误操作搞乱操作系统 —— 因为 Vagrant 盒子是一次性的,如果出现错误,可以在数分钟内销毁并重新创建该 Vagrant 盒子!

前期准备

本机环境:Windows

  1. 下载并安装 Virtual Box最新版 - Here
  2. 下载并安装 Vagrant 最新版 - Here
  3. 下载你需要的Homestead box文件 - Here
    // 不然自动安装时那速率异常感人

安装

1.把下载好的Homestead-Box文件放置在你的项目根目录中,如:C:\project
2.在同一个目录新建metadata.json文件(通过这种方式配置可以避免Vagrant无法识别Box文件版本导致执行异常问题)

  1. metadata.json文件如下:
  2. {
  3. "name": "laravel/homestead",
  4. "versions":
  5. [
  6. {
  7. "version": "3.0.0",
  8. "providers": [
  9. {
  10. "name": "virtualbox",
  11. "url": "Homestead-Box.box"
  12. }
  13. ]
  14. }
  15. ]
  16. }

3.添加名称为laravel/homestead的Box:vagrant box add laravel/homestead C:/project/metadata.json
4.vagrant box list查看是否添加成功
5.安装Homestead:

  1. cd C:/project
  2. git clone https://github.com/laravel/homestead.git Homestead
  3. cd Homestead
  4. git checkout v6.1.0 #切换到稳定版本

6.初始化:在 Homestead 目录下运行 bash init.sh 命令来创建 Homestead.yaml 配置文件,生成的 Homestead.yaml 配置文件文件位于当前 Homestead 目录

  1. // Mac/Linux...
  2. bash init.sh
  3. // Windows...
  4. init.bat

7.配置 Homestead,具体参考文章顶部连接的教程,设置同步目录和虚拟域名等
8.修改Hosts文件
9.启动vagrant up

安装时遇到的问题

由于本机(Windows)的账户是中文,导致~/目录路径包含中文字符,Vagrant会在执行Vagrant up指令时发生类似如下错误:

  1. D:/HashiCorp/Vagrant/embedded/gems/gems/childprocess-0.5.3/lib/childprocess/wind
  2. ows/process_builder.rb:43:in `join': incompatible character encodings: GBK and UTF-8

上网查了相关资料后,定位到问题后:

  1. 修改本机VAGRANT_HOME环境变量到新的目录路径并把~/.vagrant.d目录移到新目录即可:
  2. 修改VirtualBox的默认虚拟电脑位置

    我修改到了D:\temp目录

    1. setx VAGRANT_HOME “D:/temp/.vagrant.d/“ /M #永久修改环境变量,成功后重启
    2. 打开VirtualBox,全局设定-常规-默认虚拟电脑位置:修改为 D:\temp\VirtualBox VMs
    3. 重新执行 Vagrant up 指令

参看:类似问题

发表评论

表情:
评论列表 (有 0 条评论,333人围观)

还没有评论,来说两句吧...

相关阅读