mac下通过 homestead 搭建laravel环境 到运行项目

前言:公司的技术栈是laravel+homestead+element ui+vue.js.工欲善其事必先利其器。现在记录我花了1天时间:重装macos high sierra系统后开始安装的过程

在开始安装前,我们应该:

  • 下载virtualbox(使用最新版)
  • 下载vagrant(最好用最新的,这2个软件都是直接下载下来直接进行安装,如果git没有安装的话会提示我们安装)。
  • 接下来我们就装box,也就是容器了,可以理解成一个集成了各种适合laravel的运行条件的环境。

(1)首先你打开终端(iTerm更佳)输入命令:

1:安装 Homestead Vagrant 盒子

VirtualBox 和 Vagrant 安装好了之后,在终端中使用如下命令将
Homestead Vagrant 盒子 laravel/homesterad 添加到 Vagrant 中。下载该盒子将会花费一些时间,具体时间长短主要取决于你的网络连接速度:

vagrant box add laravel/homestead(远程下载,但是由于各种原因,你可能会下载一部分或者无法下载并且报错ssh erroe等,这时候你只能选择本地去进行添加盒子了),请尝试

—————————本地添加—————————————

首先下载virtualbox.box(网上自己找哦,我自己用的是5.2.0版本的),然后通过访达进入你的~(也是是用户根目录)=>/Users/你的用户名/Downloads下拥有一个json文件(可以用编辑器去生成,可以用sublime text)

metadata.json内容如下(

{

    "name": "laravel/homestead",

    "versions": [{

        "version": "5.2.0",

        "providers": [{

            "name": "virtualbox",

            "url": "/Users/lidongbin/Downloads/virtualbox.box”//这是你放virtualbox.box的地方。

        }]

    }]

}

)

,然后再cd ~/Downloads,输入命令:

vagrant box add metadata.json。执行成功。盒子添加成功。

—————————————————————————————

2:安装 Homestead

你可以通过克隆仓库代码来实现 Homestead 安装。将仓库克隆到用户目录下的 Homestead 目录,这样 Homestead 盒子就可以作为所有其他 Laravel 项目的主机:

cd ~

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

 

克隆完成后,你需要检查 Homestead 的版本标签,因为 master 分支不会总是稳定版本,你可以在 GitHub Release Page 查找到最新稳定版本然后在本地将其检出:

cd Homestead

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

// Mac/Linux...

bash init.sh

 

// Windows...

init.bat

 

配置 Homestead

设置 Provider

Homestead.yaml 文件中的 provider 键表示使用哪个 Vagrant 提供者:virtualbox、vmware_fushion、 vmware_workstation、parallels 或 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/Laravel/public

如果你是在 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

 

3:启动 Vagrant 盒子

      配置好 Homestead.yaml 文件后,在 Homestead 目录下运行 vagrant up 命令,Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点,初次启动需要花费一点时间进行初始化:

     启动之后,就可以在浏览器中通过 http://homestead.test 访问 Laravel 应用了(前提是 Web 目录下已经部署 Laravel 应用代码), 在这里我遇到了一个问题,提示我:Check your Homestead.yaml file, the path to your private key does not exist.意思是说我没有设置ssh key。

那我们就去生成咯

分成三个命令:

ssh-keygen -t rsa -b 4096 -C ldb@wunsun.com

eval "$(ssh-agent -s)"

ssh-add -K ~/.ssh/id_rsa

 

依次输入(ldb@wunsun.com是我的git账号也是我的邮箱,请输入你自己的,有需要输入password的时候直接回车就好了),解决。

要登录到该虚拟机,使用 vagrant ssh 命令;关闭该虚拟机,可以使用 vagrant halt 命令;销毁该虚拟机,可以使用 vagrant destroy --force 命令。

 

由于时间有限,我整理的有点乱,希望对大家有用。

 

借鉴:大部分的细节请到http://laravelacademy.org/post/8671.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值