美文网首页PHP经验分享程序员技术栈程序员
在Mac上下载Vagrant并使用Homestead

在Mac上下载Vagrant并使用Homestead

作者: 小小奶狗 | 来源:发表于2018-04-18 11:43 被阅读259次

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

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

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

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

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

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

      • 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,访问网页成功。

      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 "your_email@example.com"
    eval "$(ssh-agent -s)"
    ssh-add -K ~/.ssh/id_rsa
    
    • 点击访问:安装常见错误

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

    • 如果你不想到homestead/目录下再进入box容器,也可以在任何目录下使用ssh vagrant@127.0.0.1 -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.

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

    • 重新测试访问即可。

      • image.png

    相关文章

      网友评论

      • 梁小生0101:我草,这头像……这不是学弟嘛……
        小小奶狗:@恚戕夢荛 记得记得,我看了您的毕业答辩呢
        梁小生0101:@琳的小奶狗 啊哈哈,你不记得了……
        小小奶狗:@恚戕夢荛 啊,碰到学长啦?
      • 阿拉侬:你好,我总是安装不成功,报错得原因还是ip不正确
        阿拉侬:@阿拉侬 就是yaml配置的是192.168.10.10 实际上vm分配了别的
        小小奶狗:@阿拉侬 报错提示是啥呢?除了homestead配置文件中的ip,你电脑的hosts文件也要添加这个映射哦
      • IT人故事会:太感谢了,学了好多东西!
        小小奶狗:@IT人故事会 谢谢支持,我会继续创作分享更优秀的文章的

      本文标题:在Mac上下载Vagrant并使用Homestead

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