laravel學習筆記,從新梳理知識點。php
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
而後安裝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/上的教程。
cd ~/Homestead && vagrant up
成功啓動後,經過 SSH 來登陸 Homestead:
> vagrant ssh
最後嘗試退出虛擬機,並關閉Vagrant
vagrant@homestead:~$ exit Homestead git:(7924ab4) vagrant halt
用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協同開發的好處。
修改首頁視圖文件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能夠對咱們的代碼進行版本控制,若是萬一誤刪了代碼想回到以前的狀況,則能夠經過版本控制進行回滾。
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郵箱須要在本地虛擬環境中生成一個公鑰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 按鈕,這時候,會讓你從新輸入登陸密碼進行確認。
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 上了,^_^
之後本地代碼有改動,咱們只須要下面三個命令便可推送到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,進行測試下。
查看Gihub倉庫是否有提交的內容:
Perfect,一切都很順利,提交成功!
推送到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$
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部署一個線上代碼,能夠在公網上經過域名訪問。