homestead安装tips及问题锦集

以前开发laravel项目时,一直使用的是本身配置的box。最近有时间,因此想体验一下homstead,可是在安装过程当中仍是遇到了一些小问题,因此在此总结一下,也分享给你们。php

准备工做

  • 下载安装virtualbox或者vmware,可是vmware是收费的。html

  • 下载安装vagrantmysql

  • 注意windows系统,须要经过bios来开启硬件虚拟化设备ios

下载homestead盒子

  • 使用vagrant下载盒子laravel

    • 下载homestead盒子,执行vagrant box add laravel/homesteadgit

    • 下载此盒子常常会由于网络缘由而中断,再执行此命令时会出现图片描述github

    • 执行vagrant box add laravel/homestead -c,它会清除以前下载的缓存。sql

  • 使用连接数据库

    • 使用vagrant命令添加box,是不支持断点下载的,因此常常会由于网络缘由断开而致使下载失败。因此,咱们能够经过第三方工具下载。segmentfault

    • 如何得到下载地址呢?执行vagrant box add laravel/homestead后,选择完虚拟服务提供者以后,就会出现连接。可参考途中绿色部分。由于个人电脑已经安装了homestead,因此下面的图是我以其余的盒子为例显示的。
      图片描述

  • 下载别人已经下载好的盒子

    • 当我尝试这个方法时,下载的盒子出现了问题,因此没有成功。若是经过composer下载盒子没有成功,能够参考这篇文章https://phphub.org/topics/2090

    • 这是我经过composer安装的homestead0.4.4版本盒子,已上传至百度云。下载连接及密码连接:http://pan.baidu.com/s/1kVEnT59 密码: vzga

下载完以后的配置

  • 经过克隆homestead仓库来配置homestead使用vagrant添加完box,通常咱们是在初始化以后在相应的vagrantfile中作配置的。克隆homestead仓库是由于它替咱们作了一些工做,让配置部分的工做更简单。接下来,我会以我本地配置的laravel项目为例。

    • 克隆homestead git clone https://github.com/laravel/homestead.git Homestead

    • 进入Homestead目录,执行bash init.sh,生成Homestead.yaml配置文件。

    • 进入~/.homestead目录,便可看到Homestead.yaml配置文件。

    • 分享一下个人Homestead.yaml相关配置, provider表示的是那个vagrant提供者;keys为ssh key路径,若是没有ssh key则须要生成公共秘钥;floders是配置本机与虚拟机中的共享文件夹的;

    ---
       ip: "192.168.10.10"
       memory: 2048
       cpus: 1
       provider: virtualbox
       
       authorize: ~/.ssh/id_rsa.pub
       
       keys:
           - ~/.ssh/id_rsa
       
       folders:
           - map: /Users/yuan/PhpstormProjects
             to: /www
       
       sites:
           - map: learn.laravel.com
             to: /www/laravel/public
       
       databases:
           - laravel
       
       # blackfire:
       #     - id: foo
       #       token: bar
       #       client-id: foo
       #       client-token: bar
       
       # ports:
       #     - send: 50000
       #       to: 5000
       #     - send: 7777
       #       to: 777
       #       protocol: udp
    • 打开hosts文件进行配置本地域名192.168.10.10 learn.laravel.com,便可访问laravel这个项目

    • homestead默认的虚拟机的mysql用户名:root,密码:secret,host:127.0.0.1;若是须要经过ssh连接数据库,ssh host:127.0.0.1,用户名:vagrant,密码:vagrant,ssh port:2201.

    • 目前homestead仓库的分支php-7已经不存在,并且目前homstead仓库都已支持php7.因此不须要再使用这个命令克隆或升级到php7git clone -b php-7 https://github.com/laravel/homestead.git Homestead

  • 使用vagrant传统的方法

    • 建立一个开发目录,例如homestead

    • 进入homstead目录,vagrant init homestead

    • 同时homestead目录中会有vagrantfile文件,参考vagrant文档配置便可

    • 执行vagrant up启动

    • 执行vagrant ssh进入

在homestead中全局安装laravel

  • composer global require "laravel/installer"

  • export PATH="~/.config/composer/vendor/bin:$PATH" 确保 ~/.composer/vendor/bin 在系统路径中

  • laravel new blog

  • 每次从新进入homestead,都要从新执行命令export PATH="~/.config/composer/vendor/bin:$PATH"

  • 可经过echo $PATH打印全局变量对比系统路径变化

  • 至于为何要确保确保 ~/.composer/vendor/bin 在系统路径中,可进入该目录一探究竟

修改Homestead.yaml

  • 今天我尝试修改Homestead.yaml时,再使用vagrant reload从新加载box时出现问题

  • 修改homestead.yaml

  • 差了资料以后发现是我在修改Homestead.yaml这个文件时,使用了tab键,形成了文件的没法读取。因此小伙伴们若是出现了相似的问题,请检查Homestead.yaml文件,是否使用tab键,是否出现拼写错误。

  • 检查完以后,请先执行vagrant provision

  • 若是没有报错,请执行vagrant reload --provision

  • 这是为了从新加载Homestead.yaml,一旦修改这个文件,都请先执行这两行命令

想作一个关于使用homestead的问题锦集,若是有小伙伴出现了本文没有贴出来的问题,欢迎交流,我会添加进来?

参考文章:

相关文章
相关标签/搜索