1. 程式人生 > >PHP Laravel系列之環境搭建( VirtualBox+Vagrant+Homestead+系列網址)

PHP Laravel系列之環境搭建( VirtualBox+Vagrant+Homestead+系列網址)

搭建環境從來都是阻擋一門新技能的最致命的硬傷,為了這個環境,我又是花費了半天的時間,各種問題層出不窮,下面基於網上的一些教程(我看到的都多少有些問題罵人

開始的時候是在實驗樓這個平臺上開始學習的,不過 這個平臺對於入門還真的是很好的,不過後期因為結合專案還有一些許可權問題就不夠了,入門推薦實驗樓(怎麼和打廣告一樣啊偷笑

一. 環境

Laravel 對環境有一定的要求:

PHP >= 5.5.9

OpenSSL PHP Extension

PDO PHP Extension

Mbstring PHP Extension

Tokenizer PHP Extension

二. 搭建laravel的輔助平臺

1.   Homestead

說到環境,就不得不說 Homestead,Homestead 是 Laravel 官方預封裝的一套開發環境。在Laravel 的開發中,強烈建議使用 Homestead,不論是一個人開發專案,還是團隊開發。

2.   VirtualBox

想了解 Homestead 是什麼,首先要介紹一下 VirtualBox 和 Vagrant。

VitrualBox 是一款非常強大的免費虛擬機器軟體,使用者可以在 VitrualBox 上安裝並執行 Linux、Windows、Mac OS X 等作業系統,類似的軟體還有 VMware 等,對虛擬機器不熟悉的小夥伴可以稍微補習一下相關知識,這裡不多做介紹。

3.   Vagrant

接下來介紹 Vagrant,有過開發經驗的同學可能會有這樣的經歷,每次開始一個新的專案,必然要先搭建開發環境,不同的開發者可能習慣使用不同的系統,有人用 windows,有人用 mac,有人用 linux,在搭建環境的過程中又有可能會遇到各種 BUG 各種坑,程式碼還沒開始寫,搭環境就先用掉幾天時間..很是頭疼,於是,為了解決這個問題,Vagrant 應運而生...

4.   關係

Vagrant 是一個用於建立和部署虛擬化開發環境的工具,其依賴於 VirtualBox 虛擬機器,致力於幫助開發者快速構建一個環境統一的虛擬系統。

Vagrant 可以將一整套虛擬環境封裝在一個box 內,這樣只要所有人都使用這個 box,大家的開發環境就實現統一了!而 Homestead 就是這樣一個 Laravel 官方預裝的適合 Laravel 開發的 Vagrant box 。

Homestead 可以在 Windows、Mac 或 Linux 系統上面執行,裡面包含了 NginxWeb 伺服器、PHP 5.6、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 開發時所需要用到的各種軟體。

附註: 如果你是 Windows 使用者,你可能需要啟用硬體虛擬化(VT-x)。這通常需要通過 BIOS 來啟用它。

Homestead 內建軟體列表:

Ubuntu 14.04

Node(附帶了PM2、Bower、Grunt、 Gulp)

Git

HHVM

PHP 5.6 / 7.0

Postgres

MySQL

Nginx

Sqlite3

Xdebug

Composer

Redis

Memcached(僅限 PHP 5.x)

Beanstalkd

這裡提到了很多的專有名詞,你不一定非要弄懂每個是什麼意思,可以在以後的實踐和摸索中慢慢的滲透和學習!

三. Homestead 安裝

  • VirtualBox 安裝
  • Vagrant 安裝
  • 新增 Homestead box 到 vagrant
  • 安裝 Homestead
  • 配置 Homestead.yaml 檔案

1.VirtualBox 安裝

訪問VirtualBox 官網,下載當前作業系統相對應的安裝包。

下載完成後,雙擊開啟按照提示完成安裝即可。

2.Vagrant 安裝

訪問Vagrant 官網,下載當前作業系統相對應的安裝包。

下載完成後,雙擊開啟按照提示完成安裝即可。

3.新增 Homestead box 到 vagrant

首先開啟命令列

注意:Windows 使用者請不要使用系統自帶的命令列,可以使用 cmder 或 Git 的 Git-bash。

進入 ~ 目錄(該目錄在 C:\Users\你的計算機使用者名稱)

cd ~

輸入新增 Homestead box 的指令:

vagrantbox add laravel/homestead

如果上面的命令執行失敗,代表你使用的可能是舊版的 Vagrant,需要在命令列後補上下載包的完整 URL:

vagrantbox add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

如果你的下載安裝正常,那麼直接從這裡跳轉到步驟4就好了!!

這裡注意了,不少教程都這麼寫,但是往往是不翻牆是不行的,所以還是需要解決這個問題,這時只能通過手動來新增 box 了。

手動新增方式:

  • 選擇一 : 當你使用官方下載命令時,你的終端會顯示這個檔案的源地址複製,然後按ctrl +c退出,然後用的喜歡的下載軟體下載.

這裡我選擇了第一種方式,用了一個lantern,很快的,每秒3M,沒幾分鐘就把900+M的檔案下載完了!

現在我假設你已經擁有這個檔案,現在來用我們的方法新增virtualbox.box .
開啟你的ide(程式碼編譯器) ,一般為 Sublime Text 和 Atom ,為何要提編譯器呢 , 因為下面的步驟可能會需要其中一個的編譯器 , 建立一個名為a.json的檔案 , 輸入以下內容 :arrow_down:

{
        "name":"laravel/homestead",
        "versions":
[
    {
        "version": "0.5.0",   //這裡一定要修改版本號!!!在上面的那個路徑裡面有,我的是3.0.0 不改後面一定會報錯的!!!如下圖
        "providers": [
            {
              "name":"virtualbox",
              "url":"D:/box/virtualbox.box"  //你下載的virtualbox.box在電腦系統上的位置
            }
        ]
    }
]
}


開啟的 IDE (編譯器) 先不要儲存,點選開始選單或 win 快捷鍵 , 在搜尋欄處輸入你的terminal ( 終端 ), 點選滑鼠右鍵以管理員身份執行,一般會跳轉到 :

C:\Users\windows的賬戶名>

然後回到 IDE (編譯器) 保檔案到C:\Users\windows的賬戶名這個目錄下 , 並且命名為a.jso

C:\Users\windows的賬戶名>vagrant box add a.json
會出現:
==>box: Loading metadata for box 'a.json'

box: URL:file://C:/Users/windows的賬戶名/a.json

==>box: Adding box 'laravel/homestead' (v3.0.0) for provider: virtualbox

box:Downloading: "D:/box/virtualbox.box" //你下載的virtualbox.box在電腦上的位置

box:Progress: 100% (Rate: 129M/s, Estimated time remaining: --:--:--)
==>box: Successfully added box 'laravel/homestead' (v3.0.0) for 'virtualbox'!


4.安裝Homestead

新增完 Homestead box 之後還需要進行一些配置來完成 Homestead 的安裝。

首先,請確定你的電腦上安裝了Git

  • 2)Mac 使用者可通過安裝 Xcode 命令列來快速安裝 Git:

xcode-select--install

  • 3)Linux 系統使用以下命令快速安裝:
