美文网首页
Laravel开发环境Homestead的搭建

Laravel开发环境Homestead的搭建

作者: 落痕無情 | 来源:发表于2018-08-05 22:54 被阅读0次

    Laravel为我们提供了Homestead重量级的开发环境,本文简单记录一下在Windows系统中的配置流程以及踩过的一些坑。

    搭建开发环境

    首先需要安装 VirtualBox 、Vagrant 和 Git,并且确保本机中已经生成了 SSH Key。

    导入定制版的 Homestead Box 虚拟机盒子

    下载解压后来到盒子的目录下执行:vagrant box add metadata.json

    定制版特点:

    • Composer 加速,配置了 Composer 中国全量镜像 支持;
    • 默认集成 Heroku 工具;
    • 默认集成 Yarn,并为 Yarn 加了淘宝镜像的加速;
    • 使用 CNPM 对 NPM 进行加速。

    下载 Homestead 管理脚本

    git clone https://git.coding.net/summerblue/homestead.git Homestead
    cd ~/Homestead
    git checkout v7.8.0
    bash init.sh
    

    因国内网络限制,定制版本的 Homestead 脚本从国内 coding.net 网站下载,下载速度会比 官方 更快;对脚本进行修改,移除了每一次 provisioncomposer self-update 的卡顿。

    配置 Homestead

    根据情况修改Homestead.yaml里的配置,注意在key选项添加一行公钥:

    keys:
        - ~/.ssh/id_rsa
        - ~/.ssh/id_rsa.pub
    

    不要忘记到 hosts 文件中添加一行Laravel测试域名和虚拟机IP的解析规则。

    如果需要在局域网内来访问虚拟机中的项目,需要增加networks配置项,必须配置同网段的公网ip:

    networks:
        - type: "public_network"   
          ip: "192.168.1.101"     
          bridge: "en1: Wi-Fi (AirPort)"
    

    运行虚拟机

    • 来到Homestead目录,开启虚拟机:vagrant up

    • 如果修改过 Homestead.yaml,则执行:vagrant up --provision

    • 登录进虚拟机:vagrant ssh

    如果虚拟机无法启动,可能是由于Windows没有开启虚拟化技术,到BIOS里面设置一下就好。

    vagrant 常用命令:

    • vagrant box list

    • vagrant box add xxx xxx.box

    • vagrant init

    • vagrant up

    • vagrant halt

    • vagrant reload

    • vagrant ssh

    • vagrant package --output xxx.box

    初始化 Laravel 项目:

    composer create-project laravel/laravel Laravel --prefer-dist "5.5.*"
    

    配置 npm 国内镜像:

    npm config set registry http://registry.npm.taobao.org/
    npm config set sass-binary-site http://npm.taobao.org/mirrors/node-sass
    

    安装依赖:

    npm install --no-bin-links
    

    如果是在Mac系统上开发,无需加参数 --no-bin-links

    常见问题

    以上步骤成功之后 Laravel 项目就可以跑起来了,但是如果采用的是Windows系统,直接在虚拟机中执行 npm install 很可能会报一大堆错误,或者安装成功但编译也会报错,也许是版本不兼容,虚拟机自带Node环境为:

    • node v8.11.2
    • npm v6.1

    解决方法如下:

    1、回退npm的版本到v5.7.1:sudo npm install -g npm@5.7.1

    也许升级node版本也可以,未测试过。

    2、删除 package.json 文件里面的开发依赖项:cross-env

    3、安装:npm install --no-bin-links

    4、全局安装 cross-env:sudo npm install -g cross-env

    5、运行 npm run dev,就可以看到编译成功了!

    相关文章

      网友评论

          本文标题:Laravel开发环境Homestead的搭建

          本文链接:https://www.haomeiwen.com/subject/cdmivftx.html