搭建环境从来都是阻挡一门新技能的最致命的硬伤,为了这个环境,我又是花费了半天的时间,各种问题层出不穷,下面基于网上的一些教程(我看到的都多少有些问题

开始的时候是在实验楼这个平台上开始学习的,不过 这个平台对于入门还真的是很好的,不过后期因为结合项目还有一些权限问题就不够了,入门推荐实验楼(怎么和打广告一样啊

一. 环境

Laravel 对环境有一定的要求:

PHP >= 5.5.9

OpenSSL PHP Extension

PDO PHP Extension

Mbstring PHP Extension

Tokenizer PHP Extension

二. 搭建laravel的辅助平台

1.   Homestead

说到环境,就不得不说 Homestead,Homestead 是 Laravel 官方预封装的一套开发环境。在Laravel 的开发中,强烈建议使用 Homestead,不论是一个人开发项目,还是团队开发。

2.   VirtualBox

想了解 Homestead 是什么,首先要介绍一下 VirtualBox 和 Vagrant。

VitrualBox 是一款非常强大的免费虚拟机软件,使用者可以在 VitrualBox 上安装并运行 Linux、Windows、Mac OS X 等操作系统,类似的软件还有 VMware 等,对虚拟机不熟悉的小伙伴可以稍微补习一下相关知识,这里不多做介绍。

3.   Vagrant

接下来介绍 Vagrant,有过开发经验的同学可能会有这样的经历,每次开始一个新的项目,必然要先搭建开发环境,不同的开发者可能习惯使用不同的系统,有人用 windows,有人用 mac,有人用 linux,在搭建环境的过程中又有可能会遇到各种 BUG 各种坑,代码还没开始写,搭环境就先用掉几天时间..很是头疼,于是,为了解决这个问题,Vagrant 应运而生...

4.   关系

Vagrant 是一个用于创建和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。

Vagrant 可以将一整套虚拟环境封装在一个box 内,这样只要所有人都使用这个 box,大家的开发环境就实现统一了!而 Homestead 就是这样一个 Laravel 官方预装的适合 Laravel 开发的 Vagrant box 。

Homestead 可以在 Windows、Mac 或 Linux 系统上面运行,里面包含了 NginxWeb 服务器、PHP 5.6、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时所需要用到的各种软件。

附注: 如果你是 Windows 用户,你可能需要启用硬件虚拟化(VT-x)。这通常需要通过 BIOS 来启用它。

Homestead 内置软件列表:

Ubuntu 14.04

Node(附带了PM2、Bower、Grunt、 Gulp)

Git

HHVM

PHP 5.6 / 7.0

Postgres

MySQL

Nginx

Sqlite3

Xdebug

Composer

Redis

Memcached(仅限 PHP 5.x)

Beanstalkd

这里提到了很多的专有名词,你不一定非要弄懂每个是什么意思,可以在以后的实践和摸索中慢慢的渗透和学习!

三. Homestead 安装

  • VirtualBox 安装
  • Vagrant 安装
  • 添加 Homestead box 到 vagrant
  • 安装 Homestead
  • 配置 Homestead.yaml 文件

1.VirtualBox 安装

访问VirtualBox 官网,下载当前操作系统相对应的安装包。

下载完成后,双击打开按照提示完成安装即可。

2.Vagrant 安装

访问Vagrant 官网,下载当前操作系统相对应的安装包。

下载完成后,双击打开按照提示完成安装即可。

3.添加 Homestead box 到 vagrant

首先打开命令行

注意:Windows 用户请不要使用系统自带的命令行,可以使用 cmder 或 Git 的 Git-bash。

进入 ~ 目录(该目录在 C:\Users\你的计算机用户名)

cd ~

输入添加 Homestead box 的指令:

vagrantbox add laravel/homestead

如果上面的命令运行失败,代表你使用的可能是旧版的 Vagrant,需要在命令行后补上下载包的完整 URL:

vagrantbox add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

如果你的下载安装正常,那么直接从这里跳转到步骤4就好了!!

这里注意了,不少教程都这么写,但是往往是不翻墙是不行的,所以还是需要解决这个问题,这时只能通过手动来添加 box 了。

手动添加方式:

  • 选择一 : 当你使用官方下载命令时,你的终端会显示这个文件的源地址复制,然后按ctrl +c退出,然后用的喜欢的下载软件下载.
  • 选择二 : phphub上的virtualbox.box

这里我选择了第一种方式,用了一个lantern,很快的,每秒3M,没几分钟就把900+M的文件下载完了!

现在我假设你已经拥有这个文件,现在来用我们的方法添加virtualbox.box .
打开你的ide(代码编译器) ,一般为 Sublime Text 和 Atom ,为何要提编译器呢 , 因为下面的步骤可能会需要其中一个的编译器 , 创建一个名为a.json的文件 , 输入以下内容 :arrow_down:

  1. {
  2. "name":"laravel/homestead",
  3. "versions":
  4. [
  5. {
  6. "version": "0.5.0", //这里一定要修改版本号!!!在上面的那个路径里面有,我的是3.0.0 不改后面一定会报错的!!!如下图
  7. "providers": [
  8. {
  9. "name":"virtualbox",
  10. "url":"D:/box/virtualbox.box" //你下载的virtualbox.box在电脑系统上的位置
  11. }
  12. ]
  13. }
  14. ]
  15. }

打开的 IDE (编译器) 先不要保存,点击开始菜单或 win 快捷键 , 在搜索栏处输入你的terminal ( 终端 ), 点击鼠标右键以管理员身份运行,一般会跳转到 :

C:\Users\windows的账户名>

然后回到 IDE (编译器) 保文件到C:\Users\windows的账户名这个目录下 , 并且命名为a.jso

  1. C:\Users\windows的账户名>vagrant box add a.json
  2. 会出现:
  3. ==>box: Loading metadata for box 'a.json'
  4.  
  5. box: URL:file://C:/Users/windows的账户名/a.json
  6.  
  7. ==>box: Adding box 'laravel/homestead' (v3.0.0) for provider: virtualbox
  8.  
  9. box:Downloading: "D:/box/virtualbox.box" //你下载的virtualbox.box在电脑上的位置
  10.  
  11. box:Progress: 100% (Rate: 129M/s, Estimated time remaining: --:--:--)
  12. ==>box: Successfully added box 'laravel/homestead' (v3.0.0) for 'virtualbox'!

4.安装Homestead

添加完 Homestead box 之后还需要进行一些配置来完成 Homestead 的安装。

首先,请确定你的电脑上安装了Git

  • 1)Windows 系统直接下载安装 Git for Windows
  • 2)Mac 用户可通过安装 Xcode 命令行来快速安装 Git:

