laravel学习笔记,重新梳理知识点。
一、环境配置
1、编辑器选用
Atom
PHPStorm
SublimeText
Atom
是由 GitHub 官方在 2014 年 2 月推出的一款开源的跨平台代码编辑器,这意味着你可以在流行的系统如 OS X、Windows、或者 Linux 上安装和使用 Atom。由于 Atom 的界面优雅、易上手、插件丰富等优点,使得其在发布后受到圈内不少程序员的追捧和赞赏。我平时用的是PHPStorm和Sublime开发,这次,抱着拥抱新鲜事物的态度,这里我们使用强大的Atom编辑器
2、开发环境搭建
集成开发环境:VirtualBox+Vagrant+Homestead
安装 VirtualBox(V5.1.4)
安装 Vagrant (1.9.0)
安装 Homestead
安装 Git
Vagrant 是一个用于创建和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。Vagrant 最强大的地方是在于它在构建虚拟系统时的快捷简便,使开发者可以在短短几分钟内完成一个虚拟系统的删除与构建。
Homestead 是一个基于 Ubuntu 构建的虚拟机,它包含了所有 Laravel 开发时需要用到的东西,你可以很轻松的通过指定的 Laravel 版本来找到相对应版本的 Homestead包并进行安装。
Mac OS X / Linux
在解压目录(lt-homestead-0-6-0-2016122800)下运行以下命令添加 Box:
> vagrant box add metadata.json
然后安装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
成功启动后,通过 SSH 来登录 Homestead:
> vagrant ssh
最后尝试退出虚拟机,并关闭Vagrant
vagrant@homestead:~$ exit
Homestead git:(7924ab4) vagrant halt
二、创建Laravel应用
1、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.*"
使用composer安装好Laravel后,然后用配置的域名访问页面:
这里需要说明一点:在虚拟路径
/home/vagrant/Code
中用composer下载的资源,其实在我们本地中与之对应的映射路径为~/Code
,Homestead 将会把该文件夹下的项目自动映射到本地的Code文件夹上,所以,我们在本地的编辑器中开发Code文件夹中的代码,在虚拟机的服务器测试本地代码,这样就有了一个统一的环境,也不用担心在Mac上安装太多的东西搞乱系统,这就是使用虚拟机与Vagrant协同开发的好处。
2、小试牛刀
修改首页视图文件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>
三、使用Git管理项目版本
使用git可以对我们的代码进行版本控制,如果万一误删了代码想回到之前的情况,则可以通过版本控制进行回滚。
1、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 进行全局设置。
2、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
2.登录Github,进入个人Setting页,将复制的内容粘贴到下边的Key框中即可,然后点击Add SSH Key 按钮,这时候,会让你重新输入登录密码进行确认。
3、将本地代码推送到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/
3、将项目所有文件纳入到 Git 中:
vagrant@homestead:~/Code/laravel$ git add -A
4、检查 Git 状态:
vagrant@homestead:~/Code/laravel$ git status
上面命令将会向你输出存放在 Git 暂存区的文件,这意味着这些文件还未真正提交到 Git 中。
5、保留改动并提交:
vagrant@homestead:~/Code/laravel$ git commit -m "Initial commit"
上面这行命令会将暂存区的文件都提交到 Git,-m 选项后面带的参数表示本次提交的简单描述。
6、将代码上传到github
$ git remote add origin git@github.com:your_username/hello_laravel.git
$ git push -u origin master
至此,项目已成功托管到 GitHub 上了,^_^
以后本地代码有改动,我们只需要下面三个命令即可推送到Github:
// 1、保存到暂存区:
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,进行测试下。
查看Gihub仓库是否有提交的内容:
Perfect,一切都很顺利,提交成功!
4.小结
推送到Github的两种不同方式:
一、在推送到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.
二、不需要输入账号和密码,会从本地的公钥读取到你在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$
四、使用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仓库
使用域名访问:
五、小结
至此,我们的Laravel开发环境搭建完成,用
VirtualBox+Vagrant+Homestead
搭建集成开发环境,我们不再需要在机上安装PHP、HHVM、web服务器和其它的服务器软件集成环境,使用Laravel官方提供的Laravel Homestead,真正的开箱即用,环境搭建好之后,在搭建的虚拟环境中用Composer
来下载Laravel项目,然后我们用Git
进行版本控制,并将代码托管到Github
上,最后将开发的项目应用到生成环境中,使用heroku部署一个线上代码,可以在公网上通过域名访问。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。