1、概述

通过本项目我们将会构建一个简单、清爽、优雅的博客系统,以及维护管理该博客的后台。

本项目源码公开在GitHub上:https://github.com/ChuckHeintzelman/l5beauty,项目作者的博客 LaravelCoding.com 就是基于该博客系统搭建的。

在正式开始之前,我们先安装开发本项目需要安装的一些列软件并设置本地开发环境

2、关于 Laravel Homestead

Laravel 旨在让 PHP 开发变得简单和有趣,为此 Laravel 为开发者提供了打包好的一站式开发环境 —— Laravel Homestead,Homestead 实际上是一个虚拟机,我们使用 Vagrant 管理该虚拟机,并且在该虚拟机底层,我们使用VirtualBox 提供其与主机操作系统之间的交互。

我们可以使用一辆汽车来比喻 Laravel Homestead 的工作原理:Homestead 是这辆车的驾驶座,Vagrant 是车的外部框架(车身),而 VirtualBox 是引擎。一旦 Vagrant 和 VirtualBox 安装好了之后,就不再需要关心它们,所有与虚拟机的交互都是通过 Homestead 来完成。就像是开车的时候,不需要关心车身和引擎,只管坐在驾驶座操作就是了。

需要注意的是 Laravel Homestead 基于 Ubuntu 操作系统,并且为我们预安装了以下必须的软件和 Web 组件:

除此之外,使用 Homestead 的最大好处是可以保证在 Windows、OS X 以及 Linux 系统上具备完全一致的开发环境,免去不同操作系统上软件冲突之忧。

接下来我们逐一安装VirtualBox、Vagrant 和 Laravel Homestead。

3、安装 VirtualBox

安装 Vagrant 之前要求底层安装有用于管理虚拟机的虚拟机软件。如果你已经安装了 VirtualBox、VMWare 或者其它兼容的虚拟机软件可以跳过这一步。如果你还没有安装过任何虚拟机软件,推荐安装 VirtualBox,它是免费的而且可以运行在任何主流平台(Windows、Mac、Linux等)。

去 VirtualBox 官网下载并安装 VirtualBox 到你的操作系统:https://www.virtualbox.org/wiki/Downloads

下载完成后按照安装指南安装VirtualBox。

4、安装 Vagrant

VirtualBox 安装过之后,接下来需要安装 Vagrant。

同样,去 Vagrant 官网下载并安装 Vagrant 到你的操作系统:

Vagrant 安装完成后,需要重启电脑,然后在命令行通过如下查看 Vagrant 版本验证其是否安装成功:

  1. vagrant --version

接下来的几节我们将分别在Windows、Linux及Mac操作系统中配置本地开发环境。

