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

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

一. 环境

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. Web充斥着存在漏洞的过期JavaScript库

    虽然使用第三方软件库通常会降低开发的时间,但同时也会增加网站暴露出的攻击表面,对此我们应有充分的认识.因此需要保持第三方软件库的最新版本依赖,以便从安全更新中获益.即便如此,一份近期研究表明,在Ale ...

  2. flex 手册摘要

    个人学习 摘抄翻译 http://www.cs.princeton.edu/~appel/modern/c/software/flex/flex.html#SEC1 程序的格式 分成显示的三部分 由% ...

  3. IOException parsing XML document from ServletContext resource

    错误是我们学习的机会,不要错过明白明这个错误原因的机会,那么我们就可以更加深刻得理解这个问题. 在启动springmvc的程序去访问的时候,报IO异常,一般情况下IO异常就是文件找不到. 详细错误如下 ...

  4. jquery ajax跨越

    JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问 1.jsonp之$.ajax js $.ajax({ ...

  5. 前端(jQuery)(5)-- jQuery AJAX异步访问和加载片段

    异步访问 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  6. spring深入学习(六)-----springmvc

    MVC设计模式 有过一定开发经验的人肯定都知道这个模式,先简单介绍下这种模式,然后再去讨论为啥要这么设计: 传统的web应用中应该主要包括这些组件,不同组件负责不同的模块. 数据实体:POJO 数据层 ...

  7. ES6 新的数据类型Map和Set

    Map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array: var names = ['Michael', 'Bo ...

  8. Linux下安装jboss并设置自启动服务

    一.JDK和JBOSS下载jdk:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...

  9. java图形验证码生成工具类及web页面校验验证码

    最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善. 验证码生成器: import javax.imageio.ImageIO; import java.awt.*; import ja ...

  10. CentOS 7安装与配置Tomcat8

    1.下载安装包并上传服务器 2.解压 tar -zxvf apache-tomcat-8.5.16.tar.gz -C /opt/java 3.启动 cd /opt/java/apache-tomca ...