Laravel学习笔记一-开发环境搭建

laravel学习笔记,从新梳理知识点。php

1、环境配置

一、编辑器选用

  • Atomcss

  • PHPStormhtml

  • SublimeTextlaravel

Atom 是由 GitHub 官方在 2014 年 2 月推出的一款开源的跨平台代码编辑器,这意味着你能够在流行的系统如 OS X、Windows、或者 Linux 上安装和使用 Atom。因为 Atom 的界面优雅、易上手、插件丰富等优势,使得其在发布后受到圈内很多程序员的追捧和赞扬。我平时用的是PHPStorm和Sublime开发,此次,抱着拥抱新鲜事物的态度,这里咱们使用强大的Atom编辑器git

二、开发环境搭建

集成开发环境:VirtualBox+Vagrant+Homestead程序员

  • 安装 VirtualBox(V5.1.4)github

  • 安装 Vagrant (1.9.0)web

  • 安装 Homestead编程

  • 安装 Gitjson

Vagrant 是一个用于建立和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。Vagrant 最强大的地方是在于它在构建虚拟系统时的快捷简便,使开发者能够在短短几分钟内完成一个虚拟系统的删除与构建。

Homestead 是一个基于 Ubuntu 构建的虚拟机,它包含了全部 Laravel 开发时须要用到的东西,你能够很轻松的经过指定的 Laravel 版原本找到相对应版本的 Homestead包并进行安装。

Mac OS X / Linux
在解压目录(lt-homestead-0-6-0-2016122800)下运行如下命令添加 Box:

> vagrant box add metadata.json

clipboard.png

而后安装Homestead
接下来,使用 Git 下载 Homestead:

> cd ~
> git clone https://github.com/laravel/homestead.git Homestead

完成以后咱们须要进入 Homestead 目录,使用 Git 检出咱们须要的 Homestead 版本:

> cd Homestead
> git checkout v3.1.0

用脚本生成 Homestead.yaml 文件:

> bash init.sh

运行完上面命令以后,咱们便可在 ~/.homestead 目录下找到生成的 Homestead.yaml 文件。

查看 Homestead.yaml 文件:

cat ~/.homestead/Homestead.yaml

配置 Homestead
而后对Homestead.yaml 文件进行配置,可使用编辑器打开该文件。

vim ~/.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 来指明本机要映射到 Homestead 虚拟机上的文件夹。
# map 对应的是咱们本机的文件夹,to 对应的是 Homestead 上的文件夹。
folders:
    - map: ~/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

配置 SSH

Homestead 须要一个 SSH Key 来用于与虚拟机进行链接,Homestead 默认假定这个密钥会被放在 ~/.ssh 文件夹下。

咱们首先经过命令查看是否已经有SSH,若是没有则须要生成。

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

SSH Key 须要咱们本身手动生成。若是你以前使用过 Git 并对 SSH Key 进行过配置,那么这一项你能够直接跳过。

咱们能够经过运行下面命令来生成 SSH Key

$ ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.

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

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

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

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

配置网站映射域名

经过映射域名的配置,即可以在页面上经过该域名来访问 Laravel 应用,以下面 sites 配置所示,将 homestead.app 映射到一个 Laravel 项目的 public 文件夹下,经过增长这行配置以后,若是你在 Code 文件夹中有建立一个叫 Laravel 的项目,则能够经过 http://homestead.app 来访问该 Laravel 应用。

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

须要注意的一点是,homestead.app 须要与 hosts 文件的 ip 地址相对应。
修改完Homestead.yaml文件后,须要从新加载配置文件信息才能生效。.

➜  ~ atom ~/.homestead/Homestead.yaml
➜  ~ cd Homestead
➜  Homestead git:(7924ab4) vagrant reload --provision

而后再Hosts配置域名mac的hosts位置: /etc/hosts

192.168.10.10  homestead.app

配置详情请查看 https://laravel-china.org/上的教程。

3.开启Vagrant

cd ~/Homestead && vagrant up

clipboard.png

成功启动后,经过 SSH 来登陆 Homestead:

> vagrant ssh

clipboard.png

最后尝试退出虚拟机,并关闭Vagrant

vagrant@homestead:~$ exit

Homestead git:(7924ab4) vagrant halt

2、建立Laravel应用

一、Composer下载Laravel安装包

