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提交代碼是老要輸入用戶名密碼

相關文章
相關標籤/搜索