sudoyum install git
sudoapt-get install git //Debian Linux


然後,開啟命令列,進入~目錄

cd ~

通過克隆程式碼倉庫的方式來安裝Homestead:

gitclone https://github.com/laravel/homestead.git Homestead

克隆完 Homestead 的程式碼倉庫後,會生成一個Homestead資料夾,進入該目錄

cd~/Homestead

執行bash init.sh命令來建立Homestead.yaml配置檔案,Homestead.yaml檔案將會被放置在你的~/.homestead 目錄中

bashinit.sh

最後,我們需要用編輯器開啟Homestead.yaml檔案對 Homestead 進行配置。

編輯器選擇:不要用 windows 的記事本作為程式碼編輯器(這裡好像是可以的,不過我沒試過),這裡推薦一些常用編輯器:

·        輕量編輯器:Atom、Sublime、Notepad++

·        整合開發環境編輯器:PHPstorm

5.設定Homestead.yaml檔案

用編輯開啟~/.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:

    - map: ~/Code

      to: /home/vagrant/Code

sites:

    - map: homestead.app

      to: /home/vagrant/Code/Laravel/public

databases:

    - homestead

variables:

    - key: APP_ENV

      value: local

#blackfire:

#     - id: foo

#       token: bar

#       client-id: foo

#       client-token: bar