vagrant ssh 进入到安装的虚拟开发环境中,而后使用cd Code命令切换到Code目录下,再使用Homestead集成的Composer命令来下载Larvel5.1安装包,因为环境中的Composer使用的是国内镜像Packagist/Composer 中国全量镜像,因此,下载速度会很是快的。

// 切换到Code目录下
vagrant@homestead:~$ cd Code
vagrant@homestead:~/Code$ pwd
/home/vagrant/Code
vagrant@homestead:~/Code$ composer create-project laravel/laravel Laravel --prefer-dist "5.1.*"

clipboard.png

使用composer安装好Laravel后,而后用配置的域名访问页面:
clipboard.png

这里须要说明一点:在虚拟路径/home/vagrant/Code中用composer下载的资源,其实在咱们本地中与之对应的映射路径为~/Code,Homestead 将会把该文件夹下的项目自动映射到本地的Code文件夹上,因此,咱们在本地的编辑器中开发Code文件夹中的代码,在虚拟机的服务器测试本地代码,这样就有了一个统一的环境,也不用担忧在Mac上安装太多的东西搞乱系统,这就是使用虚拟机与Vagrant协同开发的好处。

clipboard.png

二、小试牛刀

修改首页视图文件resources/views/welcome.blade.php,输出本身的信息。

