通过Homestead安装Laravel

自己安装了一篇,第一次接触,确实比较繁琐。记性越来越不好了,为了防止重复造轮子,再次记录过程。

1.环境介绍

操作系统:macOS Sierra

工具:(1)VirtualBox 5.2.10

          (2)Vagrant macOS 64-bit

          (3)Homestead Vagrant 盒子 laravel/homesterad 5.2.0

          (4)Homestead

          (5)Laravel 5.6


2.正式操作

    2.1安装VirtualBox 5.2.10

        传送门

        选择对应的版本,下载安装。

    2.2安装Vagrant

        传送门

        选择本机对应的操作系统,下载安装

    2.3克隆Homestead

        传送门

        命令如下

git clone https://github.com/laravel/homestead.git Homestead
cd Homestead

         初始化

// Mac/Linux...
bash init.sh

// Windows...
init.bat

        正常情况下,这个时候会在Homestead目录下生成Homestead.yaml

        Homestead.yaml是配置文件,配置内容如下:

        Laravel学院传送门

          设置 Provider

Homestead.yaml 文件中的 provider 键表示使用哪个 Vagrant 提供者:virtualboxvmware_fushion、 vmware_workstationparallels 或 hyperv,你可以将其设置为自己选择的提供者,当然对大部分人来说也没得选:

provider: virtualbox

            配置共享文件夹

Homestead.yaml 文件中的 folders 属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹:

folders:
    - map: ~/Development    #本地环境,不要复制我
      to: /home/vagrant/Code    #虚拟机环境,不要复制我

            如果你只是创建了很少的站点,使用一般的映射就够了。不过,随着站点数量的增加,你就会遇到性能问题,尤其是在包含大量文件的低端机器或项目中,性能问题可能会非常明显。如果你不幸遇到了这个问题,可以尝试映射每个项目到各自的 Vagrant 文件夹:

folders:
    - map: ~/code/project1
      to: /home/vagrant/code/project1

    - map: ~/code/project2
      to: /home/vagrant/code/project2

            如果要开启 NFS,只需简单添加一个标识到同步文件夹配置:

folders:
    - map: ~/Development
      to: /home/vagrant/Code
      type: "nfs"

注:使用 NFS 的话,需要考虑安装 vagrant-bindfs 插件。该插件可用于在 Homestead 盒子中为文件和目录维护正确的用户/组权限。

            你还可以通过 options 传递其他 Vagrant 支持的同步文件夹选项:

folders:
    - map: ~/code
      to: /home/vagrant/code
      type: "rsync"
      options:
          rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
          rsync__exclude: ["node_modules"]

            配置 Nginx 站点

            对 Nginx 不熟?没关系!通过 sites 属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml 中默认已经配置了一个示例站点。和共享文件夹一样,你可以配置多个站点:

sites:
    - map: homestead.app
      to: /home/vagrant/Code

            如果你是在 Homestead 盒子启动之后进行了上述修改,需要运行 vagrant reload --provision 更新虚拟机上的 Nginx 配置。

            Hosts文件

            不要忘记把 Nginx 站点配置中的域名添加到本地机器上的 hosts 文件中,该文件会将对本地域名的请求重定向到 Homestead 虚拟机,在 Mac 或 Linux上,该文件位于 /etc/hosts,在 Windows 上,位于 C:\Windows\System32\drivers\etc\hosts,添加方式如下:

192.168.10.10 homestead.test

            确保 IP 地址和你的 Homestead.yaml 文件中列出的一致,一旦你将域名添加到 hosts 文件,就可以在浏览器中通过该域名访问站点了:

http://homestead.test

注:在真正可以访问之前还需要通过 Vagrant 启动虚拟机上的 Homestead 盒子。

    2.4安装laravel/homesterad盒子

        官方是用一句代码搞定的,如下:

vagrant box add laravel/homestead

        我反正搞不定,只能用迅雷大法下载离线包进行安装。5.2.0 版本 传送门

https://app.vagrantup.com/laravel/boxes/homestead/versions/5.2.0/providers/virtualbox.box

        目前(18年5月5日)最新版为6.0.0,如果需要下载最新版,可以将上面的5.2.0,替换成6.0.0。可以使用迅雷下载

        用此方法,需要手动添加,命令如下,~/Downloads/virtualbox.box为目录地址,根据当前环境更改

vagrant box add laravel/homestead ~/Downloads/virtualbox.box

        终端中显示绿色的box:Successfully add box laravel/homestead (v0) for 'virtualbox',就表示成功。可以使用下面的命令查看,如果出现 laravel/homestead (virtualbox , 0)就表示成功。

vagrent box list

        注意:因为是手工添加,肯定会比自动的麻烦。上面添加成功之后,还得有下面的步骤,不能跳过。

        Homestead目录创建metadata.json文件,内容如下

{
    "name": "laravel/homestead",            //盒子名称
    "versions": 
    [
        {
            "version": "5.2.0",             //版本号
            "providers": [
                {
                  "name": "virtualbox",
                  "url": "virtualbox.box"   //盒子所在路径
                }
            ]
        }
    ]
}

        注意:这里,我把virtualbox.box放到了Homestead目录下,生成以上文件后,再当前Homestead目录下,执行

vagrant box add metadata.json

        即可添加带有版本号的盒子,可通过 vagrant box list 查看, 最后通过 vagrant up 即可载入开启虚拟机。

        其它方法传送门

    2.5开启虚拟主机

        执行vagrant up,开启虚拟主机,初次执行时间会有点长。

        注意:(1)如果第二行显示找不到 laravel/homestead ,那么程序会自动调用远端链接进行下载。这说明上面2.4那步加载盒子失败了,请重新尝试加载盒子。这边正常的话是读取本地的盒子,30s算很长了,不要傻等。

                  (2)也有可能提示目录映射不正确,请排查Homestead.yaml文件的配置

        显示下面的信息,并执行完毕后,就表示开启成功。

        homestead-7:Successfully add box laravel/homestead (v5.2.0) for 'virtualbox'!

    2.6安装Laravel

        之前一直很迷惑,上面的步骤到底是干嘛的,我到底有没有安装了Laravel,甚至还去本地环境下载了Laravel用于映射到虚拟机中。。

        解答:上面安装了一个虚拟机,然后配置好了php等一系列环境,然后,进入这个虚拟机,开始下载Laravel,以后都在虚拟机中进行操作,跟本地无关了。

        2.6.1进入虚拟机

vagrant ssh

        2.6.2查看共享目录

            进入上面配置的folder共享目录,没有就创建,正常情况下,映射目录中已和本地目录中一致。

        2.6.3下载Laravel installer

composer global require "laravel/installer"

            这边就能体现出Homestead的优势了,composer,php,git全部都在环境变量中,都是最新版本,不需要自己考虑

        2.6.4新建应用

安装完成后,通过简单的 laravel new 命令即可在当前目录下创建一个新的 Laravel 应用,例如,laravel new blog将会创建一个名为 blog 的新应用,且包含所有 Laravel 依赖。该安装方法比通过 Composer 安装要快很多:

laravel new blog

如果之前已经安装过旧版本的 Laravel 安装器,需要更新后才能安装最新的 Laravel 5.6 框架应用:

composer global update

        2.6.5通过浏览器访问

通过http://homestead.test/blog/public访问Laravel。看到下面的界面,即表示成功


总结:我为了这个Homestead折腾了将近4个小时,包括下载。按照官方文档,用命令行去下载virtualbox真的很难很难。不过当连接上Homestead的时候,感觉时间花的还是挺值的,以后会方便很多。
好啦,Laravel之旅开始了!继续跳坑去了!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章