Mac - laravel使用 -- Homestead环境搭建
步骤1
VirtualBox 5.1<虚拟机>
步骤2
Vagrant <管理虚拟机>
vagrant简介
什么是vagrant?
Vagrant 提供了一种简单,优雅的方式,用来管理和调配虚拟机。【Vagrant是一种用来管理虚拟机的程序软件】
vagrant可以添加一些box,然后管理那些box
<p><strong>Laravel Homestead </strong>是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,你无需在本地安装 PHP ,web 服务器,或其他服务软件。并且不用担心系统被搞乱! Vagrant box 是完全一次性的。如果有什么地方出错了,你也可以在几分钟内销毁并重建 box !</p>
<p><strong>Homestead</strong> 可以运行在 Windows 、 Mac 或 Linux 系统上,并且里面包含了 Nginx Web 服务器、 PHP 7.1 、 MySQL 、 Postgres 、 Redis 、 Memcached 、 Node 、 以及所有利于你开发 laravel 应用的其他程序。</p>
内置软件
<li>Ubuntu 16.04
<li>Git
<li>PHP 7.1
<li>Nginx
<li>MySQL
<li>MariaDB
<li>Sqlite3
<li>Postgres
<li>Composer
<li>Node (With Yarn, Bower, Grunt, and Gulp)
<li>Redis
<li>Memcached
<li>Beanstalkd
<li>Mailhog
<li>ngrok
步骤3
VirtualBox 5.1与Vagrant安装完成后
<p>终端输入:<code>vagrant -v</code></p>,如下图就是安装成功vagrant了</p>
步骤4
添加Homestead Vagrant Box
<pre>
<b>本人这一步卡的最久了,参考官网的一直不成功,后来Google了大半天,然后结合简书上的其他优秀文章,才可以正常添加</b></pre>
执行命令<code>vagrant box add laravel/homestead</code>
如图所示:
可以得到一个下载这个box的地址,https://vagrantcloud.com/laravel/boxes/homestead/versions/2.2.0/providers/virtualbox.box
,去Google浏览器开lantern(VPN)下载这个文件,得到文件后,重新命名如:virtualBox2.20.box
<b>然后通过vagrant加载本地box的方式进行添加laravel/homestead这个box</b>
得到box后,直接加载本地box
<p>
</br>
本地方式导入1
<b>方式 (virtualbox, 0)</b>(这种方式有个问题要注意一下:需要修改版本限制才行)
</p>
<pre>
vagrant box add <#box的名称#> <#下载好的本地box路径#>
如下图:
屏幕快照 2017-07-19 13.19.02.png
通过这种方式添加的会有点问题,这个box list 列表中的版本是0
屏幕快照 2017-07-19 13.20.50.png
假如从GitHub上下载了Homestead这个项目后,执行vagrant up 初始化这个box,就会发现找不到box进行初始化,如下图
屏幕快照 2017-07-19 13.25.49.png
这时候,你需要前往根目录中的git下载下来的那个Homestead目录中,<b>修改scripts目录中的homestead.rb文件中的版本为>=0</b>
<b>
config.vm.box_version = settings["version"] ||= ">= 2.0.0"</br>
</b>
改为
<b>
config.vm.box_version = settings["version"] ||= ">= 0"</br>
</b>
<code>cd ~ </code>
<code>cd Homestead</code>
<code>cd scripts </code>
<code>vim homestead.rb </code>
</pre>
</br>
本地方式导入2
<b>方式 (virtualbox, 2.2.0)</b>在 .box 的同文件夹下创建一个 metadata.json 文件,内容为以下</b>
<pre>
{
"name": "laravel/homestead",
"versions":
[
{
"version": "0.4.4",
"providers": [
{
"name": "virtualbox",
"url": "homestead-virtualbox-2.2.0.box"
}
]
}
]
}
字段说明
version - 可以指定当前盒子导入的版本标示;
url - 支持 绝对文件路径 和 相对文件路径
</pre>
运行以下命令导入:
<pre>vagrant box add metadata.json</pre>
<pre>
运行 list 命令查看是否添加成功:
vagrant box list
截图:
</pre>
到此,laravel需要的laravel/homestead这个vagrant box就安装好了
</br>
步骤5
安装 Homestead(一个github上面的项目,为了能让laravel/homestead这个box提供服务给所有的拉laravel项目)
<pre>
你可以通过手动克隆代码仓库的方式来安装 Homestead。建议将代码仓库克隆至「home」目录中的 Homestead 文件夹,如此一来 Homestead box 就能将主机服务提供给你所有的 Laravel 项目:
cd ~
git clone https://github.com/laravel/homestead.git Homestead
由于 Homestead 的 master
分支并不是稳定分支,你应该检出已经标签过的稳定版本。你可以在 Github Release Page 找到最新的稳定版本。
cd Homestead// 检出所需要的版本...git checkout v5.4.0
一旦你克隆完 Homestead 的代码仓库,即可在 Homestead 目录中运行 bash init.sh
命令 来创建 Homesstead.yaml
配置文件。 Homesstead.yaml
文件会被放置在你的 Homestead 目录中:
// Mac / Linux...bash init.sh
</pre>
步骤6
启动box
下载完成Homestead项目后,cd ~,前往Homestead目录
修改vim Homestead.yaml,把Code修改为自己想要的文件名称LaravelCode
<pre>
folders:
- map: ~/Code
to: /home/vagrant/Code
folders:
- map: ~/LaravelCode
to: /home/vagrant/Code
</br>
然后cd ~,mkdir LaravelCode,创建LaravelCode目录装laravel代码
然后,执行vagrant up,或者 vagrant up --provision
</pre>
在浏览器中输入 http://homestead.app ,
会出现No input file specified.这几个字
<pre><p>反正就是LaravelCode目录下没有对应的Laravel项目,想办法创建laravel工程在这个目录下就好了</p></pre>
这是因为LaravelCode这个目录下没有对应的配置laravel项目,既然没有的话,就去虚拟机中创建一个新的laravel项目,名称与Homestead.yaml中的配置一样。下载好之后,就可以在浏览器中输入:http://homestead.app
<pre>
如果没有,出现这个,就是去/etc目录下编辑hosts文件,添加一个站点
192.168.10.10 homestead.app
</pre>
步骤7
box启动后,在~/Homestead目录先,
执行,进入虚拟机利用虚拟机中
<pre>vagrant ssh </pre>
屏幕快照 2017-07-19 15.30.29.png
进入虚拟机后,利用虚拟机中的composer下载创建一个laravel项目
<pre>
通过 laravel new Create-Project
如下截图:
屏幕快照 2017-07-19 15.32.07.png
</pre>
<pre>
或者 composer create-project --prefer-dist laravel/laravel laravelAPP
</pre>
步骤8
修改Homestead.yaml
<pre>
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
</br>
<b>修改为(因为我改了默认的Code文件夹为LaravelCode):</b>
</br>
folders:
- map: ~/LaravelCode
to: /home/vagrant/LaravelCode
sites:
- map: homestead.app
to: /home/vagrant/LaravelCode/LaravelAPP/public
</pre>
修改了修改Homestead.yaml后,需要重新加载配置
<pre>
vagrant ssh 进入虚拟机,
cd LaravelCode
执行“composer config -g repo.packagist composer https://packagist.phpcomposer.com”
创建一个composer.json文件,内容写
</br>
<code>
{ "require": { "monolog/monolog": "1.0.*" }}
</code>
</br>
laravel new LaravelAPP
vagrant reload --provision
</pre>
最终的结果:
屏幕快照 2017-07-19 16.45.54.png参考:
1、http://www.jianshu.com/p/12749ec68abb
2、http://www.jianshu.com/p/1cf3f7857e19
3、https://docs.golaravel.com/docs/5.4/homestead/