<!DOCTYPE html>
<html>
    <head>
        <title>Laravel</title>

        <link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">

        <style>
            html, body {
                height: 100%;
            }

            body {
                margin: 0;
                padding: 0;
                width: 100%;
                display: table;
                font-weight: 100;
                font-family: 'Lato';
            }

            .container {
                text-align: center;
                display: table-cell;
                vertical-align: middle;
            }

            .content {
                text-align: center;
                display: inline-block;
            }

            .title {
                font-size: 96px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="content">
                <div class="title">Laravel 5, Hey Corwien !</div>
            </div>
        </div>
    </body>
</html>

clipboard.png

3、使用Git管理项目版本

使用git能够对咱们的代码进行版本控制,若是万一误删了代码想回到以前的状况,则能够经过版本控制进行回滚。

一、git 配置

vagrant@homestead:~/Code$ git config --global user.name "Corwien"
vagrant@homestead:~/Code$ git config --global user.email corwien@xxx.com
vagrant@homestead:~/Code$ git config --global push.default simple

--global 选项表明对 Git 进行全局设置。

二、github托管项目

咱们这里将项目推到Github上进行托管,不过先须要配置,咱们须要先生成公钥,再把公钥添加到 GitHub 帐号上。用你的github邮箱须要在本地虚拟环境中生成一个公钥SSH Key,才能够将其Push到github上。

vagrant@homestead:~/Code$ ssh-keygen -t rsa -b 4096 -C "corwien@XXX.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
/home/vagrant/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/vagrant/.ssh/id_rsa.
Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.

接下来将 SSH Key 添加到 ssh-agent 中:

$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa

最后咱们须要将公钥添加到 GitHub 帐号,可参照下面的 GitHub 官方指南完成配置:
Mac 用户配置指南

这里简单的归纳为两个步骤:

1.获取生成的SSH key,即这个文件 ~/.ssh/id_rsa.pub中的内容,使用cat命令将文件内容打印出来,而后再复制。

vagrant@homestead:~/Code$ cat ~/.ssh/id_rsa.pub

clipboard.png

2.登陆Github,进入我的Setting页,将复制的内容粘贴到下边的Key框中便可,而后点击Add SSH Key 按钮,这时候,会让你从新输入登陆密码进行确认。

clipboard.png

三、将本地代码推送到Github

1.Github上建立一个git仓库
我这里建的仓库地址为:

https://github.com/yourname/hello_laravel.git

2.初始化git
先切换到Code/laravel目录下,而后进行初始化git init

vagrant@homestead:~/Code$ cd laravel
vagrant@homestead:~/Code/laravel$ git init
Initialized empty Git repository in /home/vagrant/Code/laravel/.git/

三、将项目全部文件归入到 Git 中:

vagrant@homestead:~/Code/laravel$ git add -A

四、检查 Git 状态:

vagrant@homestead:~/Code/laravel$ git status

上面命令将会向你输出存放在 Git 暂存区的文件,这意味着这些文件还未真正提交到 Git 中。

五、保留改动并提交:

vagrant@homestead:~/Code/laravel$  git commit -m "Initial commit"

上面这行命令会将暂存区的文件都提交到 Git,-m 选项后面带的参数表示本次提交的简单描述。

六、将代码上传到github

$ git remote add origin git@github.com:your_username/hello_laravel.git
$ git push -u origin master

至此,项目已成功托管到 GitHub 上了,^_^

clipboard.png

之后本地代码有改动,咱们只须要下面三个命令便可推送到Github:

// 一、保存到暂存区:
vagrant@homestead:~/Code/laravel$  git add -A

// 2.输入描述信息并提交到本地的 Git
vagrant@homestead:~/Code/laravel$  git commit -m "Describ something"

// 3.将代码推送到 GitHub的主干分支
vagrant@homestead:~/Code/laravel$ git push origin master

在本地对首页视图文件resources/views/welcome.blade.php进行修改,而后推送到Github,进行测试下。
clipboard.png

查看Gihub仓库是否有提交的内容:

clipboard.png

Perfect,一切都很顺利,提交成功!

4.小结

推送到Github的两种不一样方式:

1、在推送到github时须要输入帐号和密码:

git remote add origin https://github.com/corwien/sample.git

vagrant@homestead:~/Code/sample$ git remote add origin https://github.com/corwien/sample.git
vagrant@homestead:~/Code/sample$ git push -u origin master
Username for 'https://github.com': corwien
Password for 'https://corwien@github.com':
Counting objects: 102, done.

2、不须要输入帐号和密码,会从本地的公钥读取到你在Github中设置的权限信息,之后用这种方式,不要输密码。

git remote add origin git@github.com:<username>/sample.git

$ git remote add origin git@github.com:<username>/sample.git
$ git push -u origin master

若是你使用的是第一种方法,那么可使用下面的命令更换远程库的提交方法:

vagrant@homestead:~/Code/sample$ git remote add origin git@github.com:corwien/sample.git
fatal: remote origin already exists.
vagrant@homestead:~/Code/sample$ git remote rm origin
vagrant@homestead:~/Code/sample$ git remote add origin git@github.com:corwien/sample.git
vagrant@homestead:~/Code/sample$

4、使用Heroku部署上线

Heroku是一个支持多种编程语言的 PaaS(Platform-as-a-Service)。在 2010 年被 Salesforce 收购。Heroku 做为最开始的云平台之一,从 2007 年 6 月起开始开发,当时它仅支持 Ruby,后来增长了对 Java、Node.js、Scala、Clojure、Python 以及 PHP 和 Perl 的支持。因为其应用部署流程异常简单,所以倍受广大开发者欢迎。

有关帐号及公钥生成,推送到服务器请看Laravel-China社区的教程,注册成功后,会开一个空间服务及域名https://corwien.herokuapp.com/,这个是个人项目在线访问地址。

// 从新命名:
vagrant@homestead:~/Code/laravel$ heroku rename corwien
Renaming fast-bayou-54271 to corwien... done
https://corwien.herokuapp.com/ | https://git.heroku.com/corwien.git
Git remote heroku updated
 ▸    Don't forget to update git remotes for all other local checkouts of the app.
vagrant@homestead:~/Code/laravel$

代码推送成功以后,可使用此命令来快速打开线上应用:

$ heroku open

注意向github和heroku推送代码的方法不一样:

git push heroku master  //  向heroku推送
git push origin master  //  向github推送

https://corwien.herokuapp.com  //在线访问域名
https://git.heroku.com/corwien.git // heroku仓库

使用域名访问:

clipboard.png

5、小结

至此,咱们的Laravel开发环境搭建完成,用VirtualBox+Vagrant+Homestead搭建集成开发环境,咱们再也不须要在机上安装PHP、HHVM、web服务器和其它的服务器软件集成环境,使用Laravel官方提供的Laravel Homestead,真正的开箱即用,环境搭建好以后,在搭建的虚拟环境中用Composer来下载Laravel项目,而后咱们用Git进行版本控制,并将代码托管到Github上,最后将开发的项目应用到生成环境中,使用heroku部署一个线上代码,能够在公网上经过域名访问。

相关文章:
IOS博客项目搭建-将项目推送到Github进行管理
解决向github提交代码是老要输入用户名密码

相关文章
相关标签/搜索