xcode-select--install

  • 3)Linux 系统使用以下命令快速安装:
  1. sudoyum install git
  2. sudoapt-get install git //Debian Linux

然后,打开命令行,进入~目录

cd ~

通过克隆代码仓库的方式来安装Homestead:

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

克隆完 Homestead 的代码仓库后,会生成一个Homestead文件夹,进入该目录

cd~/Homestead

执行bash init.sh命令来创建Homestead.yaml配置文件,Homestead.yaml文件将会被放置在你的~/.homestead 目录中

bashinit.sh

最后,我们需要用编辑器打开Homestead.yaml文件对 Homestead 进行配置。

编辑器选择:不要用 windows 的记事本作为代码编辑器(这里好像是可以的,不过我没试过),这里推荐一些常用编辑器:

·        轻量编辑器:Atom、Sublime、Notepad++

·        集成开发环境编辑器:PHPstorm

5.设置Homestead.yaml文件

用编辑打开~/.homestead/Homestead.yaml 文件。

Homestead.yaml中的初始代码如下:

---

ip:"192.168.10.10"

memory:2048

cpus:1

provider:virtualbox

authorize:~/.ssh/id_rsa.pub

keys:

- ~/.ssh/id_rsa

folders:

- map: ~/Code

to: /home/vagrant/Code

sites:

- map: homestead.app

to: /home/vagrant/Code/Laravel/public

databases:

- homestead

variables:

- key: APP_ENV

value: local

#blackfire:

#     - id: foo

#       token: bar

#       client-id: foo

#       client-token: bar

#ports:

#     - send: 93000

#       to: 9300

#     - send: 7777

#       to: 777

#       protocol: udp

下面我们对该文件中的代码逐个进行分析配置:

最上面是对虚拟机的 ip,内存,CPU,虚拟机的默认提供者的配置,这里不需要修改。

ip:"192.168.10.10"

memory:2048

cpus:1

provider:virtualbox

Homestead 需要用 ssh 方式连接虚拟机,ssh 连接需要设置秘钥,可以看出默认的 key 应该是放在~/.ssh文件夹下的,这里也不需要做修改。

authorize:~/.ssh/id_rsa.pub

keys:

- ~/.ssh/id_rsa

ssh key 需要我们手动生成,如果你之前已经用过ssh连接,这一步可以跳过。

通过运行下面命令来生成 ssh key:

ssh-keygen-t rsa -C "your_email@example.com"

Generatingpublic/private rsa key pair.

出现下面提示信息时,按回车键将 SSH Key 保存到默认位置:

Entera file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

为 SSH Key 设置密码,不输入则默认为空密码:

Enterpassphrase (empty for no passphrase): [Type a passphrase]

Entersame passphrase again: [Type passphrase again]