#ports:

#     - send: 93000

#       to: 9300

#     - send: 7777

#       to: 777

#       protocol: udp

下面我們對該檔案中的程式碼逐個進行分析配置:

最上面是對虛擬機器的 ip,記憶體,CPU,虛擬機器的預設提供者的配置,這裡不需要修改。

ip:"192.168.10.10"

memory:2048

cpus:1

provider:virtualbox

Homestead 需要用 ssh 方式連線虛擬機器,ssh 連線需要設定祕鑰,可以看出預設的 key 應該是放在~/.ssh資料夾下的,這裡也不需要做修改。

authorize:~/.ssh/id_rsa.pub

keys:

         - ~/.ssh/id_rsa

ssh key 需要我們手動生成,如果你之前已經用過ssh連線,這一步可以跳過。

通過執行下面命令來生成 ssh key:

ssh-keygen-t rsa -C "[email protected]"

Generatingpublic/private rsa key pair.

出現下面提示資訊時,按回車鍵將 SSH Key 儲存到預設位置:

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

為 SSH Key 設定密碼,不輸入則預設為空密碼:

Enterpassphrase (empty for no passphrase): [Type a passphrase]

Entersame passphrase again: [Type passphrase again]

繼續來到 Homestead.yaml 檔案的配置,下面的 folders 是設定程式碼檔案位置和虛擬機器中共享檔案的位置的。

folders:

    - map: ~/Code

      to: /home/vagrant/Code

比如我的修改成如下設定,我們假設F盤有一個叫做 laravel 的資料夾,專門用來存放 laravel 的專案。

folders:

    - map: D:/laravel

      to: /home/vagrant/Code

這樣設定之後F盤的laravel 資料夾就和 虛擬機器中的這個Code 資料夾共享了。

然後是對映域名的配置,如下面sites配置所示,將 homestead.app 對映到一個 Laravel 專案的 public 資料夾下,通過增加這行配置之後,如果你的 Code 資料夾中有一個叫 Laravel 的專案,則可以通過http://homestead.app來訪問該 Laravel 應用。

sites:

    - map: homestead.app

      to: /home/vagrant/Code/Laravel/public

