macos high sierra下通过 homestead 搭建环境 到运行项目

homestead安装过程记录:

公司的技术栈是laravel+homestead+element ui+vue.js

工欲善其事必先利其器。现在记录我花了2天时间:重装macos high sierra系统后开始安装的过程:

1⃣️:下载virtualbox(使用最新版)

2⃣️:下载vagrant(最好用最新的,这2个软件都是直接下载下来直接进行安装,如果git没有安装的话会提示我们安装)。

3⃣️:接下来我们就装box,也就是容器了,可以理解成一个集成了各种适合laravel的运行条件的环境。

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

1:安装 Homestead Vagrant 盒子

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

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

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

扫描二维码关注公众号,回复: 357621 查看本文章

首先下载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 提供者: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/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 [email protected]

eval "$(ssh-agent -s)"

ssh-add -K ~/.ssh/id_rsa


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

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


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


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


猜你喜欢

转载自blog.csdn.net/qq_27295403/article/details/80253160