基于 Laravel 开发博客应用系列 —— 项目必备软件安装的更多相关文章

  1. 基于 Laravel 开发博客应用系列 —— 设置 Windows 本地开发环境

    1.安装原生PHP 下载/解压 PHP 到 PHP 下载页下载最新版本的 PHP(如果使用 Laravel 5.1 的话需要 PHP 5.5.9+ 版本),解压下载的zip格式压缩文件到本地目录,比如 ...

  2. 基于 Laravel 开发博客应用系列 —— 从测试开始(一):创建项目和PHPUnit

    1.创建博客项目 我们将遵循上一节提到的六步创建一个新 Laravel 5.1 项目的步骤,创建本节要用到的博客项目 —— blog. 首先,在本地主机安装应用骨架: nonfu@ubuntu:~/C ...

  3. 基于Laravel开发博客应用系列 —— 构建博客后台管理系统

    一个完整的博客应用不能没有后台管理系统.所以在本节中我们将继续完善博客应用 —— 开发后台管理系统. 1.创建路由 在上一节十分钟创建博客项目中,已经设置过了 app/Http/routes.php, ...

  4. 基于Laravel开发博客应用系列 —— 使用Bower+Gulp集成前端资源

    本节我们将讨论如何将前端资源集成到项目中,包括前端资源的发布和引入.本项目将使用 Bower 和 Gulp 下载和集成jQuery.Bootstrap.Font Awesome 以及 DataTabl ...

  5. 基于Laravel开发博客应用系列 —— 十分钟搭建博客系统

    1.创建文章数据表及其模型(0:00~2:30) 我们已经在上一节中为博客项目完成了大部分准备工作,现在首先要做的就是为这个项目创建一个新的文章表 posts及该表对应的模型类 Post,使用如下Ar ...

  6. 基于 Laravel 开发博客应用系列 —— Homestead 和 Laravel 安装器

    1.Homestead 从主机操作系统的控制台中(Windows 中被称作命令提示符,Linux 中被称作终端),你可以轻松通过不带参数的homestead 命令查看所有有效的 Homestead 命 ...

  7. 基于 Laravel 开发博客应用系列 —— 设置 Linux/Mac 本地开发环境

    1.不同 Linux 发行版本的区别 不同的 Linux 发行版本之间有一些细微区别,尤其是包管理器:CentOS 和 Fedora 使用 yum 作为包管理器,而Ubuntu 使用  apt,在 O ...

  8. 基于 Laravel 开发博客应用系列 —— 从测试开始(二):使用Gulp实现自动化测试

    3.使用 Gulp 进行 TDD(测试驱动开发) Gulp 是一个使用 JavaScript 编写的自动化构建工具.用于对前端通用任务(如最小化.压缩.编译)进行自动构建.Gulp 还可以用来监控源代 ...

  9. 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 ... 基于. ...

随机推荐

  1. spring boot使用自定义配置的线程池执行Async异步任务

    一.增加配置属性类 package com.chhliu.springboot.async.configuration; import org.springframework.boot.context ...

  2. 图片src拼接后台返回ID

    本文地址:http://www.cnblogs.com/veinyin/p/8507403.html  在学习 CSS 时只了解了给固定地址,但是如果给的是一个需要拼接的地址就蒙了,以下是基于 Vue ...

  3. 训练赛第二场C题 zoj 2339 Hyperhuffman

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2339 解题报告:题目太长了,比赛的时候根本看不懂,完了之后问了什 ...

  4. 20165227朱越 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 Linux的安装 虚拟机的安装远没有想象中的那样容易,下载还没有出现什么问题,当我安装的时候,第一个问题出现在创建虚拟机时选择安装的虚拟机版本和类型的时候的错误 当时 ...

  5. 【Java基础】JAVA不可变类(immutable)机制与String的不可变性

    一.不可变类简介 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值.如JDK内部自带的很多不可变类:Interger.Long和String(8种基本数据类型的包装类和S ...

  6. javade多任务处理之Executors框架(线程池)实现的内置几种方式与两种基本自定义方式

    一 Executors框架(线程池) 主要是解决开发人员进行线程的有效控制,原理可以看jdk源码,主要是由java.uitl.concurrent.ThreadPoolExecutor类实现的,这里只 ...

  7. python学习之argparse模块的使用

    以下内容主要来自:http://wiki.jikexueyuan.com/project/explore-python/Standard-Modules/argparse.html argparse ...

  8. 使用Netcat进行攻击

    https://www.freebuf.com/column/135007.html 在网上找到了一个开启了ftp服务的服务: http://static.vhdong.com/Upload/Temp ...

  9. 教你用DrawLayout 实现Android 侧滑菜单

    现在的APP越来越注重用户体验,百度视频客户端有一个特效还是挺吸引人的,在主界面手指向右滑动,就可以将菜单展示出来,而主界面会被隐藏大部分,但是仍有左侧的一小部分同菜单一起展示.类似的还有天天动听,人 ...

  10. ipad webapp禁止长按选择

    1.禁止长按屏幕弹出对话框并选中文字 /*禁止长按选择文字事件*/ * { -webkit-touch-callout: none; -webkit-user-select: none; -khtml ...