继续来到 Homestead.yaml 文件的配置,下面的 folders 是设置代码文件位置和虚拟机中共享文件的位置的。

folders:

- map: ~/Code

to: /home/vagrant/Code

比如我的修改成如下设置,我们假设F盘有一个叫做 laravel 的文件夹,专门用来存放 laravel 的项目。

folders:

- map: D:/laravel

to: /home/vagrant/Code

这样设置之后F盘的laravel 文件夹就和 虚拟机中的这个Code 文件夹共享了。

然后是映射域名的配置,如下面sites配置所示,将 homestead.app 映射到一个 Laravel 项目的 public 文件夹下,通过增加这行配置之后,如果你的 Code 文件夹中有一个叫 Laravel 的项目,则可以通过http://homestead.app来访问该
Laravel 应用。

sites:

- map: homestead.app

to: /home/vagrant/Code/Laravel/public

除此之外,你还需要将这个域名添加到 hosts 文件中,Windows
系统下该文件放在 C:\Windows\System32\drivers\etc\hosts,Mac 或 Linux 系统 host 文件放在
/etc/hosts 或者 /private/etc/hosts 文件夹下,添加方式:打开 hosts 文件,在最底下添加如下代码:(这里windows权限的问题,hosts只能在管理员权限下修改,所以在电脑win搜索找记事本,右键管理员权限打开,再打开hosts修改就好了!

192.168.10.10homestead.app

然后是数据库设置:

databases:

- homestead

数据库的设置和 sites 的设置是对应的,比如你有两个项目,对应设置应该像这样:(这里我的都叫homestead)

sites:

- map: myweb.app

to: /home/vagrant/Code/myweb/public

- map: myweb2.app

to: /home/vagrant/Code/myweb2/public

databases:

- myweb

- myweb2

最后,如果你需要定义一些在虚拟机上可以使用的自定义变量,则可以在 variables 中进行定义。

variables:

- key: APP_ENV

value: local

综上,一个设置好的 Homestead.yaml 文件代码示例:

---

ip:"192.168.10.10"

memory:2048

cpus:1

provider:virtualbox

authorize:~/.ssh/id_rsa.pub

keys:

- ~/.ssh/id_rsa

folders:

- map: D:\laravel

to: /home/vagrant/Code

sites:

- map: homestead.app

to: /home/vagrant/Code/laravel/public

- map: myweb.app

to: /home/vagrant/Code/myweb/public

- map: myweb2.app

to: /home/vagrant/Code/myweb2/public

databases:

- homestead

- myweb

- myweb2

variables:

- key: APP_ENV

value: local

#blackfire:

#     - id: foo

#       token: bar

#       client-id: foo

#       client-token: bar

#ports:

#     - send: 93000

#       to: 9300

#     - send: 7777

#       to: 777

#       protocol: udp

6.启动虚拟机

进入 Homestead 目录:

cd~/Homestead

启动虚拟机:

vagrantup

虚拟机启动后,可以通过 ssh 登录虚拟机进行操作:

vagrantssh

除此之外,每次更新 Homestead.yaml 文件夹后,需要执行下面指令让新的配置生效:

vagrantprovision

最后,关闭虚拟机可以执行下面指令:

vagranthalt

四. 装载Laravel源代码

至此,我们的环境就算配置完全了,我们只需要再下载一份 Laravel 源代码就可以进行开发了。

下载源代码,我们使用 composer

Composer 是 PHP 中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
Composer 在 Homestead 中已经安装好了,我们可以直接使用。

首先我们需要启动虚拟机,并登陆虚拟机:

cd~/Homestead

vagrantup

vagrantssh

然后,进入Code目录,并利用 composer 来创建一个 Laravel 应用:

cdCode

composercreate-project laravel/laravel Laravel --prefer-dist "5.1.*"

由于国内网络原因,有时候 Composer 安装会花费很多时间,甚至出错。

这里推荐使用 Packagist / Composer 中国全量镜像 来加速 Composer 的操作。(这里我依旧用lantern解决,速度很快的!!!)

我们只需要修改 Composer 的全局配置文件即可:

composerconfig -g repo.packagist composer https://packagist.phpcomposer.com

如果没有问题的话,打开浏览器,访问http://homestead.app你能看到如下图所示界面,这是 Laravel 为我们生成默认界面。

最后的时候因为homestead.yaml我标记的路径写错了,结果害得找了半天,ORZ!!!

五. 常用链接整理

参考网址 :http://www.jianshu.com/p/bd027d2b8526

https://laravel-china.org/topics/2519/how-to-install-laravel-windows-on-homestead

转载:https://blog.csdn.net/u014665013/article/details/77775911

PHP Laravel系列之环境搭建( VirtualBox+Vagrant+Homestead+系列网址)的更多相关文章

  1. Laravel系列之环境搭建 — VirtualBox+Vagrant+Homestead

    一.为啥需要搭建环境 为了解决环境不统一问题,所以要搭建这么个玩意儿 二.步骤  Laravel对环境有所要求(不使用Homestead情况下),具体参考官网 使用Homestead步骤 1. Hom ...

  2. 1、 小白带你入坑xamarin系列之环境搭建和准备

    重点提示 由于xamarin发展更新很快 目前教程部分内容已经过时 请注意下载最新版本   2018.05.23 www.xamarin.com 1. 小白带你入坑xamarin系列之环境搭建和准备 ...

  3. Atiti. Php Laravel 5.1 环境搭建以及  error 排除

    Atiti. Php Laravel 5.1 环境搭建以及  error 排除 1. php_5.6.11_apache2.41 1.1. Httpd.Conf增加以下配置,添加php支持1 1.2. ...

  4. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...

  5. PHP Laravel 5.4 环境搭建

    1.php运行环境搭建 在win10系统上进行搭建的,使用的是wamp环境  wampserver3_x86_apache2.4.17_mysql5.7.9_php5.6.15.exe,安装包中集成了 ...

  6. Selenium+Python系列 - 开发环境搭建

    一.写在前面 我从未想过自己会写python系列的自动化文章,有些同学会问,那你现在为什么又开始写了? 不止一个人找过我,问我可以写一些Python自动化的文章吗,答案是肯定的. 笔者Java党,整P ...

  7. 使用 robotframework 自动化测试系列 二 -----环境搭建

    环境搭建是测试人员基础,本质都是不难的,按照流程和步骤一步步做,遇到问题不要担心,解决的问题越多,你理解的也就越多. 1. 安装python环境,python现在有python2 和python3.由 ...

  8. Dubbo 源码分析系列之一环境搭建

    环境搭建的步骤有哪些 依赖外部的环境 使用的开发工具 源码的拉取 结构大致介绍 1 依赖的外部环境 安装JDK 安装Git 安装maven 这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外 ...

  9. quick-cocos2d-x 系列之——环境搭建(Mac版)

    quick-cocos2d-x简单介绍 何为quick-cocos2d-x? ?   简单一句话:quick-cocos2d-x是採用lua语言,通过tolua++工具对cocos2d-x进一步封装, ...

随机推荐

  1. 爬虫的终极形态:nightmare

    爬虫的终极形态:nightmare nightmare 是一个基于 electron 的自动化库(意思是说它自带浏览器),用于实现爬虫或自动化测试.相较于传统的爬虫框架(scrapy/pyspider ...

  2. 【DM642】H.264源代码在DM642上的移植

    TI公司提供了用于C语言开发的CCS(Code Composer Studio),该平台包括了优化的ANSI编译器,使之可以使用C语言开发DSP程序.这种方法不仅使DSP开发的速度大大加快,而且DSP ...

  3. jquery同级遍历

    siblings() 返回被选元素的所有同胞元素. next() 返回被选元素的下一个同胞元素. nextAll() 方法返回被选元素的所有跟随的同胞元素. nextUntil() 方法返回介于两个给 ...

  4. Idea SSH框架整合基础代码

    第一步 pom.xml注入jar包依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...

  5. 设置mysql二进制日志过期时间

    ((none)) > show variables like 'expire_logs_days'; +------------------+-------+ | Variable_name | ...

  6. LUOGU P1937 [USACO10MAR]仓配置Barn Allocation

    传送门 解题思路 扫了一眼觉得是贪心+线段树,结果贪心的时候刚开始按区间长度排的序..这还有82分,后来叉了自己,换成按右端点排序过了. 代码 #include<iostream> #in ...

  7. 20190716-T3-奇袭

    我要嗝了 我经过一系列努力,寻找了一系列,各种复杂度的方法. 1>纯暴力 复杂度:$\Theta(N^5)$ 不多解释,上代码: 空间复杂度无法承受,如果考试偏要写这个不妨动态开数组: 例: # ...

  8. 字符串无法分割 split无效: java split()使用“.” “\” "|" "*" "+"要转义

    .是特殊字符 特殊字符需要转义. 改成split(“\\.”)

  9. 二零一七年工作中常用的基本Linux命令记录(Ubuntu)

    Linux命令如下(Ubuntu): 1. apt-get install openssh-server 下载远程工具 2. apt-get install lrzsz 上传下载工具 3. apt-g ...

  10. springMVC的功能和优点

    spring MVC是一个分层的java web开发框架,MVC模式提供了一个分层的体系结构,其中每一层对其它层进行了抽象,具体如下: 1.模型(Model):应用程序所使用的特定域信息的表现形式 2 ...