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-****** -t rsa -C "[email protected]"
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 [email protected]
vagrant@homestead:~/Code$ git config --global push.default simple
--global
選項代表對 Git 進行全局設置。
2、github托管項目
我們這里將項目推到Github上進行托管,不過先需要配置,我們需要先生成公鑰,再把公鑰添加到 GitHub 賬號上。用你的github郵箱需要在本地虛擬環境中生成一個公鑰SSH Key,才可以將其Push到github上。
vagrant@homestead:~/Code$ ssh-****** -t rsa -b 4096 -C "[email protected]"
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 [email protected]: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://[email protected]':
Counting objects: 102, done.
二、不需要輸入賬號和密碼,會從本地的公鑰讀取到你在Github中設置的權限信息,以后用這種方式,不要輸密碼。
git remote add origin [email protected]:<username>/sample.git
$ git remote add origin [email protected]:<username>/sample.git
$ git push -u origin master
如果你使用的是第一種方法,那么可以使用下面的命令更換遠程庫的提交方法:
vagrant@homestead:~/Code/sample$ git remote add origin [email protected]:corwien/sample.git
fatal: remote origin already exists.
vagrant@homestead:~/Code/sample$ git remote rm origin
vagrant@homestead:~/Code/sample$ git remote add origin [email protected]: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部署一個線上代碼,可以在公網上通過域名訪問。