在Mac上下载Vagrant并使用Homestead

很多Laravel开发者困惑于PHP项目本地和服务端环境不统一,导致一系列的问题。解决这种问题目前的最佳实践有Docker和Vagrant两种。对于Laravel项目,Laravel-China社区的大佬们推荐使用Homestead工具进行开发,本文主要讲解该工具在MacOS的安装和基本使用。

  • 在centos7服务器环境中安装使用教程请访问另一篇文章:在CentOS7上下载Vagrant并使用Homestead。

  • 首先,homestead是基于vagrant的,vagrant是基于virtualBox的。也就是说,我们第一步需要下载virtualBoxvagrant两个软件。下载速度可能有点慢,尽量都使用最新版,如果两个软件版本相差太大,可能会导致homestead无法使用。官网下载地址:

    • VirtualBox下载地址。
    • Vagrant下载地址。

友情提示:linux服务端下载建议使用wget命令,不要本地下载后使用ftp上传!!!

  • 终端命令行执行vagrant -v用来确定是否正确安装vagrantvirtualBox,如图:

    • image.png
  • box是vagrant管理的一个个容器,现在我们需要下载一个名为homestead的box。使用命令vagrant box add laravel/homestead,安装过程需要选择你本地使用的虚拟机。如图:

    • 在Mac上下载Vagrant并使用Homestead_第1张图片
      image.png
  • 上面的操作你也可以使用Vagrantfile来完成:在终端执行vagrant init laravel/homesteadvagrant up即可。

  • 下载速度太慢的话,可以将图片中的地址复制到迅雷中下载,然后在同级目录中使用vagrant box add homestead homestead.box命令添加本地box。homestead为自定义名称,homestead.box为本地box名称。

  • 你也可以在 http://app.vagrantup.com手动下载合适的版本。

  • 不要再问下载速度慢的问题,谢谢。

  • 下面是box常用命令:

vagrant box list   列出本地所有box
vagrant box remove boxName    删除某个box

  • 然后安装好composer和git,配置好git信息这点就不解释了,终端执行命令git --version && composer --version查看是否安装成功。
查看`composer`当前使用仓库源`composer config -g repo`。

修改`composer`默认仓库为使用`composer config -g repositories.packagist composer http://packagist.phpcomposer.com`。
  • 如图,新建项目失败,这是因为国内源使用http协议,composer官方于2018年已经要求使用https。打开composer全局配置文件config.json,该文件位于~/.composer/目录下。在config中加入"secure-http": false即可。

  • 查看composer下载的laravel版本可以使用cat laravel/composer.json

  • 进入项目目录试试能否运行该框架。cd laravel && php artisan serve,访问网页成功。

    在Mac上下载Vagrant并使用Homestead_第2张图片
    image.png

  • 使用git下载homestead到用户家目录:cd && git clone https://github.com/laravel/homestead.git

  • 进入目录生成homestead.yaml配置文件,执行cd ~/homestead && bash init.sh。windows用户执行init.bat。接下来修改这个homestead配置文件。

  • 启动vagrant,在homestead/目录下执行vagrant up,你可能会碰到这个问题:Check your Homestead.yaml file, the path to your private key does not exist。这说明你电脑没有生成ssh密钥,要生成密钥,前提是你电脑安装了git,安装后在Git安装目录下有一个ssh-keygen文件,执行这个文件就可以。你也可以执行下面的代码。

ssh-keygen -t rsa -b 4096 -C "[email protected]"
eval "$(ssh-agent -s)"
ssh-add -K ~/.ssh/id_rsa
  • 点击访问:安装常见错误。

  • 现在我们使用vagrant status查看box状态,如果是running则使用vagrant ssh登陆到box容器中。如果你没有正确设置公钥和私钥,此时会被要求输入密码(密码为vagrant)。登陆进去后的数据库密码为secret

  • 如果你不想到homestead/目录下再进入box容器,也可以在任何目录下使用ssh [email protected] -p 2222进入。注意一下物理主机与虚拟容器之间的端口映射。

SSH: 2222       →   Forwards To 22
HTTP: 8000      →   Forwards To 80
HTTPS: 44300    →   Forwards To 443
MySQL: 33060    →   Forwards To 3306
Postgres: 54320 →   Forwards To 5432
  • 此时可以访问http://homestead.test测试发现这个问题:No input file specified.

    • 在Mac上下载Vagrant并使用Homestead_第3张图片
      image.png
  • 这是因为Nginx站点配置的目录被我手动修改了,我们使用vagrant ssh登陆到服务器,修改sudo vim /etc/nginx/sites-enabled/homestead.app这个文件中的错误目录即可,不用重启nginx。

  • 重新测试访问即可。

    • 在Mac上下载Vagrant并使用Homestead_第4张图片
      image.png

你可能感兴趣的:(在Mac上下载Vagrant并使用Homestead)