除此之外,你還需要將這個域名新增到 hosts 檔案中,Windows 系統下該檔案放在 C:\Windows\System32\drivers\etc\hosts,Mac 或 Linux 系統 host 檔案放在 /etc/hosts 或者 /private/etc/hosts 資料夾下,新增方式:開啟 hosts 檔案,在最底下新增如下程式碼:(這裡windows許可權的問題,hosts只能在管理員許可權下修改,所以在電腦win搜尋找記事本,右鍵管理員許可權開啟,再開啟hosts修改就好了!

192.168.10.10homestead.app

然後是資料庫設定:

databases:

    - homestead

資料庫的設定和 sites 的設定是對應的,比如你有兩個專案,對應設定應該像這樣:(這裡我的都叫homestead)

sites:

    - map: myweb.app

      to: /home/vagrant/Code/myweb/public

    - map: myweb2.app

      to: /home/vagrant/Code/myweb2/public

databases:

    - myweb

    - myweb2

最後,如果你需要定義一些在虛擬機器上可以使用的自定義變數,則可以在 variables 中進行定義。

variables:

    - key: APP_ENV

      value: local

綜上,一個設定好的 Homestead.yaml 檔案程式碼示例:

---

ip:"192.168.10.10"

memory:2048

cpus:1

provider:virtualbox

authorize:~/.ssh/id_rsa.pub

keys:

    - ~/.ssh/id_rsa

folders:

    - map: D:\laravel

      to: /home/vagrant/Code

sites:

    - map: homestead.app

      to: /home/vagrant/Code/laravel/public

    - map: myweb.app

      to: /home/vagrant/Code/myweb/public

    - map: myweb2.app

      to: /home/vagrant/Code/myweb2/public

databases:

    - homestead

    - myweb

    - myweb2

variables:

    - key: APP_ENV

      value: local

#blackfire:

#     - id: foo

#       token: bar

#       client-id: foo

#       client-token: bar

#ports:

#     - send: 93000

#       to: 9300

#     - send: 7777

#       to: 777

#       protocol: udp

6.啟動虛擬機器

進入 Homestead 目錄:

cd~/Homestead

啟動虛擬機器:

vagrantup

虛擬機器啟動後,可以通過 ssh 登入虛擬機器進行操作:

vagrantssh

除此之外,每次更新 Homestead.yaml 資料夾後,需要執行下面指令讓新的配置生效:

vagrantprovision

最後,關閉虛擬機器可以執行下面指令:

vagranthalt

四. 裝載Laravel原始碼

至此,我們的環境就算配置完全了,我們只需要再下載一份 Laravel 原始碼就可以進行開發了。

下載原始碼,我們使用 composer

Composer 是 PHP 中用來管理依賴(dependency)關係的工具。你可以在自己的專案中宣告所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫檔案。
Composer 在 Homestead 中已經安裝好了,我們可以直接使用。

首先我們需要啟動虛擬機器,並登陸虛擬機器:

cd~/Homestead

vagrantup

vagrantssh

然後,進入Code目錄,並利用 composer 來建立一個 Laravel 應用:

cdCode

composercreate-project laravel/laravel Laravel --prefer-dist "5.1.*"

由於國內網路原因,有時候 Composer 安裝會花費很多時間,甚至出錯。

這裡推薦使用 Packagist / Composer 中國全量映象 來加速 Composer 的操作。(這裡我依舊用lantern解決,速度很快的!!!)

我們只需要修改 Composer 的全域性配置檔案即可:

composerconfig -g repo.packagist composer https://packagist.phpcomposer.com

如果沒有問題的話,開啟瀏覽器,訪問http://homestead.app你能看到如下圖所示介面,這是 Laravel 為我們生成預設介面。

最後的時候因為homestead.yaml我標記的路徑寫錯了,結果害得找了半天,ORZ!!!

五. 常用連結整理

參考網址 :http://www.jianshu.com/p/bd027d2b8526

https://laravel-china.org/topics/2519/how-to-install-laravel-windows-on-homestead


相關推薦

PHP Laravel系列環境搭建 VirtualBox+Vagrant+Homestead+系列網址

搭建環境從來都是阻擋一門新技能的最致命的硬傷,為了這個環境,我又是花費了半天的時間,各種問題層出不窮,下面基於網上的一些教程(我看到的都多少有些問題) 開始的時候是在實驗樓這個平臺上開始學習的,不過 這個平臺對於入門還真的是很好的,不過後期因為結合專案還有一些許可權問題就不

Laravel系列環境搭建VirtualBox+Vagrant+Homestead

一、為啥需要搭建環境   為了解決環境不統一問題,所以要搭建這麼個玩意兒 二、步驟    Laravel對環境有所要求(不使用Homestead情況下),具體參考官網    使用Homestead步驟   1. Homestead、VirtualBox、Vagrant     摘要:

Laravel系列環境搭建VirtualBox+Vagrant+Homestead

一、為啥需要搭建環境   為了解決環境不統一問題,所以要搭建這麼個玩意兒 二、步驟    Laravel對環境有所要求(不使用Homestead情況下),具體參考官網    使用Homestead步驟     1. Homestead、VirtualBox、Vagrant         摘要:      

重拾PHP環境搭建WampServer+PhpStorm

一、下載並激活PhpStorm啟用方式:(親測有效)在Licence Server的框框中輸入:二、配置php解析器在安裝好PhpStorm後直接可以執行.html檔案,但是執行不了.php檔案,還需要對其進行配置。

轉載:monkeyrunnereclipse中運行monkeyrunner腳本環境搭建

導包 rep 是把 body tle cnblogs 9.png 解決方法 align 轉載自:lynnLi 的monkeyrunner之eclipse中運行monkeyrunner腳本之環境搭建(四) monkeyrunner腳本使用Python語法編寫,但它實際上是通

linux 核心模組程式設計環境搭建

這裡介紹些關於Tiny6410開發板核心的編譯,為後期驅動開發做前期的準備。 開發環境:64位的Ubuntu 14.01虛擬機器 目標機:友善之臂Tiny6410開發板 核心:linux-2.6.38-20110325.tar.gz 核心原始碼下載地址 htt

Tomcat 原始碼分析系列環境搭建

Tomcat 原始碼環境搭建 tomcat 9 和 idea 環境搭建 環境準備 JDK 1.10 git idea tomcat 原始碼 maven ant 國內的maven 倉庫映象 安裝Intellij Idea 新

Struts2學習筆記系列環境搭建

1.前言 一直在學習javaweb方面的知識,斷斷續續的學到了struts2,深感java框架的博大精深,自己的水平有限(菜雞),本著好記性不如爛筆頭的原則,打算把自己學到的東西寫一篇部落格,就當複習以及以後查詢的筆記資料了。 2.環境搭建 1.建立一個web工程

Django學習筆記環境搭建

           Django是一個高階的Python Web開發框架,它鼓勵快速開發,和實用的設計。它採用了MTV的設計模式,並且它由經驗豐富的開發人員來構建, 可以解決Web開發的諸多問題,因此也被稱為全棧Web開發框架。它是開源的,直接

Spark專案環境搭建單機一 hadoop 2.8.5安裝

我用的hadoop2.8.5 + apache-hive-2.3.3 +sqoop-1.4.7 + jdk1.8 + mysql 5.7 + scala-2.12.7 + spark-2.3.2-bin-hadoop2.7 第一步上傳所需的包:我把所有的包都放在了hom

Spark專案環境搭建單機三 scala-2.12.7+ spark-2.3.2-bin-hadoop2.7安裝

上傳scala和spark架包 解壓然後重新命名 tar -zxf scala-2.12.7.tgz mv scala-2.12.7 scala tar -zxf spark-2.3.2-bin-hadoop2.7.tgz mv spark-2.3.

Spark專案環境搭建單機五 配置eclipse的scala環境,並建立spark專案

先安裝scala 環境: eclipse版:spring-tool-suite-3.9.1.RELEASE-e4.7.1a-win32-x86_64 下載地址:https://www.scala-lang.org/download/  然後配置環境變數,參考以下地址:

Spark專案環境搭建單機四 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 安裝

上傳解壓 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz,重新命名 tar -zxf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop 進入sqoop

Spark專案環境搭建單機二 hive-2.3.3安裝

上傳hive架包,然後解壓: tar -zxf apache-hive-2.3.3-bin.tar.gz hive 重新命名  mv apache-hive-2.3.3-bin hive 將mysql的驅動包加入hive的lib檔案下面 進入hive目錄下的c

Vue.js系列專案搭建1

說明: 我們專案現在用的是:vue2.0 + vue-cli + webpack + vue-router2.0 + vue-resource1.0.3 如果大家在實踐的過程中與本文所說的內容有較大區別的話看看是不是版本問題。 本文是一系列文章,在我對V

Angular入門環境搭建VS code

環境 Win 64 node:6.11.1 npm:3.10.10 Typescript:2.4.2 VS code:1.14.0 安裝步驟 安裝Node.js 在Node.js官網下載合適的版本,然後按照提示的步驟安裝即可, 不必再

小白帶你入坑xamarin系列環境搭建和準備

序言:移動端的跨平臺百花齊放,各種技術方案和方法都是層出不窮。目前xamarin確實是一套成熟可

ReactNative開發實戰一環境搭建Windows下

作為微信公眾號(Zjiaxin)的開山篇文章------我們將從環境搭建開始:(Windows環境下)1首先準備必要的軟體和工具:Python 2、Node、ReactNative、AndroidStudio、WebStorm、Git、Genymotion。Python2:h

ijkplayer學習系列環境搭建

環境準備 硬體環境:PC機一臺 作業系統:Ubuntu 12.04(我是Ubuntu+XP雙系統) 軟體環境:除Ubuntu預裝的所有應用,還需要以下工具:git, ant, ccache, sdk, ndk。 其中git,ant和ccache直接使用sudo apt-get install XXX安裝即可

python下建立elasticsearch索引實現大資料搜尋——環境搭建

目錄 1.需求闡述 1)資料儲存在阿里雲內網的Mysql伺服器上,需要通過一臺伺服器SSH隧道穿透取得資料。 2)首先明確,一張設計圖需要多種素材來構成。資料量很大,需要操作的有兩個表,稱為stylepatternshow表,目前資料3w行(